医学统计

import pandas as pd
pd.options.display.max_columns = None
data = pd.read_csv(r'总.csv',encoding='utf-8')

# DM_MCI
DM_MCI = data.iloc[0:22,:].describe()
zhixinqujian_up = DM_MCI.iloc[1,:]+2.0796*DM_MCI.iloc[2,:]/(22)**(1/2)
zhixinqujian_d = DM_MCI.iloc[1,:]-2.0796*DM_MCI.iloc[2,:]/(22)**(1/2)
DM_MCI = DM_MCI.append(zhixinqujian_up, ignore_index=True)
DM_MCI = DM_MCI.append(zhixinqujian_d, ignore_index=True)
DM_MCI.index = ['count','mean','std','min','25%','50%','75%','max','c_up','c_down']
print(DM_MCI)

               编号      年龄(岁)    收缩压 mmHg   舒张压 mmHg      体重 Kg       身高 m  \
count   22.000000  22.000000   22.000000  22.000000  22.000000  22.000000   
mean    11.500000  65.363636  135.545455  78.545455  67.227273   1.656364   
std      6.493587   7.188254   14.194993   8.857213   8.831393   0.070342   
min      1.000000  50.000000  101.000000  65.000000  52.000000   1.480000   
25%      6.250000  61.500000  130.000000  74.000000  61.000000   1.620000   
50%     11.500000  65.500000  135.000000  75.500000  66.000000   1.670000   
75%     16.750000  71.000000  141.500000  81.500000  70.750000   1.705000   
max     22.000000  76.000000  160.000000  95.000000  86.000000   1.760000   
c_up    14.379076  68.550708  141.839120  82.472497  71.142867   1.687551   
c_down   8.620924  62.176564  129.251789  74.618413  63.311678   1.625176   
# DM_HC
DM_HC = data.iloc[22:45,:].describe()
zhixinqujian_up = DM_HC.iloc[1,:]+2.0739*DM_HC.iloc[2,:]/(22)**(1/2)
zhixinqujian_d = DM_HC.iloc[1,:]-2.0739*DM_HC.iloc[2,:]/(22)**(1/2)
DM_HC = DM_HC.append(zhixinqujian_up, ignore_index=True)
DM_HC = DM_HC.append(zhixinqujian_d, ignore_index=True)
DM_HC.index = ['count','mean','std','min','25%','50%','75%','max','c_up','c_down']
print(DM_HC)
               编号      年龄(岁)    收缩压 mmHg   舒张压 mmHg      体重 Kg       身高 m  \
count   23.000000  23.000000   23.000000  23.000000  23.000000  23.000000   
mean    34.000000  57.217391  137.391304  83.521739  65.391304   1.671304   
std      6.782330   8.388068   12.576093   8.050238   9.013823   0.102217   
min     23.000000  45.000000  109.000000  70.000000  50.000000   1.470000   
25%     28.500000  51.000000  128.500000  76.500000  59.500000   1.605000   
50%     34.000000  58.000000  137.000000  85.000000  68.000000   1.660000   
75%     39.500000  62.000000  146.500000  88.000000  71.500000   1.745000   
max     45.000000  75.000000  158.000000  99.000000  80.000000   1.900000   
c_up    36.998854  60.926234  142.951911  87.081208  69.376829   1.716500   
c_down  31.001146  53.508549  131.830697  79.962271  61.405780   1.626109   

      

            颞叶脑沟_左      颞叶脑沟_右         丘脑_左         丘脑_右  
count    23.000000   23.000000    23.000000    22.000000  
mean    359.869565  335.304348  6013.086957  6036.500000  
std     211.291549  202.637032   606.320266   577.853891  
min      68.000000   20.000000  4824.000000  4768.000000  
25%     179.000000  194.000000  5641.500000  5691.500000  
50%     358.000000  262.000000  6125.000000  6106.000000  
75%     474.500000  487.500000  6410.500000  6395.000000  
max     870.000000  792.000000  6975.000000  7118.000000  
c_up    453.293595  424.901723  6281.175685  6292.002123  
c_down  266.445535  245.706973  5744.998228  5780.997877  
# HC
HC = data.iloc[45:,:].describe()
zhixinqujian_up = HC.iloc[1,:]+2.0796*HC.iloc[2,:]/(22)**(1/2)
zhixinqujian_d = HC.iloc[1,:]-2.0796*HC.iloc[2,:]/(22)**(1/2)
HC = HC.append(zhixinqujian_up, ignore_index=True)
HC = HC.append(zhixinqujian_d, ignore_index=True)
HC.index = ['count','mean','std','min','25%','50%','75%','max','c_up','c_down']
print(HC)
               编号      年龄(岁)    收缩压 mmHg   舒张压 mmHg      体重 Kg       身高 m  \
count   22.000000  22.000000   22.000000  22.000000  22.000000  22.000000   
mean    56.500000  56.545455  124.136364  78.909091  62.590909   1.649545   
std      6.493587   7.404807   12.472047   8.123506   9.085096   0.084880   
min     46.000000  44.000000  102.000000  61.000000  42.000000   1.460000   
25%     51.250000  52.750000  117.250000  74.000000  56.250000   1.595000   
50%     56.500000  57.000000  123.000000  78.000000  66.500000   1.650000   
75%     61.750000  59.750000  128.750000  80.750000  69.500000   1.697500   
max     67.000000  75.000000  147.000000  97.000000  75.000000   1.800000   
c_up    59.379076  59.828540  129.666123  82.510828  66.618988   1.687179   
c_down  53.620924  53.262369  118.606605  75.307354  58.562830   1.611912   

 


            颞叶脑沟_左      颞叶脑沟_右         丘脑_左         丘脑_右  
count    22.000000   22.000000    22.000000    21.000000  
mean    302.727273  313.590909  6111.000000  6235.571429  
std     211.620996  152.284714   460.146043   458.019058  
min      78.000000   97.000000  5186.000000  5464.000000  
25%     140.750000  184.500000  5760.000000  5913.000000  
50%     280.500000  291.000000  6123.500000  6220.000000  
75%     378.500000  435.000000  6479.750000  6531.000000  
max     914.000000  667.000000  6882.000000  7110.000000  
c_up    396.554141  381.109719  6315.015968  6438.644350  
c_down  208.900404  246.072099  5906.984032  6032.498507  
# 三组差异比较
#DM_MCI  and DM_HC
sw2 = ((22-1)*DM_MCI.iloc[2,:]**2 + (23-1)*DM_HC.iloc[2,:]**2)/(22+23-2)
up = DM_MCI.iloc[1,:]-DM_HC.iloc[1,:]+(sw2)**(1/2)*(1/22+1/23)**(1/2)*2.0167
down = DM_MCI.iloc[1,:]-DM_HC.iloc[1,:]-(sw2)**(1/2)*(1/22+1/23)**(1/2)*2.0167
bijiao = DM_MCI
bijiao.index = ['置信上限','置信下限','零值判断','是否有差异','2','3','4','5','6','7']
bijiao.iloc[0,:] = up
bijiao.iloc[1,:] = down
bijiao.iloc[2,:] = up*down
for i in range(197):
    if bijiao.iloc[2,i] <= 0:
        bijiao.iloc[3,i] = '无差异'
    else:
        bijiao.iloc[3,i] = '有差异'
print(bijiao.iloc[0:4,:])
            编号    年龄(岁) 收缩压 mmHg  舒张压 mmHg    体重 Kg       身高 m BMI Kg/m2  \
置信上限  -18.5049  12.8524  6.20778  0.108037  7.20369  0.0380454   3.29196   
置信下限  -26.4951  3.44012 -9.89948  -10.0606 -3.53175 -0.0679268 -0.818482   
零值判断   490.289  44.2137 -61.4538  -1.08692 -25.4417 -0.0025843  -2.69441   
是否有差异      有差异      有差异      无差异       无差异      无差异        无差异       无差异   



        颞叶脑沟_右     丘脑_左     丘脑_右  
置信上限    221.69   26.011  78.2693  
置信下限  -22.6622 -699.912  -584.36  
零值判断  -5023.99 -18205.4 -45737.4  
是否有差异      无差异      无差异      无差异  
#DM_MCI  and  HC
sw2 = ((22-1)*DM_MCI.iloc[2,:]**2 + (23-1)*HC.iloc[2,:]**2)/(22+23-2)
up = DM_MCI.iloc[1,:]-HC.iloc[1,:]+(sw2)**(1/2)*(1/22+1/23)**(1/2)*2.0181
down = DM_MCI.iloc[1,:]-HC.iloc[1,:]-(sw2)**(1/2)*(1/22+1/23)**(1/2)*2.0181
bijiao = DM_MCI
bijiao.index = ['置信上限','置信下限','零值判断','是否有差异','2','3','4','5','6','7']
bijiao.iloc[0,:] = up
bijiao.iloc[1,:] = down
bijiao.iloc[2,:] = up*down
for i in range(197):
    if bijiao.iloc[2,i] <= 0:
        bijiao.iloc[3,i] = '无差异'
    else:
        bijiao.iloc[3,i] = '有差异'
print(bijiao.iloc[0:4,:])
            编号    年龄(岁) 收缩压 mmHg 舒张压 mmHg    体重 Kg     身高 m BMI Kg/m2  \
置信上限    123.23 -34.2387 -107.638  -85.443 -54.7301 -1.68092  -22.1199   
置信下限   -289.22  -71.972 -160.434 -92.4964 -77.5153 -1.75403  -25.4771   
零值判断  -35640.5  2464.23  17268.8  7903.17  4242.42  2.94837    563.55   
是否有差异      无差异      有差异      有差异      有差异      有差异      有差异       有差异   

     

              丘脑_左         丘脑_右  
置信上限       848.481      12417.4  
置信下限      -14470.3     -26057.2  
零值判断  -1.22778e+07 -3.23562e+08  
是否有差异          无差异          无差异  
#DM_HC  and  HC
sw2 = ((22-1)*DM_HC.iloc[2,:]**2 + (23-1)*HC.iloc[2,:]**2)/(22+23-2)
up = DM_HC.iloc[1,:]-HC.iloc[1,:]+(sw2)**(1/2)*(1/22+1/23)**(1/2)*2.0167
down = DM_HC.iloc[1,:]-HC.iloc[1,:]-(sw2)**(1/2)*(1/22+1/23)**(1/2)*2.0167
bijiao = DM_MCI
bijiao.index = ['置信上限','置信下限','零值判断','是否有差异','2','3','4','5','6','7']
bijiao.iloc[0,:] = up
bijiao.iloc[1,:] = down
bijiao.iloc[2,:] = up*down
for i in range(197):
    if bijiao.iloc[2,i] <= 0:
        bijiao.iloc[3,i] = '无差异'
    else:
        bijiao.iloc[3,i] = '有差异'
print(bijiao.iloc[0:4,:])
            编号    年龄(岁) 收缩压 mmHg  舒张压 mmHg    体重 Kg        身高 m BMI Kg/m2  \
置信上限  -18.5089  5.42328  20.7864   9.47675  8.24339     0.07814   2.16156   
置信下限  -26.4911 -4.07941  5.72347 -0.251458  -2.6426  -0.0346222  -1.24504   
零值判断   490.321 -22.1238   118.97    -2.383  -21.784 -0.00270538  -2.69123   
是否有差异      有差异      无差异      有差异       无差异      无差异         无差异       无差异   

    

        颞叶脑沟_右     丘脑_左     丘脑_右  
置信上限    129.16  224.764  113.666  
置信下限  -85.7332  -420.59 -511.809  
零值判断  -11073.3 -94533.5 -58175.1  
是否有差异      无差异      无差异      无差异  
# 任务二
DM_MCI_df = data.iloc[0:22,:]
DM_MCI_gaoxueya_ratio = DM_MCI_df.iloc[:,11].sum()/22
print(DM_MCI_gaoxueya_ratio)
DM_MCI_gaoxuezhi_ratio = DM_MCI_df.iloc[:,12].sum()/22
print(DM_MCI_gaoxuezhi_ratio)
DM_MCI_gaoniaosuan_ratio = DM_MCI_df.iloc[:,13].sum()/22
print(DM_MCI_gaoniaosuan_ratio)
0.6818181818181818
0.22727272727272727
0.18181818181818182
DM_HC_df = data.iloc[22:45,:]
DM_HC_gaoxueya_ratio = DM_HC_df.iloc[:,11].sum()/23
print(DM_HC_gaoxueya_ratio)
DM_HC_gaoxuezhi_ratio = DM_HC_df.iloc[:,12].sum()/23
print(DM_HC_gaoxuezhi_ratio)
DM_HC_gaoniaosuan_ratio = DM_HC_df.iloc[:,13].sum()/23
print(DM_HC_gaoniaosuan_ratio)
0.6086956521739131
0.391304347826087
0.17391304347826086
HC_df = data.iloc[45:,:]
HC_gaoxueya_ratio = HC_df.iloc[:,11].sum()/22
print(HC_gaoxueya_ratio)
HC_gaoxuezhi_ratio = HC_df.iloc[:,12].sum()/22
print(HC_gaoxuezhi_ratio)
HC_gaoniaosuan_ratio = HC_df.iloc[:,13].sum()/22
print(HC_gaoniaosuan_ratio)
0.4090909090909091
0.18181818181818182
0.045454545454545456

def sw(p1,n1,p2,n2):
    sw2 = ((n1-1)*p1*(1-p1)+(n2-1)*p2*(1-p2))/(n1+n2-2)
    return sw2
def confindence(p1,n1,p2,n2,t):
    up_c = p1 - p2 + (t*sw(p1,n1,p2,n2)**(1/2))/(1/n1+1/n2)**(1/2)
    down_c = p1 - p2 - (t*sw(p1,n1,p2,n2)**(1/2))/(1/n1+1/n2)**(1/2)
    return up_c,down_c
# 计算差异
#DM_MCI 和 DM_HC
print(confindence(DM_MCI_gaoxueya_ratio,22,DM_HC_gaoxueya_ratio,23,2.0167))
print(confindence(DM_MCI_gaoxuezhi_ratio,22,DM_HC_gaoxuezhi_ratio,23,2.0167))
print(confindence(DM_MCI_gaoniaosuan_ratio,22,DM_HC_gaoniaosuan_ratio,23,2.0167))
(3.3008538262069607, -3.1546087669184235)
(2.91742035711708, -3.2454835982237995)
(2.5932383950619036, -2.5774281183820618)
#DM_HC and HC
print(confindence(HC_gaoxueya_ratio,22,DM_HC_gaoxueya_ratio,23,2.0167))
print(confindence(HC_gaoxuezhi_ratio,22,DM_HC_gaoxuezhi_ratio,23,2.0167))
print(confindence(HC_gaoniaosuan_ratio,22,DM_HC_gaoniaosuan_ratio,23,2.0167))
(3.1127948617477603, -3.512004347913768)
(2.773039495207817, -3.1920118272236273)
(1.95253773368926, -2.2094547297366907)
print(confindence(HC_gaoxueya_ratio,22,DM_MCI_gaoxueya_ratio,22,2.0181))
print(confindence(HC_gaoxuezhi_ratio,22,DM_MCI_gaoxuezhi_ratio,22,2.0181))
print(confindence(HC_gaoniaosuan_ratio,22,DM_MCI_gaoniaosuan_ratio,22,2.0181))
(2.932640259418825, -3.4780948048733697)
(2.6501189193585626, -2.7410280102676534)
(1.9382767150806592, -2.2110039878079317)
# 任务三
# F量表
for i in range(197):
    if type(DM_MCI_df.iloc[2,i]) == type('sr'):
        pass
    else:
        corr = DM_MCI_df.iloc[:,52].corr(DM_MCI_df.iloc[:,i],method="pearson")
    if corr>=0.5:
        print(i)
        print(DM_MCI_df.columns[i])
        print(corr)
43
Cre umol/L(血)
0.5618838735471372
45
UACR mg/mmol
0.5029846424510078
46
24小时尿蛋白 mg/24h
0.5238626310109578
52
Fazekas 量表
1.0
53
改良Scheltens量表
0.8449524938878122
54
备注
0.8449524938878122
55
中文
0.8449524938878122
for i in range(197):
    if type(DM_HC_df.iloc[2,i]) == type('sr'):
        pass
    else:
        corr = DM_HC_df.iloc[:,52].corr(DM_HC_df.iloc[:,i],method="pearson")
    if corr>=0.5:
        print(i)
        print(DM_HC_df.columns[i])
        print(corr)
52
Fazekas 量表
1.0
53
改良Scheltens量表
0.8802986479606757
54
备注
0.8802986479606757
55
中文
0.8802986479606757
for i in range(197):
    if type(HC_df.iloc[2,i]) == type('sr'):
        pass
    else:
        corr = HC_df.iloc[:,52].corr(HC_df.iloc[:,i],method="pearson")
    if corr>=0.5:
        print(i)
        print(HC_df.columns[i])
        print(corr)
4
收缩压 mmHg
0.6473908149037013
11
高血压史
0.5182273905257923
45
UACR mg/mmol
0.659069697844958
52
Fazekas 量表
1.0
53
改良Scheltens量表
0.9145628288021426
54
备注
0.9145628288021426
55
中文
0.9145628288021426
56
灰质总体积
0.51788661309641
57
白质总体积
0.6074696647386324
59
颅内总体积
0.5252664138882185
60
中文.1
0.5252664138882185
61
左侧海马体
0.5747089370076545
62
右侧海马体
0.623337419687074
71
第四脑室
0.5653561193998942
72
中文.3
0.5653561193998942
74
右侧丘脑
0.5683517233645754
79
左侧杏仁核
0.643501850309859
80
右侧杏仁核
0.5147448170523
81
中文.4
0.5147448170523
96
左侧额下角回
0.5023477376372675
111
右侧后岛叶
0.5486948569867527
116
左侧后中回
0.5037859594960787
129
右侧枕上回
0.5913129045885215
138
左侧枕叶梭状回
0.5161244970182177
139
右侧枕叶梭状回
0.7189564411055331
159
白质体积(μL)
0.58617358563526
162
脑白质前端_左
0.5706322518685493
163
脑白质前端_右
0.5021150370971483
164
基底前脑_左
0.5000715302402381
165
基底前脑_右
0.5454498900888539
166
基底节_左
0.6311000844007744
167
基底节_右
0.6463177765127791
174
胼胝体_左
0.5525854794802145
175
胼胝体_右
0.6079498861670881
181
脑白质下端_左
0.6059457381460603
182
脑白质下端_右
0.5421160006569735
184
脑岛_右
0.5253635857389236
188
边缘白质_左
0.6287053168020581
for i in range(197):
    if type(HC_df.iloc[2,i]) == type('sr'):
        pass
    else:
        corr = HC_df.iloc[:,50].corr(HC_df.iloc[:,i],method="pearson")
    if corr>=0.5:
        print(i)
        print(HC_df.columns[i])
        print(corr)
44
GFRml/min/1.73m2
0.5292056142680764
50
MMSE 分
1.0
51
学历
1.0

猜你喜欢

转载自blog.csdn.net/qq_42830971/article/details/113870186