Как рассчитать компонент дисперсии, используя MixedLM в Python? - PullRequest
0 голосов
/ 21 мая 2019

Я хочу построить линейную смешанную модель, где «yield» - это ответ, «field» - случайный фактор, «разнообразие» - фиксированный коэффициент, я использую mixedlm в пакете statsmodels в Python. И мне нужно вычислить компонент дисперсии случайного фактора, я знаю, что необходимо установить параметр "exog_vc", но я не знаю, как его установить.

import statsmodels.api as sm
import pandas as pd
yields =[4.10,3.50,3.62,3.14,4.22,2.57,3.31,2.99,3.17,2.75,3.40,2.20,3.26,
          3.27,2.93,2.59,3.11,2.38,3.25,3.20,3.09,2.62,3.23,2.37]
variety = [1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6]
field = [1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4]
df = pd.DataFrame({'yields':yields,'variety':variety,'field':field})

X = df.loc[:,['field']]#factor
Y = df['yields']#response
md = sm.MixedLM(Y,X,groups=df['variety'])
#md = sm.MixedLM(Y,X,groups=df['variety'],exog_vc=)#FIXME
mdf = md.fit()
print(mdf.summary())

Я хочу получить следующие результаты, эти результаты получены с помощью minitab.

            coefficient
constant    3.094583
variety                  
  1         0.385417    
  2         0.145417
  3         0.107917    
  4         -0.319583
  5         0.395417
  6         -0.714583

variance component

source         variable
field       0.077919
err         0.028924
total       0.106843     

     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...