老規(guī)矩,先導(dǎo)入及設(shè)置各種參數(shù)庐杨。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
df = pd.read_table('smoking_cancer.txt')
print(df.head())
print(df.describe())
STATE CIG BLAD LUNG KID LEUK
0 AL 18.20 2.90 17.05 1.59 6.15
1 AZ 25.82 3.52 19.80 2.75 6.61
2 AR 18.24 2.99 15.98 2.02 6.94
3 CA 28.60 4.46 22.07 2.66 7.06
4 CT 31.10 5.11 22.83 3.35 7.20
CIG BLAD LUNG KID LEUK
count 44.000000 44.000000 44.000000 44.000000 44.000000
mean 24.914091 4.121136 19.653182 2.794545 6.829773
std 5.573286 0.964925 4.228122 0.519080 0.638259
min 14.000000 2.860000 12.010000 1.590000 4.900000
25% 21.230000 3.207500 16.437500 2.457500 6.532500
50% 23.765000 4.065000 20.320000 2.845000 6.860000
75% 28.097500 4.782500 22.807500 3.112500 7.207500
max 42.400000 6.540000 27.270000 4.320000 8.280000
1. 抽煙的趨勢(shì)與分布
我是不抽煙的选调。我體會(huì)不了那抽的是寂寞的感覺(jué)。與其來(lái)一些煙的數(shù)據(jù)灵份,來(lái)點(diǎn)酒的數(shù)據(jù)其實(shí)更和酒鬼東哥之意哈仁堪,不過(guò)估計(jì)這樣的數(shù)據(jù)很難找……
先看看抽煙的大體情況。
plt.hist(df.CIG, bins=20,rwidth=0.9)
(array([ 1., 1., 3., 0., 4., 7., 7., 1., 5., 4., 6., 1., 1.,
1., 0., 0., 0., 0., 1., 1.]),
array([ 14. , 15.42, 16.84, 18.26, 19.68, 21.1 , 22.52, 23.94,
25.36, 26.78, 28.2 , 29.62, 31.04, 32.46, 33.88, 35.3 ,
36.72, 38.14, 39.56, 40.98, 42.4 ]),
<a list of 20 Patch objects>)
說(shuō)實(shí)話填渠,這個(gè)分布很怪異……
比如說(shuō)弦聂,19附近憑什么沒(méi)有值?25左邊憑什么就很少氛什?難道大家都不約而同的跳過(guò)去了嗎莺葫?
其實(shí)這是樣本偏差的問(wèn)題。我們可以看到
len(df)
44
統(tǒng)計(jì)學(xué)的一個(gè)基本原則是大數(shù)定律屉更。規(guī)律只能在數(shù)據(jù)量大的時(shí)候顯示其規(guī)律性徙融,數(shù)越大結(jié)果越傾向于其期望洒缀。44個(gè)州的樣本明顯無(wú)法滿足「大數(shù)」的要求瑰谜,反而可以滿足小數(shù)定律:
“如果統(tǒng)計(jì)數(shù)字很少,就很容易出現(xiàn)特別不均勻的情況树绩。這個(gè)現(xiàn)象被諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)得主丹尼爾·卡尼曼戲稱為“小數(shù)定律”萨脑。卡尼曼說(shuō)如果我們不理解小數(shù)定律饺饭,我們就不能真正理解大數(shù)定律渤早。
而小數(shù)定律說(shuō)如果樣本不夠大,那么它就會(huì)表現(xiàn)為各種極端情況瘫俊,而這些情況可能跟本性一點(diǎn)關(guān)系沒(méi)有鹊杖。”
—— Excerpt From: 萬(wàn)維鋼(同人于野). “萬(wàn)萬(wàn)沒(méi)想到:用理工科思維理解世界.”
so扛芽,我們還是繼續(xù)往下分析罷骂蓖。樣本不夠的情況下,這樣的分析沒(méi)有意義川尖。
print('Median value of CIG is %.2f.' % df.CIG.median())
print('Mean value of CIG is %.2f.' % df.CIG.mean())
cig = df.CIG.copy()
cig.name = 'Cig'
plt.boxplot(cig, vert=False,labels=[cig.name])
print('STD value of CIG is %.2f.' % cig.std())
Median value of CIG is 23.77.
Mean value of CIG is 24.91.
STD value of CIG is 5.57.
好吧登下,這樣依然看不出什么有意義的結(jié)果……話說(shuō)做數(shù)據(jù)分析,背景知識(shí)很重要,要不然得到了分析結(jié)果也不知道代表了什么……
還是接著看看抽煙和疾病的關(guān)系吧被芳,這個(gè)貌似不用太多的背景知識(shí)缰贝。
2. 抽煙與疾病的關(guān)系
依次對(duì)比一下各種疾病
print('The Correlation Value of CIG and disease is:')
print(df.corr())
The Correlation Value of CIG and disease is:
CIG BLAD LUNG KID LEUK
CIG 1.000000 0.703622 0.697403 0.487390 -0.068481
BLAD 0.703622 1.000000 0.658501 0.358814 0.162157
LUNG 0.697403 0.658501 1.000000 0.282743 -0.151584
KID 0.487390 0.358814 0.282743 1.000000 0.188713
LEUK -0.068481 0.162157 -0.151584 0.188713 1.000000
plt.scatter(df.CIG, df.BLAD)
plt.show()
BLAD是膀胱癌,相關(guān)系數(shù)高達(dá)0.7畔濒,而且從圖上明顯可以看出有相關(guān)趨勢(shì)剩晴。這讓我感覺(jué)很尷尬,膀胱是貯尿器官篓冲,用來(lái)貯藏和排泄小便李破;抽煙按說(shuō)最直接影響的應(yīng)該是呼吸器官,比如氣管壹将、肺之類的啊……這個(gè)讓人怎么解釋嗤攻?
plt.scatter(df.CIG, df.LUNG)
plt.show()
LUNG是肺癌,相關(guān)系數(shù)為0.69诽俯,按說(shuō)也不錯(cuò)妇菱,只是有了前面的膀胱癌作比較,就未免尷尬了一些……
plt.scatter(df.CIG, df.KID)
plt.show()
KID是腎癌暴区,相關(guān)系數(shù)0.48闯团。從圖上也能明顯看出,腎癌的高發(fā)區(qū)域集中在CIG 20-30之間仙粱。但這個(gè)數(shù)據(jù)并不能說(shuō)明什么房交,因?yàn)镃IG 20-30之間的州本來(lái)就占了大多數(shù)
df2030 = df[(df.CIG > 20) & (df.CIG <30)]
print('The NO. of states between 20 and 30 is %i.' % len(df2030))
print('The NO. of total states is %i.' % len(df))
p = (len(df2030)*1.0)/(len(df)*1.0)*100.0
print('The percentage of df20-30 is %.2f%%.' % p)
The NO. of states between 20 and 30 is 33.
The NO. of total states is 44.
The percentage of df20-30 is 75.00%.
所以,這些數(shù)據(jù)說(shuō)明不了太多東西伐割。
plt.scatter(df.CIG, df.LEUK)
plt.show()
如果說(shuō)前三個(gè)好歹還有點(diǎn)關(guān)聯(lián)的話候味,最后這個(gè) LEUK 白血病,和抽煙就干脆一點(diǎn)關(guān)系沒(méi)有了隔心,相關(guān)系數(shù)僅-0.068白群。不過(guò)在維基百科上查了查白血病此條,赫然發(fā)現(xiàn)
白血病發(fā)生的真正原因尚未知曉硬霍,目前相信環(huán)境與遺傳因素都扮演了重要角色[5]帜慢。風(fēng)險(xiǎn)因子包括:吸煙、游離輻射唯卖、部分化學(xué)物質(zhì)如苯粱玲、曾接受化療、唐氏綜合癥拜轨、家族史有白血病抽减。
白血病 - 維基百科,自由的百科全書(shū)
呃撩轰,這個(gè)……以我的水平胯甩,維基百科就等于科學(xué)結(jié)論昧廷,所以這個(gè)結(jié)果也讓我很尷尬啊??……
學(xué)點(diǎn)和現(xiàn)實(shí)相關(guān)的東西果然不是什么容易的事情。
最后偎箫,作為好事者木柬,我看了看各種癌的數(shù)據(jù)有沒(méi)有什么相關(guān)性。
df = df.drop('CIG',axis=1)
df.corr()
BLAD LUNG KID LEUK
BLAD 1.000000 0.658501 0.358814 0.162157
LUNG 0.658501 1.000000 0.282743 -0.151584
KID 0.358814 0.282743 1.000000 0.188713
LEUK 0.162157 -0.151584 0.188713 1.000000
按說(shuō)一個(gè)人沒(méi)法死于兩個(gè)癌癥淹办,所以這個(gè)數(shù)據(jù)并什么用我也不知道……
不過(guò)還是可以分析出一些東西眉枕。從表中可以看出,BLAD 和 LUNG 的相關(guān)性比較高一點(diǎn)怜森∷偬簦考慮到這個(gè)數(shù)據(jù)是每州死因數(shù)據(jù),是否可以認(rèn)為副硅,膀胱癌和肺癌可能有相似的誘因姥宝?維基百科了一下:
罹患膀胱癌最主要的危險(xiǎn)因子是來(lái)自基因的影響,另外吸煙恐疲、長(zhǎng)期接觸某種染料(含苯胺(aniline)成分者腊满,如紡織廠員工就可能接觸到)、汽油或其他化學(xué)物質(zhì)者也有較高的風(fēng)險(xiǎn)培己。
大多數(shù)(80-90%)肺癌患者患病的原因?yàn)殚L(zhǎng)期吸煙碳蛋,然而大約10-15%的患者從不吸煙,這部分人患上肺癌往往是由于遺傳因素和吸入空氣污染物共同導(dǎo)致省咨,污染物包括氡氣肃弟、石棉或其它形式的空氣污染,包括二手煙零蓉。
排除基因和吸煙笤受,更多更主要的因素貌似都在污染上。染料(含苯胺(aniline))汽油或其他化學(xué)物質(zhì)者壁公,氡氣感论、石棉或其它形式的空氣污染绅项,差不多可以歸為一類紊册。
壯哉,我大中華快耿,霧霾威武囊陡!