What statistics module for python supports one way ANOVA with post hoc tests (Tukey, Scheffe or other)?
Asked Answered
O

2

24

I have tried looking through multiple statistics modules for Python but can't seem to find any that support one-way ANOVA post hoc tests.

Ostensible answered 17/4, 2013 at 0:41 Comment(4)
TukeyHSD is built into R. Does that do what you're looking for?Fieldfare
statsmodels has a tukeyhsd function in the sandbox, but I've not tried it.Grandfatherly
I am looking for the same function, I guess I will use RPy, an interface to R which seems to work like a charm!Canzonet
See scikit-posthocs.Hardandfast
G
44

one way ANOVA can be used like

from scipy import stats
f_value, p_value = stats.f_oneway(data1, data2, data3, data4, ...)

This is one way ANOVA and it returns F value and P value.
There is significant difference If the P value is below your setting.


The Tukey-kramer HSD test can be used like

from statsmodels.stats.multicomp import pairwise_tukeyhsd
print pairwise_tukeyhsd(Data, Group)

This is multicomparison. The output is like

Multiple Comparison of Means - Tukey HSD,FWER=0.05
================================================
group1 group2 meandiff   lower    upper   reject
------------------------------------------------
  0      1    -35.2153 -114.8741 44.4434  False 
  0      2     46.697   -40.4993 133.8932 False 
  0      3    -7.5709    -87.49  72.3482  False 
  1      2    81.9123    5.0289  158.7956  True 
  1      3    27.6444   -40.8751  96.164  False 
  2      3    -54.2679 -131.4209 22.8852  False 
------------------------------------------------

Please refer to this site how to set the arguments.
The tukeyhsd of statsmodels doesn't return P value.
So, if you want to know P value, calculate from these outputted value or use R.

Goatsbeard answered 17/1, 2014 at 4:17 Comment(3)
After saving the output into a variable res, you can get p-values by applying psturng(np.abs(res.meandiffs / res.std_pairs), len(res.groupsunique), res.df_total), where psturng comes from from statsmodels.stats.libqsturng import psturngAmmadas
I have added p-values to the table and output attributes using a method similar to that suggested by @JavierdelaRosa. Should be added soon -- see the pull request.Lovering
@Goatsbeard how do you get it to print the results? When I do it, it just prints"tukeyHSDResults object at 0x0DBEBB10....sorry for basic question...Cos
N
1

I think that the library Pyvttbl returns a ANOVA table including post-hoc tests (i.e., TukeyHSD). In fact, what is neat with Pyvttbl is that you can carry out ANOVA for repeated measures also.

See the doc for Anova1way here

Nettienetting answered 13/7, 2016 at 14:29 Comment(1)
Unfortunately this library is no longer supported.Adulterant

© 2022 - 2024 — McMap. All rights reserved.