python中具有两个以上不相关随机效应斜率的混合效应模型

发布于 2025-01-20 16:08:07 字数 5766 浏览 0 评论 0原文

我有多级数据,并且由于平行的电势而希望拟合Python中的混合效应模型。

无法在“ statsmodel'库中

公式

0 + log_volume ~ log_price:brand_channel_prod_cat + month:brand_channel_prod_cat +  
    log_price:sku + (1 | sku_brand_channel_prod_cat) + (0 + peak_vol_2019 |  
    sku_brand_channel_prod_cat) + (0 + peak_vol_2020 | sku_brand_channel_prod_cat) +  
    (0 + peak_vol_2021 | sku_brand_channel_prod_cat) + (0 + peak_vol_2022 |  
    sku_brand_channel_prod_cat)

编译

Random effects:
 Groups                       Name          Variance Std.Dev.
 sku_brand_channel_prod_cat   (Intercept)   0.08997  0.3000  
 sku_brand_channel_prod_cat.1 peak_vol_2019 3.93006  1.9824  
 sku_brand_channel_prod_cat.2 peak_vol_2020 7.57763  2.7527  
 sku_brand_channel_prod_cat.3 peak_vol_2021 5.87570  2.4240  
 sku_brand_channel_prod_cat.4 peak_vol_2022 1.11555  1.0562  
 Residual                                   0.89843  0.9479  
Number of obs: 517, groups:  sku_brand_channel_prod_cat, 6

Fixed effects:
                                                                   Estimate Std. Error t value
(Intercept)                                                       -3.834200   3.797148  -1.010
log_price:brand_channel_prod_catblack & decker:e-commerce:drills   0.439247   0.325191   1.351
log_price:brand_channel_prod_catblack & decker:moderno:drills      0.641359   0.332692   1.928
log_price:brand_channel_prod_catblack & decker:tradicional:drills  0.634145   0.330630   1.918
brand_channel_prod_catblack & decker:e-commerce:drills:month2     -0.074913   0.469290  -0.160
brand_channel_prod_catblack & decker:moderno:drills:month2        -0.004766   0.358254  -0.013
brand_channel_prod_catblack & decker:tradicional:drills:month2    -0.397637   0.315299  -1.261
brand_channel_prod_catblack & decker:e-commerce:drills:month3      0.212537   0.457992   0.464
brand_channel_prod_catblack & decker:moderno:drills:month3         0.187813   0.357612   0.525
brand_channel_prod_catblack & decker:tradicional:drills:month3     0.426231   0.307184   1.388
brand_channel_prod_catblack & decker:moderno:drills:month4         0.324525   0.492356   0.659
brand_channel_prod_catblack & decker:tradicional:drills:month4     0.025436   0.426429   0.060
brand_channel_prod_catblack & decker:e-commerce:drills:month5      0.052820   0.594114   0.089
brand_channel_prod_catblack & decker:moderno:drills:month5         0.181913   0.484666   0.375
brand_channel_prod_catblack & decker:tradicional:drills:month5     0.202124   0.408993   0.494
brand_channel_prod_catblack & decker:e-commerce:drills:month6      0.294128   0.490044   0.600
brand_channel_prod_catblack & decker:moderno:drills:month6         0.314776   0.392402   0.802
brand_channel_prod_catblack & decker:tradicional:drills:month6     0.259283   0.337046   0.769
brand_channel_prod_catblack & decker:e-commerce:drills:month7      0.227434   0.457583   0.497
brand_channel_prod_catblack & decker:moderno:drills:month7        -0.042801   0.379362  -0.113
brand_channel_prod_catblack & decker:tradicional:drills:month7     0.183542   0.317175   0.579
brand_channel_prod_catblack & decker:e-commerce:drills:month8      0.249940   0.433196   0.577
brand_channel_prod_catblack & decker:moderno:drills:month8         0.035887   0.339384   0.106
brand_channel_prod_catblack & decker:tradicional:drills:month8     0.294459   0.298873   0.985
brand_channel_prod_catblack & decker:e-commerce:drills:month9      0.364934   0.468421   0.779
brand_channel_prod_catblack & decker:moderno:drills:month9         0.010126   0.357589   0.028
brand_channel_prod_catblack & decker:tradicional:drills:month9    -0.047276   0.296702  -0.159
brand_channel_prod_catblack & decker:e-commerce:drills:month10    -0.063301   0.460232  -0.138
brand_channel_prod_catblack & decker:moderno:drills:month10       -0.355297   0.377147  -0.942
brand_channel_prod_catblack & decker:tradicional:drills:month10   -0.363707   0.314704  -1.156
brand_channel_prod_catblack & decker:e-commerce:drills:month11    -0.309140   0.435547  -0.710
brand_channel_prod_catblack & decker:moderno:drills:month11        0.049716   0.354219   0.140
brand_channel_prod_catblack & decker:tradicional:drills:month11    0.441693   0.294458   1.500
brand_channel_prod_catblack & decker:e-commerce:drills:month12     0.394615   0.458916   0.860
brand_channel_prod_catblack & decker:moderno:drills:month12        0.271237   0.359959   0.754
brand_channel_prod_catblack & decker:tradicional:drills:month12    0.050778   0.315813   0.161
log_price:skuhd565k-b3                                            -0.047458   0.024728  -1.919

但是我 。

​固定效应变量的数量不会是恒定的(不同数据的SKU不同),并且与

md = smf.mixedlm("Weight ~ Time", data, groups=data["Pig"], re_formula="~Time")
free = sm.regression.mixed_linear_model.MixedLMParams.from_components(
    np.ones(2), np.eye(2)
)

mdf = md.fit(free=free, method=["lbfgs"])

当前在Python中尝试的

md = smf.mixedlm("log_volume ~ log_price:brand_channel_prod_cat+month:brand_channel_prod_cat+log_price:sku+year
                    df1,groups='sku_brand_channel_prod_cat',
                     re_formula="0+peak_vol_2019+peak_vol_2020+peak_vol_2021+peak_vol_2022").fit()

品牌渠道相同,我认为这在RI猜测中等同于此,我不会想

log_volume ~ log_price:brand_channel_prod_cat + month:brand_channel_prod_cat +  
    log_price:sku + (1 + peak_vol_2019 + peak_vol_2020 + peak_vol_2021 + peak_vol_2022 |  
    sku_brand_channel_prod_cat)

I have multi-level data and want to fit a mixed-effect model in python due to parallelization potential.

But I am not able to compile the formula in 'statsmodel' library

For example in R, it is

0 + log_volume ~ log_price:brand_channel_prod_cat + month:brand_channel_prod_cat +  
    log_price:sku + (1 | sku_brand_channel_prod_cat) + (0 + peak_vol_2019 |  
    sku_brand_channel_prod_cat) + (0 + peak_vol_2020 | sku_brand_channel_prod_cat) +  
    (0 + peak_vol_2021 | sku_brand_channel_prod_cat) + (0 + peak_vol_2022 |  
    sku_brand_channel_prod_cat)

which outputs

Random effects:
 Groups                       Name          Variance Std.Dev.
 sku_brand_channel_prod_cat   (Intercept)   0.08997  0.3000  
 sku_brand_channel_prod_cat.1 peak_vol_2019 3.93006  1.9824  
 sku_brand_channel_prod_cat.2 peak_vol_2020 7.57763  2.7527  
 sku_brand_channel_prod_cat.3 peak_vol_2021 5.87570  2.4240  
 sku_brand_channel_prod_cat.4 peak_vol_2022 1.11555  1.0562  
 Residual                                   0.89843  0.9479  
Number of obs: 517, groups:  sku_brand_channel_prod_cat, 6

Fixed effects:
                                                                   Estimate Std. Error t value
(Intercept)                                                       -3.834200   3.797148  -1.010
log_price:brand_channel_prod_catblack & decker:e-commerce:drills   0.439247   0.325191   1.351
log_price:brand_channel_prod_catblack & decker:moderno:drills      0.641359   0.332692   1.928
log_price:brand_channel_prod_catblack & decker:tradicional:drills  0.634145   0.330630   1.918
brand_channel_prod_catblack & decker:e-commerce:drills:month2     -0.074913   0.469290  -0.160
brand_channel_prod_catblack & decker:moderno:drills:month2        -0.004766   0.358254  -0.013
brand_channel_prod_catblack & decker:tradicional:drills:month2    -0.397637   0.315299  -1.261
brand_channel_prod_catblack & decker:e-commerce:drills:month3      0.212537   0.457992   0.464
brand_channel_prod_catblack & decker:moderno:drills:month3         0.187813   0.357612   0.525
brand_channel_prod_catblack & decker:tradicional:drills:month3     0.426231   0.307184   1.388
brand_channel_prod_catblack & decker:moderno:drills:month4         0.324525   0.492356   0.659
brand_channel_prod_catblack & decker:tradicional:drills:month4     0.025436   0.426429   0.060
brand_channel_prod_catblack & decker:e-commerce:drills:month5      0.052820   0.594114   0.089
brand_channel_prod_catblack & decker:moderno:drills:month5         0.181913   0.484666   0.375
brand_channel_prod_catblack & decker:tradicional:drills:month5     0.202124   0.408993   0.494
brand_channel_prod_catblack & decker:e-commerce:drills:month6      0.294128   0.490044   0.600
brand_channel_prod_catblack & decker:moderno:drills:month6         0.314776   0.392402   0.802
brand_channel_prod_catblack & decker:tradicional:drills:month6     0.259283   0.337046   0.769
brand_channel_prod_catblack & decker:e-commerce:drills:month7      0.227434   0.457583   0.497
brand_channel_prod_catblack & decker:moderno:drills:month7        -0.042801   0.379362  -0.113
brand_channel_prod_catblack & decker:tradicional:drills:month7     0.183542   0.317175   0.579
brand_channel_prod_catblack & decker:e-commerce:drills:month8      0.249940   0.433196   0.577
brand_channel_prod_catblack & decker:moderno:drills:month8         0.035887   0.339384   0.106
brand_channel_prod_catblack & decker:tradicional:drills:month8     0.294459   0.298873   0.985
brand_channel_prod_catblack & decker:e-commerce:drills:month9      0.364934   0.468421   0.779
brand_channel_prod_catblack & decker:moderno:drills:month9         0.010126   0.357589   0.028
brand_channel_prod_catblack & decker:tradicional:drills:month9    -0.047276   0.296702  -0.159
brand_channel_prod_catblack & decker:e-commerce:drills:month10    -0.063301   0.460232  -0.138
brand_channel_prod_catblack & decker:moderno:drills:month10       -0.355297   0.377147  -0.942
brand_channel_prod_catblack & decker:tradicional:drills:month10   -0.363707   0.314704  -1.156
brand_channel_prod_catblack & decker:e-commerce:drills:month11    -0.309140   0.435547  -0.710
brand_channel_prod_catblack & decker:moderno:drills:month11        0.049716   0.354219   0.140
brand_channel_prod_catblack & decker:tradicional:drills:month11    0.441693   0.294458   1.500
brand_channel_prod_catblack & decker:e-commerce:drills:month12     0.394615   0.458916   0.860
brand_channel_prod_catblack & decker:moderno:drills:month12        0.271237   0.359959   0.754
brand_channel_prod_catblack & decker:tradicional:drills:month12    0.050778   0.315813   0.161
log_price:skuhd565k-b3                                            -0.047458   0.024728  -1.919

I tried following this example

but in here, I don't know how to define the MixedLMParams.from_components because of the interaction terms log_price:sku the number of fixed effect variables will not be constant (different no. of SKU for different data) and same with brand channel

md = smf.mixedlm("Weight ~ Time", data, groups=data["Pig"], re_formula="~Time")
free = sm.regression.mixed_linear_model.MixedLMParams.from_components(
    np.ones(2), np.eye(2)
)

mdf = md.fit(free=free, method=["lbfgs"])

Currently trying it in python

md = smf.mixedlm("log_volume ~ log_price:brand_channel_prod_cat+month:brand_channel_prod_cat+log_price:sku+year
                    df1,groups='sku_brand_channel_prod_cat',
                     re_formula="0+peak_vol_2019+peak_vol_2020+peak_vol_2021+peak_vol_2022").fit()

which I think is equivalent to this in R I guess, which I don't want

log_volume ~ log_price:brand_channel_prod_cat + month:brand_channel_prod_cat +  
    log_price:sku + (1 + peak_vol_2019 + peak_vol_2020 + peak_vol_2021 + peak_vol_2022 |  
    sku_brand_channel_prod_cat)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剩余の解释 2025-01-27 16:08:07

要适合具有无关随机效果的模型,您需要将cov_re mixchlmparams.from_components的参数设置为身份矩阵。由于您有5个随机效果(4个斜率和截距),因此应该是np.eye(5),您应该在中使用1 + ... re_formula,不是0 + ...

To fit a model with uncorrelated random effects, you need to set the cov_re parameter of MixedLMParams.from_components to the identity matrix. Since you have 5 random effects (4 slopes and the intercepts), this should be np.eye(5) and you should use 1 + ... in re_formula, not 0 + ...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文