5

私はがん患者と健常者の DNA の構造破壊領域を比較しています。2 つの分布に違いがあるかどうかを確認するために、各領域のブレーク数に対して Kruskal-Wallis 検定 (SciPy Stats) を実行しようとしています。Kruskal - Wallis の入力が配列 (ドキュメント) であるか、配列のリスト (インターネット上の他の場所) であるかはわかりません。

まず、次のようなサンプル + コントロールの配列を試しました。

controls = ['1', '2', '3', '4', '5']
samples = ['10', '20', '30', '40', '50']
n=0
for item in controls:
    array_item = np.array([item, samples[n]])
    kw_test = stats.mstats.kruskalwallis(array_item)
    print(kw_test)
    n+=1

これにより、すべてのアイテムに対して次の出力が得られました。

(0.0, nan)

また、個々のデータポイントを配列に変換してから、KW テストを実行してみました。

controls = ['1', '2', '3', '4', '5']
samples = ['10', '20', '30', '40', '50']
n=0
kw_results = []
for item in controls:
    array_controls = np.array([item])
    array_samples = np.array([samples[n]])
    kw_test = stats.mstats.kruskalwallis(array_samples, array_controls)
    kw_results.append(kw_test)
    n+=1
print(kw_results)

(1.0, 0.31731050786291404)リストの1つを大幅に変更した場合でも、すべての比較が可能でした。

より深く掘り下げると、入力は配列のリストである必要があることを読んだので、2 つのデータポイント (1 つのサンプル、1 つのコントロール) のみを指定すると「(0.0, nan)」が発生した可能性があると考えたので、それも試しました。

controls = ['1', '2', '3', '4', '5']
samples = ['10', '20', '30', '40', '50']
list_ = []
n=0
for item in controls:
    array_item = np.array([item, samples[n]])
    list_.append(array_item)
    n+=1
kw_test = stats.mstats.kruskalwallis(list_)
print(kw_test)

それは私にこのエラーを与えました:

TypeError: Not implemented for this type

今、どの形式/タイプを使用すればよいかわかりません。うまくいけば、誰かが私を助けてくれます!

4

3 に答える 3

3

scipy.stats.mstats.kruskalwallisモジュールは配列を使用しますこれらは、観測数が奇数の配列である可能性があります。

CSV ファイル内のデータが別々の列にある場合、次のようなものが機能するはずです。

import pandas
from scipy.stats import mstats

Data = pandas.read_csv("CSVfile.csv")
Col_1 = Data['Colname1']
Col_2 = Data['Colname2']
Col_3 = Data['Colname3']
Col_4 = Data['Colname4']

print("Kruskal Wallis H-test test:")

H, pval = mstats.kruskalwallis(Col_1, Col_2, Col_3, Col_4)

print("H-statistic:", H)
print("P-Value:", pval)

if pval < 0.05:
    print("Reject NULL hypothesis - Significant differences exist between groups.")
if pval > 0.05:
    print("Accept NULL hypothesis - No significant difference between groups.")
于 2015-07-25T11:51:04.260 に答える