Pandasデータフレームを使用して、1つの変数の分散を分類します。
たとえば、「Degrees」という列があり、これをさまざまな日付、都市、夜間と昼間でインデックス付けしている場合、このシリーズの変動のどの部分が都市の断面から来ているのかを知りたい変動、時系列変動から生じる金額、夜間対昼から生じる金額。
Stataでは、固定効果を使用してR ^ 2を調べます。うまくいけば私の質問は理にかなっています。
基本的に、私がしたいことは、他の3つの列によって「度」のANOVA内訳を見つけることです。
私はそれらをテストするために直接比較を設定しましたが、それらの仮定が わずかに異なる であり、統計学者からヒントを得たことがわかりました。ここにpandas = Rの結果に一致するデータフレーム:
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols
# R code on R sample dataset
#> anova(with(ChickWeight, lm(weight ~ Time + Diet)))
#Analysis of Variance Table
#
#Response: weight
# Df Sum Sq Mean Sq F value Pr(>F)
#Time 1 2042344 2042344 1576.460 < 2.2e-16 ***
#Diet 3 129876 43292 33.417 < 2.2e-16 ***
#Residuals 573 742336 1296
#write.csv(file='ChickWeight.csv', x=ChickWeight, row.names=F)
cw = pd.read_csv('ChickWeight.csv')
cw_lm=ols('weight ~ Time + C(Diet)', data=cw).fit() #Specify C for Categorical
print(sm.stats.anova_lm(cw_lm, typ=2))
# sum_sq df F PR(>F)
#C(Diet) 129876.056995 3 33.416570 6.473189e-20
#Time 2016357.148493 1 1556.400956 1.803038e-165
#Residual 742336.119560 573 NaN NaN