如何解决ttest 和 tukeyhsd 结果不一致
我需要使用事后 Tukey 检验对重复测量执行方差分析。
由于我对 Python 非常陌生,所以我使用下面的示例测试了我的代码。 在这里,我只使用了两个组,因此可以将结果与配对样本 t 检验进行比较(这些应该导致相同的 p 值和均值差异)。 另外,我在 Matlab 中重复了 t 检验和 Tukey 检验(因为我在这里有经验)。
我正在使用以下方法: statsmodels.stats.multicomp.pairwise_tukeyhsd 和 scipy.stats.ttest_rel 我的原始数据是一个 pd.dataframe,因此我在示例中也使用了它。
就我而言,python 之间存在分歧
- p 值: 来自 ttest_rel 和 pairwise_tukeyhsd 的那些不一致。 ttest_rel 得到的结果与我在 Matlab 中使用 t 检验或 Tukey 检验得到的结果一致。
- meanDiffs: 在 ttest_rel 中是错误的(尽管我不太确定输出参数“统计数据”是否应该是差异的平均值 - 不过我还没有找到任何其他解释)。它接近平均差但不正确。
来自 ttest_rel 的结果“统计”和来自 pairwise_tukeyhsd 的“p-adj”是否需要额外的分析步骤来分别解释为均值差和 p 值? 还是我在这里做错了什么?
如果您有任何反馈,我将不胜感激!
玛丽安
import numpy as np
import pandas as pd
from scipy.stats import ttest_rel
from statsmodels.stats.multicomp import (MultiComparison,tukeyhsd,pairwise_tukeyhsd)
testData = [10,12,8,9,16,13,15,14,10,11]
groups = [1,2,1,2]
testList = []
for ne,e in enumerate(testData):
row = []
row.append(e)
row.append(groups[ne])
testList.append(row)
dfTest = pd.DataFrame(data = testList,columns=["data","groups"])
d1 = dfTest[dfTest.groups == 1].data.to_numpy()
d2 = dfTest[dfTest.groups == 2].data.to_numpy()
ttestRes = ttest_rel(d1,d2,alternative = 'two-sided')
print(ttestRes)
tukeyResTest = pairwise_tukeyhsd(endog=dfTest['data'],groups=dfTest['groups'],alpha=0.05)
print(tukeyResTest)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。