多层模型
先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。
estat
随机截距组内相关
Stata
estat iccR 包:lme4
{ v <- lme4::VarCorr(fit); between <- as.numeric(v$id[1, 1]); between / (between + stats::sigma(fit)^2) }与 Stata 有差异 固定流程;请明确调整示例列名。ICC仅在高斯随机截距模型中恒定;随机斜率使其依赖协变量。
另有 2 个示例及替代实现
随机效应协方差矩阵
Stata
estat recovarianceR 包:lme4
as.matrix(lme4::VarCorr(fit)$id)与 Stata 有差异 固定流程;请明确调整示例列名。协方差估计以所选随机效应结构为条件。
标准差与相关系数形式的方差分量
Stata
estat sdR 包:lme4
as.data.frame(lme4::VarCorr(fit))与 Stata 有差异 固定流程;请明确调整示例列名。包含残差标准差及随机效应相关系数。
mecloglog
Complementary-log-log随机截距模型:Laplace近似
Stata
mecloglog binary x || id:, intpoints(1)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "cloglog"), nAGQ = 1, control = lme4::glmerControl(optimizer = "bobyqa"))与 Stata 有差异 固定流程;请明确调整示例列名。须统一积分设置;Laplace近似不同于多点自适应求积。
Complementary-log-log随机截距模型:自适应求积
Stata
mecloglog binary x || id:, intpoints(9)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "cloglog"), nAGQ = 9, control = lme4::glmerControl(optimizer = "bobyqa"))与 Stata 有差异 固定流程;请明确调整示例列名。须统一积分设置;Laplace近似不同于多点自适应求积。
meglm
广义混合模型连接:cloglog
Stata
meglm binary x || id:, family(binomial) link(cloglog)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "cloglog"), nAGQ = 7)与 Stata 有差异 固定流程;请明确调整示例列名。明确指定分布族和连接;默认设置及积分精度可能不同。
广义混合模型连接:logit
Stata
meglm binary x || id:, family(binomial) link(logit)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "logit"), nAGQ = 7)与 Stata 有差异 固定流程;请明确调整示例列名。明确指定分布族和连接;默认设置及积分精度可能不同。
广义混合模型连接:probit
Stata
meglm binary x || id:, family(binomial) link(probit)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "probit"), nAGQ = 7)与 Stata 有差异 固定流程;请明确调整示例列名。明确指定分布族和连接;默认设置及积分精度可能不同。
melogit
Logistic随机截距模型:Laplace近似
Stata
melogit binary x || id:, intpoints(1)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "logit"), nAGQ = 1, control = lme4::glmerControl(optimizer = "bobyqa"))与 Stata 有差异 固定流程;请明确调整示例列名。须统一积分设置;Laplace近似不同于多点自适应求积。
另有 1 个示例及替代实现
Logistic随机截距模型:自适应求积
Stata
melogit binary x || id:, intpoints(9)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "logit"), nAGQ = 9, control = lme4::glmerControl(optimizer = "bobyqa"))与 Stata 有差异 固定流程;请明确调整示例列名。须统一积分设置;Laplace近似不同于多点自适应求积。
menbreg
二次均值方差负二项混合模型
Stata
menbreg nb x || id:R 包:glmmTMB
glmmTMB::glmmTMB(nb ~ x + (1 | id), data = data, family = glmmTMB::nbinom2())与 Stata 有差异 glmmTMB采用Laplace积分;Stata的menbreg默认采用intpoints(7)自适应求积,需指定intpoints(1)才使用可比的积分近似。比较辅助参数前须统一NB2离散参数与其倒数的含义;积分近似一致本身不保证估计精确相同。
menl
随机系数非线性指数增长
Stata
menl y = {A}*exp({B}*x), define(A: {a0}+{U[id]})R 包:nlme
nlme::nlme(y ~ A * exp(B * x), data = data, fixed = A + B ~ 1, random = A ~ 1 | id, start = c(A = 2, B = .25))与 Stata 有差异 固定流程;请明确调整示例列名。非线性混合模型流程;Stata menl语法和参数定义须符合目标模型。
meologit
随机截距累积Logit模型
Stata
meologit ordinal x || id:R 包:ordinal
ordinal::clmm(ordinal ~ x + (1 | id), data = data, link = "logit", nAGQ = 7)与 Stata 有差异 固定流程;请明确调整示例列名。须统一阈值符号和默认求积方式。
meoprobit
随机截距累积Probit模型
Stata
meoprobit ordinal x || id:R 包:ordinal
ordinal::clmm(ordinal ~ x + (1 | id), data = data, link = "probit", nAGQ = 7)与 Stata 有差异 固定流程;请明确调整示例列名。潜在残差方差由Probit连接固定。
mepoisson
Poisson随机截距模型:Laplace近似
Stata
mepoisson count x || id:, intpoints(1)R 包:lme4
lme4::glmer(count ~ x + (1 | id), data = data, family = stats::poisson(link = "log"), nAGQ = 1, control = lme4::glmerControl(optimizer = "bobyqa"))与 Stata 有差异 固定流程;请明确调整示例列名。须统一积分设置;Laplace近似不同于多点自适应求积。
Poisson随机截距模型:自适应求积
Stata
mepoisson count x || id:, intpoints(9)R 包:lme4
lme4::glmer(count ~ x + (1 | id), data = data, family = stats::poisson(link = "log"), nAGQ = 9, control = lme4::glmerControl(optimizer = "bobyqa"))与 Stata 有差异 固定流程;请明确调整示例列名。须统一积分设置;Laplace近似不同于多点自适应求积。
meprobit
Probit随机截距模型:Laplace近似
Stata
meprobit binary x || id:, intpoints(1)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "probit"), nAGQ = 1, control = lme4::glmerControl(optimizer = "bobyqa"))与 Stata 有差异 固定流程;请明确调整示例列名。须统一积分设置;Laplace近似不同于多点自适应求积。
Probit随机截距模型:自适应求积
Stata
meprobit binary x || id:, intpoints(9)R 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "probit"), nAGQ = 9, control = lme4::glmerControl(optimizer = "bobyqa"))与 Stata 有差异 固定流程;请明确调整示例列名。须统一积分设置;Laplace近似不同于多点自适应求积。
mixed
二次固定趋势与随机截距
Stata
mixed y c.x##c.x || id:R 包:lme4
lme4::lmer(y ~ x + I(x^2) + (1 | id), data = data, REML = FALSE)与 Stata 有差异 固定流程;请明确调整示例列名。R默认REML,Stata mixed默认ML;须明确选择目标似然。
另有 4 个示例及替代实现
REML随机截距模型
Stata
mixed y x || id:R 包:lme4
lme4::lmer(y ~ x + (1 | id), data = data, REML = FALSE)与 Stata 有差异 REML=FALSE显式匹配Stata的mixed默认ML估计。lme4默认不打印Stata式固定效应大样本z检验;须统一协方差结构并另行选择推断方法。
独立随机截距和斜率
Stata
mixed y x || id: x, covariance(independent)R 包:lme4
lme4::lmer(y ~ x + (x || id), data = data, REML = FALSE)与 Stata 有差异 REML=FALSE显式匹配Stata的mixed默认ML估计。lme4默认不打印Stata式固定效应大样本z检验;须统一协方差结构并另行选择推断方法。
相关随机截距和斜率
Stata
mixed y x || id: x, covariance(unstructured)R 包:lme4
lme4::lmer(y ~ x + (x | id), data = data, REML = FALSE)与 Stata 有差异 REML=FALSE显式匹配Stata的mixed默认ML估计。lme4默认不打印Stata式固定效应大样本z检验;须统一协方差结构并另行选择推断方法。
极大似然随机截距模型
Stata
mixed y x || id:, mleR 包:lme4
lme4::lmer(y ~ x + (1 | id), data = data, REML = FALSE)与 Stata 有差异 固定流程;请明确调整示例列名。R默认REML,Stata mixed默认ML;须明确选择目标似然。
predict
包含随机效应的条件拟合值
Stata
predict fitted, fittedR 包:lme4
stats::predict(fit)与 Stata 有差异 固定流程;请明确调整示例列名。预测层次已明确;总体预测和组别条件预测的含义不同。
另有 3 个示例及替代实现
条件混合模型残差
Stata
predict residual, residualsR 包:lme4
stats::residuals(fit)与 Stata 有差异 固定流程;请明确调整示例列名。预测层次已明确;总体预测和组别条件预测的含义不同。
经验Bayes随机截距和斜率
Stata
predict u0 u1, reffectsR 包:lme4
lme4::ranef(fit)$id与 Stata 有差异 固定流程;请明确调整示例列名。预测层次已明确;总体预测和组别条件预测的含义不同。
仅固定效应预测
Stata
predict xb, xbR 包:lme4
stats::predict(fit, re.form = NA)与 Stata 有差异 固定流程;请明确调整示例列名。预测层次已明确;总体预测和组别条件预测的含义不同。
quadchk
混合Logit估计对求积点数的敏感性
Stata
quadchkR 包:lme4
{ fits <- lapply(c(5, 9, 15), function(q) lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(), nAGQ = q)); data.frame(points = c(5, 9, 15), logLik = vapply(fits, function(f) as.numeric(stats::logLik(f)), numeric(1)), slope = vapply(fits, function(f) unname(lme4::fixef(f)[2]), numeric(1))) }固定流程;请明确调整示例列名。手动检查求积敏感性,不能自动保证收敛。
xtologit
随机截距累积Logit模型
Stata
xtologit ordinal xR 包:ordinal
ordinal::clmm(ordinal ~ x + (1 | id), data = data, link = "logit", nAGQ = 12)与 Stata 有差异 固定流程;请明确调整示例列名。须统一阈值符号和默认求积方式。
xtoprobit
随机截距累积Probit模型
Stata
xtoprobit ordinal xR 包:ordinal
ordinal::clmm(ordinal ~ x + (1 | id), data = data, link = "probit", nAGQ = 12)与 Stata 有差异 固定流程;请明确调整示例列名。潜在残差方差由Probit连接固定。