美文网首页解密大数据
抽烟与疾病分析 - 解密大数据作业003

抽烟与疾病分析 - 解密大数据作业003

作者: 张利东 | 来源:发表于2017-07-30 20:57 被阅读77次

    老规矩,先导入及设置各种参数。

    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. 抽烟的趋势与分布

    我是不抽烟的。我体会不了那抽的是寂寞的感觉。与其来一些烟的数据,来点酒的数据其实更和酒鬼东哥之意哈,不过估计这样的数据很难找……

    先看看抽烟的大体情况。

    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>)
    
    output_2_1.png

    说实话,这个分布很怪异……

    比如说,19附近凭什么没有值?25左边凭什么就很少?难道大家都不约而同的跳过去了吗?

    其实这是样本偏差的问题。我们可以看到

    len(df)
    
    44
    

    统计学的一个基本原则是大数定律。规律只能在数据量大的时候显示其规律性,数越大结果越倾向于其期望。44个州的样本明显无法满足「大数」的要求,反而可以满足小数定律:

    “如果统计数字很少,就很容易出现特别不均匀的情况。这个现象被诺贝尔经济学奖得主丹尼尔·卡尼曼戏称为“小数定律”。卡尼曼说如果我们不理解小数定律,我们就不能真正理解大数定律。
    而小数定律说如果样本不够大,那么它就会表现为各种极端情况,而这些情况可能跟本性一点关系没有。”
    —— Excerpt From: 万维钢(同人于野). “万万没想到:用理工科思维理解世界.”

    so,我们还是继续往下分析罢。样本不够的情况下,这样的分析没有意义。

    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.
    
    output_6_1.png

    好吧,这样依然看不出什么有意义的结果……话说做数据分析,背景知识很重要,要不然得到了分析结果也不知道代表了什么……

    还是接着看看抽烟和疾病的关系吧,这个貌似不用太多的背景知识。

    2. 抽烟与疾病的关系

    依次对比一下各种疾病

    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()
    
    output_9_0.png

    BLAD是膀胱癌,相关系数高达0.7,而且从图上明显可以看出有相关趋势。这让我感觉很尴尬,膀胱是贮尿器官,用来贮藏和排泄小便;抽烟按说最直接影响的应该是呼吸器官,比如气管、肺之类的啊……这个让人怎么解释?

    plt.scatter(df.CIG, df.LUNG)
    plt.show()
    
    output_11_0.png

    LUNG是肺癌,相关系数为0.69,按说也不错,只是有了前面的膀胱癌作比较,就未免尴尬了一些……

    plt.scatter(df.CIG, df.KID)
    plt.show()
    
    output_13_0.png

    KID是肾癌,相关系数0.48。从图上也能明显看出,肾癌的高发区域集中在CIG 20-30之间。但这个数据并不能说明什么,因为CIG 20-30之间的州本来就占了大多数

    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%.
    

    所以,这些数据说明不了太多东西。

    plt.scatter(df.CIG, df.LEUK)
    plt.show()
    
    output_17_0.png

    如果说前三个好歹还有点关联的话,最后这个 LEUK 白血病,和抽烟就干脆一点关系没有了,相关系数仅-0.068。不过在维基百科上查了查白血病此条,赫然发现

    白血病发生的真正原因尚未知晓,目前相信环境与遗传因素都扮演了重要角色[5]。风险因子包括:吸烟、游离辐射、部分化学物质如苯、曾接受化疗、唐氏综合症、家族史有白血病。
    白血病 - 维基百科,自由的百科全书

    呃,这个……以我的水平,维基百科就等于科学结论,所以这个结果也让我很尴尬啊😓……

    学点和现实相关的东西果然不是什么容易的事情。

    最后,作为好事者,我看了看各种癌的数据有没有什么相关性。

    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
    

    按说一个人没法死于两个癌症,所以这个数据并什么用我也不知道……

    不过还是可以分析出一些东西。从表中可以看出,BLAD 和 LUNG 的相关性比较高一点。考虑到这个数据是每州死因数据,是否可以认为,膀胱癌和肺癌可能有相似的诱因?维基百科了一下:

    罹患膀胱癌最主要的危险因子是来自基因的影响,另外吸烟、长期接触某种染料(含苯胺(aniline)成分者,如纺织厂员工就可能接触到)、汽油或其他化学物质者也有较高的风险。
    大多数(80-90%)肺癌患者患病的原因为长期吸烟,然而大约10-15%的患者从不吸烟,这部分人患上肺癌往往是由于遗传因素和吸入空气污染物共同导致,污染物包括氡气、石棉或其它形式的空气污染,包括二手烟。

    排除基因和吸烟,更多更主要的因素貌似都在污染上。染料(含苯胺(aniline))汽油或其他化学物质者,氡气、石棉或其它形式的空气污染,差不多可以归为一类。

    壮哉,我大中华,雾霾威武!

    相关文章

      网友评论

        本文标题:抽烟与疾病分析 - 解密大数据作业003

        本文链接:https://www.haomeiwen.com/subject/eamklxtx.html