注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Puriney's Notes

Puriney=purine+Y, my Wonderland

 
 
 

日志

 
 

[R] 你从哪来要往哪去--搭电梯  

2013-01-19 18:31:21|  分类: QWERT |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
今儿搭电梯, 被某校园保安著名哲理问句" 你从哪来, 要往哪去 " 上身了... 不禁自问: 
  • 生科院这么多人, 我来自6楼的概率多大? 
  • 生科院这么多Y染色体, 我来自6楼多大概率? 

第一个问题, 我来自6楼多大概率

自然而然地想, 如果客梯26人满载, 我可以偷偷地等所有人依次下电梯最后在6楼统计即可, 都不用问 "喂, 同学, 你去几楼".  <- 怎么感觉是...负二项分布了呢? 尼玛的 电梯在一楼大家按电梯楼层号码的时候很容易知道在每层楼多少人会下 (好吧每个人都有强迫症会按自己的楼层 = = ) 结果比如下面这样. 
[R] 你从哪来要往哪去--搭电梯 - Puriney - Purineys Notes

于是呢, 我来自6楼的概率就是 8/26=~31%

不过, 这样统计是不是合理的? 不, 因为生科院有规定, 3楼一下的, 要爬楼梯. (当然, 总是有人会去三楼). 于是, 真正有很多2楼, 3楼的同学, 压根没有进入电梯. 电梯里人数, 在楼层分布上, 是存在一定偏好性的. 每个楼层贡献给电梯的人数, 因为生科院的规定, 这个贡献力不尽相同. 所以这样简单统计电梯里楼层人数的做法, 实际是在统计, 6楼爱坐电梯的人占生科院爱坐电梯的人多大比例? 与我的初衷不同. 

所以要电梯在计算我来自6楼时, 要考虑, 每个楼层的贡献力有多大? 即比如6楼的全部人里面, 多少人愿意搭电梯, 2楼所有的人有多少自动放弃坐电梯. 要获得这些数据, 还是应该咨询生科院的门卫大叔. 门卫大叔找100个人, 每层楼20个, 问, 乃们今天搭电梯了麼? 合理地假如数据是这样的: 

[R] 你从哪来要往哪去--搭电梯 - Puriney - Purineys Notes

最后, 来自6楼的概率是20/100=20%, 合理地考虑了每个楼层里的人, 真正搭乘电梯的意愿是不同的. 如图: 
[R] 你从哪来要往哪去--搭电梯 - Puriney - Purineys Notes
 
 简单地电梯里统计人数, 其实是保安大叔数据组的子部分, 即"YES"部分, 因而计算得到的20/sum(gard.num$YES)=~33%. 比20%要高出很多. 这之所以会高出很多, 正是因为6楼的人不搭电梯会爬死. 

第二个问题, 我一个男生, 我来自6楼的概率是多大? 更确切的是: P(来自6楼|男生)的概率有多大? 

这里涉及到那么一点点贝叶斯...?  A指代六楼, B指代男生. 要求P(6楼|男生)为几何? 

[R] 你从哪来要往哪去--搭电梯 - Puriney - Purineys Notes
 
P(B|A)= P(男生|6楼), 这个数据可以就在电梯里统计 (当然前提是男生和女生都是愿意坐电梯的, 男生不会因为更强壮就自动楼梯)
P(A) = P(6楼), 则表示电梯里六楼的贡献力

至于性别数据, 因为6楼的guo老师招的全是壮丁, 4楼的院长全要的妹纸, 遂姑且这么合理地假设电梯里坐电梯的人数: 
[R] 你从哪来要往哪去--搭电梯 - Puriney - Purineys Notes
 
至于6楼的贡献力, 这时表示的是, 在电梯里的这帮人, 来自6楼的概率. 所以这回计算6楼概率时, 在门卫大叔数据表里, 分母就是YES组的和. 不用算上其他没坐电梯的. 故P(6楼) = 0.33 

[R] 你从哪来要往哪去--搭电梯 - Puriney - Purineys Notes
 

所以: P(6楼|男生) =  0.75 * 0.33 / (0.75 * 0.33 +  0.57 * 0.3 + .. ) = 0.5312606

为了引出第二问里的P(6楼), 我自己才会问自己第一问的. 

- - - 

END && REREFENCE


- - - 
部分代码

# produce 5 numbers in Poisson distribution and sum up equals 26
sum.eq.26<-function() {
repeat{
x<-round(rpois(5,lambda=5))
if (sum(x)==26){
return (x)
break
}
}
}

# produce data frame
x<-sum.eq.26()
elevator<-data.frame(Num=sort(x))
row.names(elevator)=paste(2:6,"L",sep="")
gard.num<-data.frame(YES=c(2,4,16,18,20),NO=c(18,16,4,2,0))

#plot
gard.num$YES.ratio<-gard.num$YES/apply(gard.num,1,sum)
ggplot(data=gard.num, aes(x=row.names(gard.num), y=YES.ratio, fill=YES.ratio))
+ geom_bar(stat="identity")
+theme(axis.title.x = element_blank())
+ylab("YES percent per floor")
+labs(fill="")


- - -
后记

这个有意义麼? 
  评论这张
 
阅读(469)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017