如果我想通过scipy stats执行类似Levene的等方差测试,这会为字典中的所有数据生成两个输出(测试统计和p值),我将如何将每个测试的输出附加到两个不同的名单?我尝试了下面的代码:
test_stat[]
p_value[]
for i in range(0, n_data):
for j in range(1, n_name):
test_stat[i], p_value[i] = scipy.stats.levene(data[i][name[j-1]],
data[i][name[j]],
center='median')
但这显然不是解决问题的方法,因为我不断获得IndexError
因为列表分配索引超出范围。
任何建议都将不胜感激。谢谢!
答案 0 :(得分:1)
并非一切都需要在一行......这应该可以正常工作:
test_stats = []
p_values = []
for i in range(0, n_data):
for j in range(1, n_name):
test_stat, p_value = scipy.stats.levene(data[i][name[j-1]],
data[i][name[j]],
center='median')
test_stats.append(test_stat)
p_values.append(p_value)
虽然这当然会添加n_data * n_name
行。