Python 中具有多种随机效应的混合效应建模

问题描述 投票:0回答:1

我有以下数据集,我想运行如下混合效应线性模型:

 Type    Season    Price     Sales
  A       Fall      34        500
  A       Winter    20        300
  B       Fall      15        100
  B       Winter    10        150

fm = model = smf.mixedlm("Sales ~ Price", df, groups = df[["Type","Season"]], 
                re_formula = "~Price")

但是,我收到以下错误:

unhashable type: 'numpy.ndarray'

您能帮我解决这个问题吗?这个模型可以在 R 中轻松完成,但我无法在 python 中找到兼容的示例。

python model mixed
1个回答
0
投票

您可以使用下面的vc_formula方法来解决上述问题。

import pandas as pd
import numpy as np
import statsmodels.api as sm
import random
import statsmodels.api as sm
import statsmodels.formula.api as smf
data={'Type': ['A', 'A', 'B', 'B'],'Season': ['Fall', 'Winter', 'Fall', 'Winter'],'Price': [34, 20, 15, 10],'Sales': [500, 300, 100, 150]}
df = pd.DataFrame(data)
fixed_formula='Sales ~ Price'
vc_formula={'g1': "0 + C(Type):C(Season)"}
oo=np.ones(df.shape[0])
model=sm.MixedLM.from_formula(fixed_formula, data=df, groups=oo,     vc_formula=vc_formula)
results=model.fit()
print(results.summary())
random_effects_by_channel = results.random_effects
print(random_effects_by_channel)
© www.soinside.com 2019 - 2024. All rights reserved.