我使用lmer模型(https://fhernanb.github.io/libro_modelos_mixtos/pac-lme4.html)来模拟不同国家a地区的不同产品的价格弹性。使用历史数据训练模型后,有时某些产品的弹性为正(根据定义,它应该为负,或者只是由于业务限制)。因此,我需要手动调整一些系数,只调整那些没有意义的系数。我的模型是:
model_str = """
log(units)~
log(price_usd) + (log(price_usd)|sku/country)
"""
model = lmerTest.lmer(model_str, data = df)
在这个问题Replace lmer coefficients in R中解决了同样的问题,但是在这个例子中我使用了rpy 2。所以,我想知道当使用rpy 2时如何改变lmer模型的系数。
为了改变R的系数:
library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
summary(fm1)$coef
# Estimate Std. Error t value
#(Intercept) 251.40510 6.823773 36.842535
#Days 10.46729 1.545958 6.770744
fm1@beta[names(fixef(fm1)) == "Days"] <- 0
summary(fm1)$coef
# Estimate Std. Error t value
#(Intercept) 251.4051 6.823773 36.84253
#Days 0.0000 1.545958 0.00000
1条答案
按热度按时间eqfvzcg81#
lmer
返回一个所谓的RS4类对象,其类“属性”(Python术语)称为“插槽”,您可以使用do_slot
和do_slot_assign
函数访问它们。下面是一个基于lme4的例子的小例子: