首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较pymer4中的模型

比较pymer4中的模型
EN

Stack Overflow用户
提问于 2021-02-04 17:48:11
回答 1查看 116关注 0票数 0

pymer4 (或类似的用于线性混合效果回归模型的python模块)中,有没有一种方法来比较两种不同的模型?

在R中,lme4包的命令anova执行以下操作:

代码语言:javascript
运行
复制
model1 = lmer(DV ~ IV1 + (1|RV), data = data)
model2 = lmer(DV ~ IV1*IV2 + (1|RV), data = data)

anova(model1, model2)

pymer4API页面似乎没有提到这一点。(我可以用R来做这件事,但我更愿意用python来做,因为我必须通过一个for循环在不同的组中运行这个测试,而python为这个循环提供了灵活性。)

EN

回答 1

Stack Overflow用户

发布于 2021-03-29 01:52:04

您可以使用rpy2 / rmagic来实现这一点。

下面是一个for循环的示例,您将在不同的IV上循环,创建并拟合一个新模型,并使用anova与基本模型进行比较。

代码语言:javascript
运行
复制
# set base formula
base_formula = 'Weight ~ 1 + (1+Time|Pig)' # base model 
%R -i base_formula -i data m0 <- lmer(base_formula, data=data)

# loop over variables and compare models. 
for iv in ["Time", "Start"]:
  m_formula = f'Weight ~ {iv} + (1+Time|Pig)'
  %R -i m_formula -i data m1 <- lmer(m_formula, data=data); print(anova(m0, m1))

要运行上面的示例,您需要导入data并设置您的r环境,您可以使用下面的代码或与此tutorial相关的notebook来完成此操作,该笔记本用于比较在Python中运行LMER的不同方法。

代码语言:javascript
运行
复制
# Load dataset
import statsmodels.api as sm
data = sm.datasets.get_rdataset('dietox', 'geepack').data
#  Install Rbase and rpy2
# Install R and Rpy2
!apt-get install r-base
!pip install -q rpy2

# Install LMER packages (THIS TAKES ABOUT 3~5 minutes)
packnames = ('lme4', 'lmerTest', 'emmeans', "geepack")
from rpy2.robjects.packages import importr
from rpy2.robjects.vectors import StrVector
utils = importr("utils")
utils.chooseCRANmirror(ind=1)
utils.install_packages(StrVector(packnames))

## Load modules. 
%R library(lme4); library(lmerTest)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66043134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档