妹子如何運用R語言資料分析選擇心儀的物件?
前提假設
- 妹子們一生中可以遇到100個追求者,追求者的優秀程度符合正態分佈;
- 每個妹子都具備判斷並比較追求者優秀程度的能力;
- 接受或拒絕一個追求者後永遠無法後悔。
那麼,問題來了
男神這麼多,當遇到選擇困難症時,如何選擇才能獲得最優結果?
如果人的優秀程度符合均值為80,方差20的正態分佈,隨機產生100個追求者,其優秀程度分佈情況見下圖:
p=rnorm(100,80,20)
hist(p,main="追求者--統計", ylab="數量", xlab="優秀程度",
col=rainbow(50))
boxplot(p,col="red",lwd=2)
條形圖顯示了追求者的初始狀態,盒裝圖顯示的是大多數妹子所接受的追求者的能力情況。通過分佈圖可以看出,大多數理性人只能選擇那些優秀程度在80左右的追求者。
下面介紹選擇方法
首先,為了不錯過在未來可以接受更優秀的追求者,理性的妹子會拒絕最早的一批追求者,並且採用第一批追求者做樣本量k,理性地判斷出追求者中最優秀的一位,其優秀程度記作y。然後,當遇到新追求者的時候,將追求者的優秀程度與y進行比較,優於y則選擇接受,否則繼續等待新的追求者;若新追求者的優秀程度始終小於y,則選擇做剩女。
如何求出最優的樣本量k?
如果最優秀的追求者出現在第i個位置(k < i ≤n),其中k、n為大於0的固定值。要想讓第i個出現的他成功被妹子接受,就必須得滿足前 i-1 任意一個位置出現的追求者被拒絕,這有ki−1ki−1的可能。考慮所有可能的i,我們便得到了試探前 k 個追求者之後能選中最佳追求者的總概率 P(k):
P(k)=∑i=k+1n1n⋅ki−1=kn∑i=k+1n⋅1i−1P(k)=∑i=k+1n1n⋅ki−1=kn∑i=k+1n⋅1i−1
用 x 來表示 k/n 的值,並且假設 n 充分大,則上述公式可以寫成:
P(k)=x∫1x1tdt=−xlnxP(k)=x∫x11tdt=−xlnx
對-xlnx求導,並令這個導數為0,可以解出x的最優值,它就是尤拉研究的神祕常數的倒數e−1e−1,則樣本k=n⋅x=e−1k=n⋅x=e−1。即當預計總追求者人數為100的時候,應先拒絕掉前100e−1=37100e−1=37個人,用來做追求者樣本。
sIdo=N=numeric()for (i in 1:100){ p=rnorm(100, 80, 20) pm=max(p[1:37]) for(i in seq(37,100)){ if(p[i]>pm){ Ido=p[i] n=i break} else Ido=0;n=101} sIdo=c(sIdo,Ido) N=c(N,n)} sum(N==101)/100 #剩女比例
圖3、圖4代表按照此種選擇方法,重複100次實驗(100個妹子)得到的追求者分佈狀態,通過條形圖可以看出,60%的妹子成功找到如意郎君,被接受的追求者優秀程度在100以上;其餘40%的妹子們,由於在第一批追求者當中拒絕掉了最優秀的那位,無奈選擇做剩女。
plot(N,sIdo,pch=20,main="追求者散點圖", ylab="優秀程度", xlab="接受時機",col=rainbow(80),cex = 1.5)
points(101,0,pch=20,col="#32CD32",cex = 2)
text(95, 1, "剩女101",cex = .8)
追求者散點圖可以看出,比較優秀的追求者且被接受時,其排位在100位當中的50位左右的概率最大,即追妹子的最好時機不是越早越好。
綜上所訴,可以得出如下結論:
- 樣本人數最優值為樣本總量的37%;
- 比較優秀的追求者成功追到妹子的概率在60%左右;
- 優秀者的最佳出現時機為中間偏後位置。