statsmodels中方差分析表結果解析


引言

通常我們在對多個變量進行統計分析的時候,結果的匯總和整理需要耗費大量的時間和精力,稍有不慎還有可能出現錯誤。因此在對多個變量統計分析的時候,使用自動化的腳本對結果進行整理和匯總就十分的方便了。
這里筆者使用Python當中的statsmodels模塊,以方差分析為例進行演示和說明。

方差分析結果解析

import pandas as pd
df = pd.read_excel(r'20200104_test.xlsx', header=0, index_col=0)
df.head()

import statsmodels.formula.api as smf
import statsmodels.api as sm

formula = f'A~C(Group)'
model = smf.ols(formula=formula, data=df).fit()
table = sm.stats.anova_lm(model, typ=3)
table

f = table['F']['C(Group)']
p = table['PR(>F)']['C(Group)']
resDf = pd.DataFrame()
resDf = resDf.append({'F': f, 'P': p, 'Formula': formula}, ignore_index=True)
resDf.head()

可以看到,這里table是方差分析的結果數據,可以通過類似map鍵值索引的方式去讀取不同的數據。

事后檢驗結果解析

方差分析后,只能對組效應是否顯著進行判斷,但具體是哪幾個組之間存在顯著差異還需要進一步通過事后檢驗來確定。這里使用TukeyHSD檢驗。

from statsmodels.stats.multicomp import pairwise_tukeyhsd
from statsmodels.stats.multicomp import MultiComparison

mc = MultiComparison(df['A'], df['Group'])
mc_results = mc.tukeyhsd()
print(mc_results)

meandiff = mc_results._results_table[1][2].data
meandiff


可以看到,這里采用一種類似二維矩陣的方式去訪問結果數據。

參考

Analysis of Variance (ANOVA)
statsmodels


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM