如何为以下模型初始化非结构化协方差矩阵?
y<-data.frame(response=c(10,19,27,28,9,13,25,29,4,10,20,18,5,6,12,17),
treatment=factor(rep(1:4,4)),
subject=factor(rep(1:4,each=4))
)
fit<-lme(response~-1+treatment,y,random=~1|subject,
correlation=corSymm(form=~1|subject))
Run Code Online (Sandbox Code Playgroud)
我尝试了一些变种,但每次收到错误都会得到:
Error in lme.formula(response ~ -1 + treatment, y, random = ~1 | :
nlminb problem, convergence error code = 1
message = function evaluation limit reached without convergence (9)
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个线性混合模型(lmm),它允许点之间的空间相关性(每个点都有纬度/经度)。我希望空间相关性基于点之间的大圆距离。
\n\n该包ramps包含一个相关结构,用于计算 \xe2\x80\x98havesine\xe2\x80\x99 距离 \xe2\x80\x93 尽管我在实现它时遇到了麻烦。我以前使用过其他相关结构(corGaus,corExp)并且没有遇到任何困难。我假设corRGaus“haversine”指标可以以相同的方式实现。
我能够使用该lme函数成功创建一个具有在平面距离上计算的空间相关性的 lmm。
我还能够创建一个线性模型(未混合),并使用大圆距离计算空间相关性,尽管使用该gls命令的相关结构存在错误。
当尝试使用gls具有大圆距离的线性模型的命令时,我遇到以下错误:
x = runif(20, 1,50)\ny = runif(20, 1,50)\ngls(x ~ y, cor = corRGaus(form = ~ x + y))\n\nGeneralized least squares fit by REML\n Model: x ~ y \n Data: NULL \nLog-restricted-likelihood: -78.44925\n\nCoefficients:\n (Intercept) y \n24.762656602 0.007822469 \n\nCorrelation Structure: corRGaus\n Formula: ~x + y \n Parameter estimate(s):\nError in attr(object, "fixed") && unconstrained : …Run Code Online (Sandbox Code Playgroud) 我正在使用线性混合效应模型(使用lme()R中nlme包中的函数运行),它具有一个固定效果和一个随机截距项(以考虑不同的组).该模型是如此指定的三次多项式模型(遵循以下建议):
M1 = lme(dv ~ poly(iv,3), data=dat, random= ~1|group, method="REML")
Run Code Online (Sandbox Code Playgroud)
仅限一些示例数据:
> dput(dat)
structure(list(group = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("1",
"2"), class = "factor"), iv = c(24L, …Run Code Online (Sandbox Code Playgroud) 我使用 MASS 和 lme4 运行混合效应逻辑回归,但得到不同的结果,我想知道是否(以及哪里)出了问题。
\n\n我的模型如下:
\n\nDV:synt_num(0 与 1)
\n\nIV:\nvoc1_tvl: 连续
\n\nwo:二分法(“vs”和“vo”)
\n\n动词:二分法(“c”和“t”)
\n\n使用质量
\n\n如果我输入以下公式:
\n\nsynt1 = glmmPQL (synt_num ~ voc1_tvl*verb*wo, random = ~1|participants, data=opz, family="binomial")\nRun Code Online (Sandbox Code Playgroud)\n\n我得到以下输出
\n\nLinear mixed-effects model fit by maximum likelihood\n Data: ops \n AIC BIC logLik\n NA NA NA\n\nRandom effects:\n Formula: ~1 | participants\n (Intercept) Residual\nStdDev: 21.50518 0.003233762\n\nVariance function:\n Structure: fixed weights\n Formula: ~invwt \nFixed effects: synt_num ~ voc1_tvl * verb * wo \n Value Std.Error …Run Code Online (Sandbox Code Playgroud) 我有六个固定因子:A, B, C, D, EandF和一个随机因子R。我想使用语言 R 测试线性项、纯二次项和双向交互。因此,我构建了完整的线性混合模型并尝试使用以下方法测试其项drop1:
full.model <- lmer(Z ~ A + B + C + D + E + F
+ I(A^2) + I(B^2) + I(C^2) + I(D^2) + I(E^2) + I(F^2)
+ A:B + A:C + A:D + A:E + A:F
+ B:C + B:D + B:E + B:F
+ C:D + C:E + C:F
+ D:E + D:F
+ E:F
+ (1 | R), data=mydata, REML=FALSE)
drop1(full.model, test="Chisq") …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 R 中的 lmerTest 包使用 SAS 中的 Satterwaithe 近似来重现 PROC MIXED 过程的输出。
这是我的数据:
Participant Condition Data
1 0 -1,032941629
1 0 0,869267841
1 0 -1,636722191
1 0 -1,15451393
1 0 0,340454836
1 0 -0,399315906
1 1 0,668983169
1 1 1,937817592
1 1 3,110013393
1 1 3,23409718
2 0 0,806881925
2 1 2,71020911
2 1 3,406864275
2 1 1,494288182
2 1 0,741827047
2 1 2,532062685
2 1 3,702118917
2 1 1,825046681
2 1 4,37167021
2 1 1,85125279
3 0 0,288743786
3 …Run Code Online (Sandbox Code Playgroud) 我正在使用 Python 中的 statsmodels MixedLM 包估计混合线性模型。拟合模型后,我现在想进行预测,但正在努力理解“预测”方法。
statsmodels 文档 ( http://www.statsmodels.org/dev/generated/statsmodels.regression.mixed_linear_model.MixedLM.predict.html ) 表明 predict 方法采用包含已估计模型参数的数组。我怎样才能检索这个数组?
y = raw_data['dependent_var']
X = raw_data[['var1', 'var2', 'var3']]
groups = raw_data['person_id']
model = sm.MixedLM(endog=y, exog=X, groups=groups)
result = model.fit()
Run Code Online (Sandbox Code Playgroud) 如何在 R 中拟合序数(3 个级别)逻辑混合效应模型?我想它就像一个 glmer,除了三个结果级别之外。
数据结构
patientid Viral_load Adherence audit_score visit
1520 0 optimal nonhazardous 1
1520 0 optimal nonhazardous 2
1520 0 optimal hazardous 3
1526 1 suboptimal hazardous 1
1526 0 optimal hazardous 2
1526 0 optimal hazardous 3
1568 2 suboptimal hazardous 1
1568 2 suboptimal nonhazardous 2
1568 2 suboptimal nonhazardous 3
Run Code Online (Sandbox Code Playgroud)
其中病毒载量(感兴趣的结果)由三个级别(0、1、2)组成,依从性 - 最佳/次优、审核评分无危险/危险以及 3 次就诊。
这是使用广义混合效果模型代码的模型外观的示例。
library (lme4)
test <- glmer(viral_load ~ audit_score + adherence + (1|patientid) + (1|visit), data = df,family = binomial) …Run Code Online (Sandbox Code Playgroud) 我想在使用 时使用na.passfor 。某些列中的数据集的某些观察值存在值。我只想控制包含 的变量。非常重要的是,在控制固定效应后,数据集的大小将保持不变。我想我必须与in一起工作。我正在使用以下模型:na.actionlmerNANAna.actionlmer()
baseline_model_0 <- lmer(formula=log_life_time_income_child ~ nationality_dummy +
sex_dummy + region_dummy + political_position_dummy +(1|Family), data = baseline_df
Run Code Online (Sandbox Code Playgroud)
qr.default(X, tol = tol, LAPACK = FALSE) 中的错误:外部函数调用中的 NA/NaN/Inf (arg 1)
我的数据:如下所示,所有控制变量中都有相当多的 NA。所以“扔掉”所有这些观察结果是没有选择的!
一个例子:
nat_dummy
1 : 335
2 : 19
NA's: 252
Run Code Online (Sandbox Code Playgroud)
我的问题:
1.) 如何将所有控制变量(以多列表示)包含到模型中而不排除观察值(以行表示)?
2.) 如何lmer处理所有列中缺失的变量?
我对stats::model.matrixR中的函数之以鼻。在描述中它说它将创建一个设计矩阵。它给了我奇怪的行数,既不对应于我的数据中的观察数,也不对应于我的模型中的参数数。
什么是设计矩阵/模型矩阵?
这是我的用法:
M03b <- glmer(APMs ~ PrePost + Gf + eyeFRF + (1|content) + (eyeFRF|ID), data=mlmData, family=binomial("logit"))
X <- model.matrix(M03b)
Run Code Online (Sandbox Code Playgroud)
它给了我2895x4矩阵 ID有105个级别,内容为28,所以行数对我来说意义不大。也许缺少价值是一个问题?
mixed-models ×10
r ×9
lme4 ×4
correlation ×1
distance ×1
multi-level ×1
multinomial ×1
na ×1
nlme ×1
panel-data ×1
polynomials ×1
predict ×1
python ×1
python-3.x ×1
sas ×1
statistics ×1
statsmodels ×1