感謝 Dr.fish 的耐心講解和細(xì)致回答。
本次課的作業(yè)如下:
基于smoking_cancer.csv數(shù)據(jù),用描述統(tǒng)計(jì)量和統(tǒng)計(jì)圖表對(duì)其進(jìn)行分析。
備注:
STATE: 美國(guó)州名的簡(jiǎn)寫
CIG: 人均吸煙的數(shù)量
BLAD: 每10萬人中死于膀胱癌( bladder cancer)的人數(shù)
LUNG: 每10萬人中死于肺癌(lung cancer)的人數(shù)
KID: 每10萬人中死于腎癌(kidney cancer)的人數(shù)
LEUK: 每10萬人中死于白血病(leukemia)的人數(shù)
這次生病了氨鹏,本來還有些分析要做的,但是有點(diǎn)兒支持不住了压状,后面身體好了會(huì)補(bǔ)上仆抵。
不再貧了,直奔主題种冬。
結(jié)論
- 全美平均吸煙量為25根镣丑,極差28.4,數(shù)據(jù)分散度較大娱两;
- 四款癌癥發(fā)病數(shù)中莺匠,肺癌發(fā)病數(shù)遙遙領(lǐng)先,已超過全部癌癥的一半十兢,其次為白血病
- 分別計(jì)算四款癌癥與吸煙的相關(guān)性發(fā)現(xiàn)相關(guān)從強(qiáng)到弱分別為:膀胱癌 - 肺癌 - 腎癌 - 白血病
以下為代碼部分
#導(dǎo)入分析包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from __future__ import division # 支持精確除法
from sklearn.cluster import KMeans # 聚類分析包
%matplotlib inline
%config InlineBackend.figure_format = 'retina' # 設(shè)置圖像清晰度
# 導(dǎo)入數(shù)據(jù)表并查看
df = pd.read_csv('smoking_cancer.csv')
df.head()
# 查看數(shù)據(jù)表整體情況
df.info()
# 查看基礎(chǔ)統(tǒng)計(jì)項(xiàng)
df.describe()
# 全美平均吸煙量全距
cig_range = df['CIG'].max() - df['CIG'].min() #極差
print 'cig_range:',cig_range
# 輸出結(jié)果
cig_range: 28.4
# 全美癌癥發(fā)病數(shù)
bladder = df['BLAD'].sum()
lung = df['LUNG'].sum()
kidney = df['KID'].sum()
leukemia = df['LEUK'].sum()
print 'bladder:',bladder
print 'lung:',lung
print 'kidney:',kidney
print 'leukemia:',leukemia
# 輸出結(jié)果
bladder: 181.33
lung: 864.74
kidney: 122.96
leukemia: 300.51
# 四種癌癥占比
plt.figure(figsize = (5 , 7))
labels = [u'bladder',u'lung',u'kidney',u'leukemia']
sizes = [181.33, 864.74, 122.96, 300.51]
colors = ['#FFFFCC', '#CCFFFF', '#99CCCC', '#FFCCCC']
plt.pie(sizes, labels=labels, colors=colors, labeldistance = 1.1, autopct = '%1.1f%%', shadow = False, startangle = 90, pctdistance = 0.6)
#labeldistance趣竣,文本的位置離遠(yuǎn)點(diǎn)有多遠(yuǎn)摇庙,1.1指1.1倍半徑的位置
#autopct,圓里面的文本格式期贫,%1.1f%%表示小數(shù)有1位跟匆,整數(shù)有一位的浮點(diǎn)數(shù)
#shadow异袄,餅是否有陰影
#startangle通砍,起始角度,0烤蜕,表示從0開始逆時(shí)針轉(zhuǎn)封孙,為第一塊。一般選擇從90度開始比較好看
#pctdistance讽营,百分比的text離圓心的距離
plt.axis('equal') # 調(diào)整坐標(biāo)軸的比例
plt.show()
**備注 **
- 全美平均吸煙量為25根(一天一包煙虎忌,這個(gè)量可是真不小)
- 極差28.4橱鹏,數(shù)據(jù)分散度較大
- 四項(xiàng)癌癥發(fā)病數(shù)中膜蠢,肺癌發(fā)病數(shù)遙遙領(lǐng)先,已超過全部癌癥的一半莉兰,其次為白血蔡粑А(是否有相關(guān)性待查)
綜上所述,需要查看下每個(gè)州人均吸煙量情況
# 每州人均吸煙量柱圖
state = df.STATE.value_counts()
state_name = list(state.index)
x = np.arange(len(state_name))
y = df.CIG
plt.figure(figsize=(20,4)) #設(shè)置chart長(zhǎng)寬
plt.bar(x,y,color = '#00bfff',alpha=0.5) #生成條形圖糖荒,"color"設(shè)置柱子顏色杉辙,"alpha"設(shè)置柱子透明度
plt.xticks(x, state_name,rotation=30) #設(shè)置X軸標(biāo)簽,rotation 旋轉(zhuǎn)橫坐標(biāo)標(biāo)簽
plt.xlabel('state name') #設(shè)置X軸名稱
plt.ylabel('CIG') #設(shè)置Y軸名稱
plt.title('CIG OF STATE') #設(shè)置chart標(biāo)題
plt.legend(['CIG'],loc = 'upper right',fontsize = 10) #添加圖示捶朵,fontsize 字號(hào)大小
#添加數(shù)據(jù)標(biāo)簽
#a,b+0.5 在每一柱子對(duì)應(yīng)x值蜘矢、y值上方0.5處標(biāo)注文字說明
#'%.0f' % b 標(biāo)注的文字(每個(gè)柱子對(duì)應(yīng)的y值)
#ha='center',va= 'bottom' horizontalalignment(水平對(duì)齊)、verticalalignment(垂直對(duì)齊)
for a,b in zip(x,y):
plt.text(a, b + 0.5, '%.0f' % b, ha='center', va= 'bottom',fontsize=10)
plt.show()
# 每州總癌癥發(fā)病數(shù)柱圖
bladder_c = df.groupby('STATE').BLAD.sum() #計(jì)算各州 hillary 支持票數(shù)
lung_c = df.groupby('STATE').LUNG.sum() #計(jì)算各州 trump 支持票數(shù)
kidney_c = df.groupby('STATE').KID.sum()
leukemia_c =df.groupby('STATE').LEUK.sum()
states = list(bladder_c.index) #獲取各州名稱
x = np.arange(len(states)) #返回array類型對(duì)象
y = bladder_c #指定 hillary 的Y坐標(biāo)
y1 = lung_c #指定 trump 的Y坐標(biāo)
y2 = kidney_c
y3 = leukemia_c
plt.figure(figsize=(20,4)) #設(shè)置chart長(zhǎng)寬
plt.bar(x,y,width = 0.8,align = 'center',color = '#FFFFCC') #生成條形圖综看,"color='g'"設(shè)置柱子顏色品腹,"alpha=0.5"設(shè)置柱子透明度
plt.bar(x,y1,width = 0.8,align = 'center',color = '#CCFFFF',bottom = y)
plt.bar(x,y2,width = 0.8,align = 'center',color = '#99CCCC',bottom = y)
plt.bar(x,y3,width = 0.8,align = 'center',color = '#FFCCCC',bottom = y)
plt.xticks(x, states,rotation=30) #設(shè)置X軸標(biāo)簽,rotation 旋轉(zhuǎn)橫坐標(biāo)標(biāo)簽
plt.xlabel('states name') #設(shè)置X軸名稱
plt.ylabel('ticket') #設(shè)置Y軸名稱
plt.title('APPROVAL RATINGS') #設(shè)置chart標(biāo)題
plt.legend(['bladder','lung','kidney','leukemia'],loc = 'upper right',fontsize = 10) #添加圖示红碑,fontsize 字號(hào)大小
#添加數(shù)據(jù)標(biāo)簽
#a,b+0.8 在每一柱子對(duì)應(yīng)x值舞吭、y值上方0.5處標(biāo)注文字說明
#'%.0f' % b 標(biāo)注的文字(每個(gè)柱子對(duì)應(yīng)的y值)
#ha='center',va= 'bottom' horizontalalignment(水平對(duì)齊)、verticalalignment(垂直對(duì)齊)
for a,b in zip(x,y):
plt.text(a, b - 3, '%.0f' % b, ha = 'center', va = 'bottom',fontsize = 10)
for a,b in zip(x,y1):
plt.text(a, b + 0.8, '%.0f' % b, ha = 'center', va = 'bottom',fontsize = 10)
for a,b in zip(x,y2):
plt.text(a, b + 1, '%.0f' % b, ha = 'center', va = 'bottom',fontsize = 10)
for a,b in zip(x,y3):
plt.text(a, b + 0.8, '%.0f' % b, ha = 'center', va = 'bottom',fontsize = 10)
plt.show()
以下依據(jù)癌癥爆發(fā)人次進(jìn)行分析相關(guān)性
# 平均吸煙量與癌癥相關(guān)性 - lung
plt.scatter(df.CIG, df.LEUK, c = '#6666FF')
plt.show()
np.corrcoef(df.CIG, df.LUNG)[0,1] # 計(jì)算相關(guān)系數(shù)
# 輸出結(jié)果
相關(guān)系數(shù) : 0.6974025049275292
# 加線性回歸方法(95%置信區(qū)間)
sns.lmplot(x = "CIG", y = "LUNG",data = df[['CIG','LUNG']], order = 1, ci = 95, size=4, aspect=1)
plt.show()
# 平均吸煙量與癌癥相關(guān)性 - leukemia
plt.scatter(df.CIG, df.LEUK, c = '#FF6666')
plt.show()
np.corrcoef(df.CIG, df.LEUK)[0,1] # 計(jì)算相關(guān)系數(shù)
# 輸出結(jié)果
相關(guān)系數(shù) : -0.068481229476638969
# 加線性回歸方法(95%置信區(qū)間)
sns.lmplot(x = "CIG", y = "LEUK",data = df[['CIG','LEUK']], order = 1, ci = 95, size=4, aspect=1)
plt.show()
# 平均吸煙量與癌癥相關(guān)性 - bladder
plt.scatter(df.CIG, df.BLAD, c = '#FFFF66')
plt.show()
np.corrcoef(df.CIG, df.BLAD)[0,1] # 計(jì)算相關(guān)系數(shù)
# 輸出結(jié)果
相關(guān)系數(shù) : 0.70362185946144185
# 加線性回歸方法(95%置信區(qū)間)
sns.lmplot(x = "CIG", y = "BLAD",data = df[['CIG','BLAD']], order = 1, ci = 95, size=4, aspect=1)
plt.show()
# 平均吸煙量與癌癥相關(guān)性 - kidney
plt.scatter(df.CIG, df.KID, c = '#336699')
plt.show()
np.corrcoef(df.CIG, df.KID)[0,1] # 計(jì)算相關(guān)系數(shù)
# 輸出結(jié)果
相關(guān)系數(shù) :0.48738961703356476
# 加線性回歸方法(95%置信區(qū)間)
sns.lmplot(x = "CIG", y = "KID",data = df[['CIG','KID']], order = 1, ci = 95, size=4, aspect=1)
plt.show()
后記
就在寫這篇作業(yè)的時(shí)候句喷,小白也在與病魔進(jìn)行斗爭(zhēng)(生扛那種)镣典,深刻的體會(huì)到了擁有一個(gè)好身體的重要性。其實(shí)這篇作業(yè)寫得還是蠻壓抑的唾琼,隨著cancer的全球性爆發(fā)兄春,我們究竟如何才能躲過它走向生命的盡頭,真的很值得我們思考(再想想帝都的霧霾…OMG锡溯,小白好像病的更厲害了些)赶舆。
雖然沒有證據(jù)證明肺癌是由吸煙引起的哑姚,但是依據(jù)數(shù)據(jù)可以明顯看到它們的強(qiáng)相關(guān)性。以及讓小白差異的膀胱癌芜茵?叙量!居然相關(guān)性比肺癌還高。當(dāng)然九串,這只是一份全美的數(shù)據(jù)表绞佩,給出的數(shù)據(jù)規(guī)模也并不能完全支持“吸煙更容易引起膀胱癌”這樣的結(jié)論,另外也沒有將其他疾病數(shù)據(jù)引入進(jìn)來猪钮。但即便是這樣品山,我們還是可以發(fā)現(xiàn)樣本數(shù)據(jù)中吸煙就是會(huì)和某些癌癥表現(xiàn)出異常的相關(guān)性來,這樣的結(jié)果多少值得我們重視一下烤低。
所以肘交,愛惜生命,從戒煙開始扑馁。