You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的lme混合模型中剔除随机效应但保留AR(1)相关结构?

用R复现无随机截距的SAS混合模型分析

背景:已成功复现的有随机截距模型

SAS代码

proc mixed data = df noclprint covtest;
   class patid visno;
   model va = cst va0 cst0 / solution;
   random intercept / subject = patid;
   repeated visno / type = sp(pow)(month) subject = patid;
run;

该模型为每个patid设置随机截距,同时假设同一patid下的重复观测服从带不等时间间隔的AR(1)相关结构。

对应R(lme)实现

fitBoth <- lme(fixed = va ~ CST + cst0 + va0, data = muggeo,
           random = ~1 | PATID,
           correlation = corAR1(form = ~ month | PATID))

两者参数估计结果完全一致。

无随机截距模型的问题与解决

在SAS中移除random intercept / subject = patid;语句即可拟合无随机截距的模型,但直接删除R中lme的random参数会触发错误:

Error in lme.formula ... incompatible formulas for groups in 'random'
and 'correlation'

报错原因

lme要求random与correlation的分组结构匹配,移除random参数后,没有指定分组,与correlation中| PATID的分组规则冲突。

正确解决方式:使用gls函数

无随机截距的模型本质是带相关结构的广义最小二乘(GLS)模型,而非混合效应模型,因此应使用nlme包的gls函数拟合,对应SAS中无random语句的proc mixed:

fitNoRandom <- gls(fixed = va ~ CST + cst0 + va0, data = muggeo,
                   correlation = corAR1(form = ~ month | PATID))

该模型的参数估计结果与SAS版本完全一致。

用lme的冗余实现(不推荐)

若一定要用lme,可通过指定无随机效应的分组来适配,但这不符合lme的设计初衷,仅作演示:

fitNoRandom_lme <- lme(fixed = va ~ CST + cst0 + va0, data = muggeo,
                       random = ~0 | PATID,
                       correlation = corAR1(form = ~ month | PATID))

内容的提问来源于stack exchange,提问作者Neal Oden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:54:57