Python pyvttbl方差分析

2024-10-01 09:39:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用pyvttbl对我的数据集进行方差分析,但是我得到了一个奇怪的错误。在

这是我的代码:

import pyvttbl

df = pyvttbl.DataFrame()
df.read_tbl("ANOVA_MWE_input.csv")

print df
print type(df)

AN = df.anova('len', sub='id', bfactors=['p1', 'p2'])

输出为:

^{pr2}$

我真的不明白float对象在我的数据集中在哪里。你能帮忙吗?实际上,当我把这个应用到我的实际表时,我得到了一个超出范围的错误。奇怪的是,在MWE中,只有文件更改我才得到这个。在

谢谢你的建议。在


Tags: csv数据代码importdataframedfreadinput
1条回答
网友
1楼 · 发布于 2024-10-01 09:39:28

我无法使pyvttbl工作,但我现在使用的是statsmodels的方差分析和多个比较模块,我很高兴,因为我得到了我需要的一切:

import statsmodels.api as sm
from statsmodels.formula.api import ols

model = ols('weight ~ group', data=data).fit() # OLS regression
#print(model.summary()) # print F-stat, eta², P value but also test indicators for assumptions

anova_table = sm.stats.anova_lm(model, typ='II') # here we prepare a proper ANOVA table
print(anova_table)

            sum_sq    df         F   PR(>F)
group      3.76634   2.0  4.846088  0.01591
Residual  10.49209  27.0       NaN      NaN

# we then prepare a multiple comparison set:
mult_comp = sm.stats.multicomp.MultiComparison(data['weight'], data['group']) 
print(mult_comp.tukeyhsd()) # Tukey post-hoc testing, for example

Multiple Comparison of Means - Tukey HSD,FWER=0.05
============================================
group1 group2 meandiff  lower  upper  reject
                      
 ctrl   trt1   -0.371  -1.0621 0.3201 False 
 ctrl   trt2   0.494   -0.1971 1.1851 False 
 trt1   trt2   0.865    0.1739 1.5561  True 
                      

然后我完成了邦费罗尼修正。在

相关问题 更多 >