标签: mixed-models

lme4::glmer.nb 函数会根据我运行模型的顺序产生“family$family 中的错误:未为此 S4 类定义 $ 运算符”

library(lme4)

dummy <- as.data.frame(cbind(speed = rpois(100, 10), pop = rep(1:4, each = 25), season = rep(1:2, each = 50), id = seq(1, 100, by = 1)))
dummy2 <- as.data.frame(cbind(speed = c(rnbinom(50, 10, 0.6), rnbinom(50, 10, 0.1)), pop = rep(1:4, each = 25), season = rep(1:2, each = 50), id = seq(1, 100, by = 1)))

poisson <- glmer(speed~pop*season + (1|id),
             data=dummy, family="poisson")
neg.bin <- glmer.nb(speed ~ pop*season + (1|id),
                data=dummy2, control=glmerControl(optimizer="bobyqa"))
Run Code Online (Sandbox Code Playgroud)

当我使用 lme4 包在负二项式模型之前运行创建泊松模型的脚本时,运行 neg.bin 模型时出现以下错误:

Error in family$family : …
Run Code Online (Sandbox Code Playgroud)

r lme4 mixed-models

7
推荐指数
1
解决办法
578
查看次数

随机效应变量是否自动作为 R 中 lmer(或 lme)的因子?

我知道在混合效应模型中将连续或数字变量作为随机效应并没有多大意义(例如,请参阅此处)。

但我想知道的是,是否lme4::lmernlme::lme在 R 中故意阻止你这样做......

具体来说,我要问的是:如果我提供lmer(或lme)任何非因素(非分类)变量作为随机效应,函数是否会自动将其视为一个因素?

插入factor()直接进入11聚物(如当使用常规方法lm)产生以下错误:

lmer(y ~ z + (1|factor(x)), data = dat)
Error: couldn't evaluate grouping factor factor(x) within model frame: try adding grouping factor to data frame explicitly if possible
Run Code Online (Sandbox Code Playgroud)

虽然上面的错误提到直接向数据添加分组因子,但它没有指定所述分组因子是否需要是一个因子(或者这可能是选择一词隐含的)?

我知道直接从我的数据创建一个新的因子类变量相当简单,但我很好奇在使用lmer(或lme)时是否真的有必要。

r lme4 mixed-models categorical-data nlme

7
推荐指数
1
解决办法
2165
查看次数

R geepack:使用GEE进行不合理的大规模估算

我用geepackR来估算逻辑边际模型geeglm().但我得到垃圾估计.它们大约16个数量级太大.然而,p值似乎与我的预期相似.这意味着响应基本上成为阶梯函数.见附图适合边际模型

以下是生成图表的代码:

require(geepack)
data = read.csv(url("http://folk.uio.no/mariujon/data.csv"))
fit = geeglm(moden ~ 1 + power, id = defacto, data=data, corstr = "exchangeable", family=binomial)
summary(fit)
plot(moden ~ power, data=data)
x = 0:2500
y = predict(fit, newdata=data.frame(power = x), type="response" )
lines(x,y)
Run Code Online (Sandbox Code Playgroud)

这是回归表:

Call:
geeglm(formula = moden ~ 1 + power, family = binomial, data = data, 
    id = defacto, corstr = "exchangeable")

 Coefficients:
             Estimate   Std.err  Wald Pr(>|W|)    
(Intercept) -7.38e+15  1.47e+15  25.1  5.4e-07 ***
power        2.05e+13  1.60e+12 164.4  < 2e-16 …
Run Code Online (Sandbox Code Playgroud)

r glm random-effects mixed-models logistic-regression

7
推荐指数
1
解决办法
714
查看次数

使用 `ordinal::clmm` 模型对新数据进行预测

我有一些重复的措施,顺序响应数据:

dat <- data.frame(
  id = factor(sample(letters[1:5], 50, replace = T)),
  response = factor(sample(1:7, 50, replace = T), ordered = T),
  x1 = runif(n = 50, min = 1, max = 10),
  x2 = runif(n = 50, min = 100, max = 1000)
)
Run Code Online (Sandbox Code Playgroud)

我建立了以下模型:

library(ordinal)

model <- clmm(response ~ x1 + x2 + (1|id), data = dat)
Run Code Online (Sandbox Code Playgroud)

我有一些新数据:

new_dat <- data.frame(
  id = factor(sample(letters[1:5], 5, replace = T)),
  x1 = runif(n = 5, min = 1, max = 10), …
Run Code Online (Sandbox Code Playgroud)

r ordinal predict mixed-models

7
推荐指数
1
解决办法
563
查看次数

如何从 lmerMod 对象中提取原始公式(固定效应和随机效应)?

假设我们假设了以下线性混合模型(LMM),我们通常将其称为fit

library(lme4)

fit <- lmer(Reaction ~ Days + (1 | Subject), data = sleepstudy)
Run Code Online (Sandbox Code Playgroud)

假设我们也有兴趣从 中提取原始公式(即固定效应和随机效应部分)fit,我们希望将其传递给名为 的第二个 LMM fit2。显然,传递terms(fit)formula的参数lmer()是行不通的。

> fit2 <- lmer(terms(fit), data = sleepstudy)
Error: No random effects terms specified in formula
Run Code Online (Sandbox Code Playgroud)

问题

有没有办法从 中提取固定效应和随机效应部分fit,然后将其传递给lmer()

r lme4 mixed-models

7
推荐指数
1
解决办法
992
查看次数

将重复测量混合模型公式从SAS转换为R.

关于更复杂的实验设计的混合模型有几个问题和帖子,所以我认为这个更简单的模型将有助于其他初学者以及我.

所以,我的问题是我想从sas proc混合程序中在R中制定重复测量ancova:

proc mixed data=df1;
FitStatistics=akaike
class GROUP person day;
model Y = GROUP X1 / solution alpha=.1 cl;
repeated / type=cs subject=person group=GROUP;
lsmeans GROUP;
run;
Run Code Online (Sandbox Code Playgroud)

以下是使用R(下面)中创建的数据的SAS输出:

.           Effect       panel    Estimate       Error      DF    t Value    Pr > |t|     Alpha       Lower       Upper
            Intercept              -9.8693      251.04       7      -0.04      0.9697       0.1     -485.49      465.75
            panel        1         -247.17      112.86       7      -2.19      0.0647       0.1     -460.99    -33.3510
            panel        2               0           .       .        .         .             .           .           .
            X1                     20.4125     10.0228       7       2.04      0.0811       0.1      1.4235 …
Run Code Online (Sandbox Code Playgroud)

r sas mixed-models

6
推荐指数
1
解决办法
5664
查看次数

R 的 lme4 包中混合效应模型的稳健标准误差

我正在使用 lme4 包进行线性混合效果建模

混合效应模型如下:

fm01 <- lmer(sublat <- goal + (1|userid))
Run Code Online (Sandbox Code Playgroud)

上面的命令返回一个名为 fm01 的 S4 对象

此对象包括固定效应及其 OLS 标准误差(如下)

Fixed effects:

            Estimate Std. Error t value
(Intercept)   31.644      3.320   9.530
goaltypeF1    -4.075      3.243  -1.257
goaltypeF2    -9.187      5.609  -1.638
goaltypeF3   -13.935      9.455  -1.474
goaltypeF4   -20.219      8.196  -2.467
goaltypeF5   -12.134      8.797  -1.379"
Run Code Online (Sandbox Code Playgroud)

但是,我需要提供可靠的标准错误

如何使用 lme4 返回的 S4 对象执行此操作?

r mixed-models

6
推荐指数
2
解决办法
3807
查看次数

使用MCMCglmm的R中的贝叶斯误差变量(总最小二乘)模型

我正在使用MCMCglmm包中的一些贝叶斯线性混合模型R.我的数据包括使用错误测量的预测变量.因此,我想建立一个考虑到这一点的模型.我的理解是,基本的混合效应模型MCMCglmm将仅对响应变量(如ols回归)中的误差最小化.换句话说,垂直误差将被最小化.我想最小化与回归线/平面/超平面正交的误差.

  1. 是否可以使用MCMCglmm或者我必须使用JAGS/STAN来进行变量误差(也就是总最小二乘)模型?
  2. 是否可以在同一模型中使用多个预测变量来实现这一点(我有一些模型有3个或4个预测变量,每个模型都有误差测量)?
  3. 如果可能,我该如何指定模型?

我在下面列出了一个数据集,其中一个随机变量height用错误来衡量,以说明基本设置MCMCglmm.

library(nlme)
library(MCMCglmm)

data(Orthodont)

set.seed(1234)

Orthodont$height <- c(rnorm(54, 170, 10), rnorm(54, 150, 10))

prior1 <- list(
    B = list(mu = rep(0, 3), V = diag(1e+08, 3)), 
    G = list(G1 = list(V = 1, nu = 1, alpha.mu = 0, alpha.V = 1000)), 
    R = list(V = 1, nu = 0.002)
)

model1 <- MCMCglmm(
    fixed = distance ~ height + Sex,   
    random …
Run Code Online (Sandbox Code Playgroud)

r bayesian linear-regression mcmc mixed-models

6
推荐指数
0
解决办法
432
查看次数

使用序数包中装有 clmm 的模型平均累积链接混合模型进行概率预测

我发现该predict函数目前尚未在使用R包clmm中的函数拟合的累积链接混合模型中实现ordinal。虽然在同一个包中predict实现clmm2,但我选择应用clmm,因为后者允许多个随机效果。此外,我还安装了几个clmm模型并使用包model.avg中的函数执行模型平均MuMIn。理想情况下,我想使用平均模型来预测概率。然而,虽然MuMIn支持clmm模型,predict也不适用于普通模型。

有没有办法破解该predict函数,以便该函数不仅可以预测clmm模型的概率,还可以使用模型平均系数clmm(即“平均”类的对象)进行预测?例如:

require(ordinal)
require(MuMIn)

mm1 <- clmm(SURENESS ~ PROD + (1|RESP) + (1|RESP:PROD), data = soup,
        link = "probit", threshold = "equidistant")

## test random effect:
mm2 <- clmm(SURENESS ~ PROD + (1|RESP) + (1|RESP:PROD), data = soup,
        link = "logistic", threshold = "equidistant")

#create a model selection object
mm.sel<-model.sel(mm1,mm2) …
Run Code Online (Sandbox Code Playgroud)

r ordinal predict mixed-models

6
推荐指数
1
解决办法
1838
查看次数

lme4 glmer 用于 r 插入符包火车功能

我正在尝试将该glm方法caret::train用于广义线性混合效应模型。我使用以下代码来设置该功能:

`GLMERmod <- list(type="Classification", library="lme4", loop=NULL)

parameters <- data.frame(parameter="parameter", class="character", 
label="parameter")

GLMERmod$parameters <- parameters


grid <- function (x, y, len = NULL, search = "grid"){
  data.frame(parameter = "none")
 } 



 GLMERmod$grid <- grid


 fit <- 
 function (x, y, wts, param, lev, last, classProbs, ...) 
 {
    dat <- if (is.data.frame(x)) 
        x
    else as.data.frame(x)
    dat$.outcome <- y
    if (length(levels(y)) > 2) 
        stop("glm models can only use 2-class outcomes")
    theDots <- list(...)
    if (!any(names(theDots) == "family")) {
         theDots$family <- if …
Run Code Online (Sandbox Code Playgroud)

r training-data glm mixed-models r-caret

6
推荐指数
0
解决办法
1342
查看次数