pythonってすごいね

RNAseqを用いた遺伝子発現量解析、機械学習を用いた回帰、分類などの解析を中心に記事を書いていきたいです!

バイオ系の解析で使う統計検定 (python)

student's t-test (two-side)

[1] 2つのデータ間に対応がない
[2] データが正規分布である (パラメトリック)
[3] 平均値の比較
[4] 分散が等しい

equal_var = 分散が同じか (True)、異なるか(False)?

from scipy import stats
a=[9,8,3,6,9,10]
b=[1,0,3,2,1,2]
stats.ttest_ind(a, b, equal_var=True) #student
Ttest_indResult(statistic=5.262348115842176, pvalue=0.00036681936202134297) #統計量、P値

welch's t-test (two-side)

[1] 2つのデータ間に対応がない
[2] データが正規分布である (パラメトリック)
[3] 平均値の比較
[4] 分散が等しくない

from scipy import stats
a=[9,8,3,6,9,10]
b=[1,0,3,2,1,2]
stats.ttest_ind(a, b, equal_var=False) #welch
Ttest_indResult(statistic=5.262348115842175, pvalue=0.001410491864110316) #統計量、P値

Mann-Whitney's U test

[1] 2つのデータ間に対応がない
[2] 正規性を仮定しない (ノンパラメトリック)
[3] 中央値の比較

from scipy import stats
a=[9,8,3,6,9,10]
b=[1,0,3,2,1,2]

stats.mannwhitneyu(a,b)
MannwhitneyuResult(statistic=0.5, pvalue=0.0030587419666366156) #統計量 P値

カイ二乗検定 (独立性の検定)

[1] クロス集計表において分類基準間に関連があるかどうかを検定する
[2] 正規分布を仮定しない (ノンパラメトリック)

from scipy import stats
a=[50,10]
b=[10,50]
data=np.array([a,b])
stats.chi2_contingency(data) 
(50.7, 1.0761956058758012e-12, 1, array([[30., 30.],
       [30., 30.]])) #統計量 P値 自由度 期待値

 

Kolmogorov–Smirnov (KS) test

[1] データ間の確率分布の相違
[2] 正規性を仮定しない(ノンパラメトリック

from scipy import stats
b = np.random.normal(0, 1, 1000)
a = np.random.normal(0.9, 1.3, 1000)
stats.ks_2samp(x, y)
Ks_2sampResult(statistic=0.3333333333333333, pvalue=0.9307359307359307) #統計量、P値

 

 

統計検定の参考にしたサイト

データ科学便覧

統計web