妹子如何运用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%左右;
  • 优秀者的最佳出现时机为中间偏后位置。


原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-09-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区