::p_load(dplyr, ggplot2, vcd, plotly) pacman
🧙 問題討論:
在cup.csv
檔案裡面是一千個信徒的擲筊次數,假定每一個人都是擲到3次成功才停止,請問:
■ 這些擲筊次數是甚麼分佈? 它的參數是?
■ 這個筊的成功機率大約是?
■ 請畫出用這個筊擲10次成功之前,失敗次數的機率分布?
■ 用這個筊擲15次還不能有5次成功的機率是?
失敗次數是Poisson嗎? (因為擲到3次成功才停止,所以失敗次數等於擲筊次數減三)
= read.csv("data/cup.csv")$x
X = goodfit(table(X - 3), "poisson")
fit summary(fit)
Goodness-of-fit test for poisson distribution
X^2 df P(> X^2)
Likelihood Ratio 1605.4 33 5.0416e-317
已知成功次數為3,用Negative Binomial試試看
= goodfit(table(X - 3), "nbinom", par=list(size=3))
fit summary(fit)
Goodness-of-fit test for nbinomial distribution
X^2 df P(> X^2)
Likelihood Ratio 37.564 33 0.26795
$par fit
$size
[1] 3
$prob
[1] 0.248
🗿 : 這個筊的成功機率大約是?
#
🗿 : NBinomial[n=3,p=0.248]是 … 的分佈?
#
🗿 : 畫出用這個筊擲10次成功之前,失敗次數的機率分布
#
🗿 : 用這個筊擲15次還不能有5次成功的機率是?
#
🗿 問題討論:
假如賭場老闆從零開始把每10秒鐘設為一個區間,每個區間的賭金是五塊錢 …
■ 你要怎麼押注,才能獲得最高的期望報酬呢?
■ 你的賭金和期望報酬各是多少?
§ 使用R的內建的功能建立PDF模型
= faithful$eruptions # copy data to a short name
D = 0.5 # bandwidth adjustment
Adjust = density(D, adjust = Adjust) # density function
DEN = approxfun(DEN$x, DEN$y, yleft=0, yright=0) # PDF
PDF
par(mar=c(2,4,2,1), cex=0.7)
curve(PDF(x), 1, 5.6, col='blue',lwd=2,main="Prob. Density Function")
rug(D)
abline(h=seq(0,1,0.1),col='lightgrey',lty=3)
§ 利用模型策略規劃
= seq(1, 6, 1/6); x2 = x1 + (1/6) # 臨界值
x1 = sapply(1:length(x1), function(i) { # 機率
px integrate(PDF, x1[i], x2[i])$value #
}) = 100 * px - 5 # 淨期望報酬
net = data.frame(x1, x2, px, net) %>%
df arrange(desc(net)) %>%
mutate(
payoff = cumsum(net), # 累計(淨)期望報酬
investment = row_number() * 5, # 累計投資、資本需求
roi = payoff / investment # 累計投報率
) %>% filter(net > 0) %>% round(3) df
x1 x2 px net payoff investment roi
1 4.333 4.500 0.096 4.577 4.577 5 0.915
2 4.500 4.667 0.089 3.938 8.515 10 0.852
3 4.167 4.333 0.089 3.932 12.447 15 0.830
4 1.833 2.000 0.082 3.226 15.673 20 0.784
5 4.000 4.167 0.077 2.654 18.327 25 0.733
6 2.000 2.167 0.070 1.968 20.294 30 0.676
7 4.667 4.833 0.068 1.843 22.137 35 0.632
8 1.667 1.833 0.064 1.367 23.504 40 0.588
9 3.833 4.000 0.058 0.834 24.338 45 0.541
🗿 問題討論:
將獲利的期望報酬和賭金的比值稱為「期望投資報酬率」 …
■ 「最大期望投資報酬率」的策略是?
■ 這個策略的期望報酬和報酬率各是多少?
■ 它和最高期望報酬的策略是相同的嗎?
■ 哪一個策略目標比較好呢?
■ 我們應該如何選擇(設定)策略目標呢?
%>% mutate(strategy = case_when(
df < 0 ~ "虧損策略",
payoff < 0 ~ "無效率策略",
net TRUE ~ "有效率策略"
%>%
)) ggplot(aes(x=payoff, y=roi,col=strategy)) +
geom_point(size=3) +
xlab("期望獲利") + ylab("投資報酬率") + ggtitle("策略空間") +
theme_bw() -> g
ggplotly(g)
💡 學習重點:
■ 如何求出機率分布函數?
A. 將實證資料fit
進已知的理論分布、並求出參數
B. 直接就實證資料做成(平滑)機率密度函數
■ 即使是很簡單的一個案例,我們也需要綜合使用機率、程式和商業知識,才能做出合適的決策!
■ 機率分布的商業應用套路:
1. 寫出各事件(變數的值或區間)的報償
2. 求出變數的機率分布函數
3. 求出各事件的機率
4. 求出不同策略的期望報償
5. 依公司的策略目標做選擇