码迷,mamicode.com
首页 > 其他好文 > 详细

天气中的概率 | 连续两天的天气独立吗?

时间:2015-04-22 11:13:35      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

概率论中的一个重要概念是,随机变量的独立性。

只有两个随机变量A、B相互独立时,才会有联合概率等于各随机变量概率之积

P(AB)=P(A)P(B)

对于天气来说,这显然是不成立的。根据我们的人生经验(life experience),如果第一天下雨的话,第二天仍然下雨的概率将大大增加。

但没有数据证明,这一切都是鬼话。于是,我采集了一个城市一年的天气状况(不过这并不是真实的天气,而是天气预报,假定现在一天的天气预报已经十分精确了吧),来证明这是正确的。

 

数据用csv格式来存储,前十行是这样的

date,highTemp,lowTemp,weather,windDir,windPow
2014-01-01,17,1,晴,北风~南风,微风
2014-01-02,17,6,晴~多云,南风,微风
2014-01-03,16,2,多云,北风,微风
2014-01-04,15,5,晴,北风,微风
2014-01-05,17,6,晴,北风,微风
2014-01-06,15,8,阴~小雨,北风,微风
2014-01-07,10,5,小雨,北风,3-4级
2014-01-08,8,4,阴~多云,北风,3-4级~微风
2014-01-09,9,4,多云~阴,北风,微风
2014-01-10,9,4,小雨,北风,微风

我使用Python的pandas包来分析数据。

首先读入数据

import pandas as pd
data = pd.read_csv(‘zhuzhou_weather.csv‘)
data.head(10)

 同时我认为天气中只要包含“雨”字,就人文这一天下雨,不论是小雨、中雨还是阴转小雨

利用apply方法,很容易判断天气当中是否包含“雨”字

yu = data[‘weather‘].apply(lambda x:‘雨‘ in x)
yu_prob = sum(yu)/data.shape[0]
yu_prob

yu是一个二进制相量,如果某一天下了雨,则为True

 得到一天下雨的概率P(Y)=0.3929,10天里有4天在下雨,你可能猜测这座城市在江南。

如果连续两天下雨的概率相互独立,那么连续两天下雨的概率应当为

yu_prob**2

P(Y1Y2)=P(Y1)P(Y2)=0.1543

现在到了耍点小花招的时候了,用前一天是否下雨乘以后一天是否下雨,就能得到是否连续两天下雨的随机变量,只有前一天下雨同时后一天下雨,结果才为真

yu2_prob = sum((yu.shift(1)*yu)[1:])/data.shape[0]

 yu.shift(1)大致就是把序列向后移了一位,

计算出真实连续两天下雨的概率为P(Y1Y2)=0.2445,显然大于假定连续两天是否下雨相互独立的情况。看来人们的经验,有时还是挺正确的。

进一步计算出知道第一天下雨,第二天仍然下雨的条件概率

P(Y2|Y1)=P(Y2Y1)/P(Y1)=0.2445/0.3929=0.6224

技术分享

如果第一天下雨,第二天有超过60%的概率下雨!!

天气中的概率 | 连续两天的天气独立吗?

标签:

原文地址:http://www.cnblogs.com/meelo/p/4446716.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!