私はがん患者と健常者の 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
今、どの形式/タイプを使用すればよいかわかりません。うまくいけば、誰かが私を助けてくれます!