我正在比较癌症患者和健康人结构断裂的 DNA 区域。我正在尝试对每个区域的中断次数进行 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)
即使我大幅更改了其中一个列表,这也适用于所有比较。
深入挖掘,我读到输入应该是一个数组列表,所以我认为只给出两个数据点(一个样本,一个控件)可能会导致“(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
现在我不确定要使用什么格式/类型,希望任何人都可以帮助我!