如何在R中进行边际模型分析?

时间:2019-01-05 02:01:57

标签: r spss mixed-models longitudinal multilevel-analysis

问题。我想在R中进行边际模型分析-我认为有时将其称为总体平均模型,边际多级模型或边际线性回归模型。但是,我找不到有关stackoverflow,Google或Youtube的有关如何在R中专门执行此操作的任何信息。

背景。我说的是边际模型,如分析因子 herehere所述,并在这些{{ 3}}。某个PowerPoint slides在SPSS和R中提到了此分析,但他没有显示其实际代码,并且他的问题尚未得到回答。不确定是否应该使用nlme软件包。

SPSS代码。我已经描述了这些数据one person on CrossValidated的性质,但基本上,我们有兴趣通过个性预测参与者的情绪(在2种不同条件下进行两次测量)(测量一次)。这是我在SPSS中使用的代码。

MIXED emotion BY condition WITH centeredPersonality
    /FIXED=condition centeredPersonality condition*centeredPersonality
    /METHOD = REML
    /REPEATED= condition | SUBJECT (ID) COVTYPE(UN)
    /PRINT=SOLUTION.

问题。如何在R中做到这一点?

1 个答案:

答案 0 :(得分:1)

我认为geepack软件包的geeglm可以做到。我的理解是,广义估计方程与边际模型相同。 geeglm的语法类似于glm,如果您使用高斯族,您将获得与标准边际模型相似的结果。我敢肯定还有其他方法,但这应该可行。

edit:这是您可能使用的示例,可以使情绪在两个变量(条件和人格及其相互作用)上回归。条件被视为一个因素,错误按ID聚集。 geeglm的默认族是gaussian / Normal,因此我们不需要指定它。

> library(geepack)
> dat <- data.frame(id = c(1, 1, 2, 2, 3, 3, 4, 4), 
+                   condition = factor(c(1, 2, 1, 2, 1, 2, 1, 2)), 
+                   personality = c(2.5, 2.5, 4.0, 4.0, 3.3, 3.3, 4.2, 4.2),
+                   emotion = c(5.0, 4.9, 2.6, 2.3, 4.3, 2.9, 1.0, 1.0))
>   
> my_mod <- geeglm(emotion ~ condition*personality, data = dat, id = id)
> summary(my_mod)

Call:
geeglm(formula = emotion ~ condition * personality, data = dat, 
    id = id)

 Coefficients:
                       Estimate Std.err  Wald Pr(>|W|)    
(Intercept)              10.815   1.296 69.68  < 2e-16 ***
condition2               -0.902   1.284  0.49     0.48    
personality              -2.169   0.385 31.77  1.7e-08 ***
condition2:personality    0.129   0.322  0.16     0.69    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Estimated Scale Parameters:
            Estimate Std.err
(Intercept)    0.223  0.0427

Correlation: Structure = independenceNumber of clusters:   4   Maximum cluster size: 2