使用 R 中的 glm 函数将对数正态分布应用于我的数据

问题描述 投票:0回答:1

我想对具有特定类型分布的数据实现混合效应模型。这是我名为“a”的数据的示例:

dput(head(a))

structure(list(pNum = c(1L, 1L, 1L, 1L, 1L, 1L), FirstSteeringTime = c(0.433389999999999, 
0.449999999999989, 0.383199999999988, 0.499899999999997, 0.566800000000001, 
0.58329999999998), error_rate = c(2.86537083478438, 11.459301348013, 
2.86537083478438, 3.82015500141104, 2.86537083478438, 3.82015500141104
)), row.names = c(NA, 6L), class = "data.frame")

首先我看看哪种分布最适合我的数据:


# gamma distribution
fit_g  <- fitdist(magnitudedata$FirstSteeringTime, "gamma")

# log normal distribution - can only be used on positive values (any zeros and it will fail)
fit_ln <- fitdist(magnitudedata$FirstSteeringTime, "lnorm")

# weibull distribution
fit_w <- fitdist(magnitudedata$FirstSteeringTime, "weibull")

par(mfrow=c(2,2))
plot.legend <- c("Weibull", "gamma", "lognormal")
denscomp(list(fit_w, fit_g, fit_ln), legendtext = plot.legend)
cdfcomp (list(fit_w, fit_g, fit_ln), legendtext = plot.legend)
qqcomp  (list(fit_w, fit_g, fit_ln), legendtext = plot.legend)
ppcomp  (list(fit_w, fit_g, fit_ln), legendtext = plot.legend)

从这些图中可以看出,伽马分布和对数正态分布与我的数据最相关。

我可以通过使用 lme4 包中的 glmer 函数并将系列指定为“Gamma”来拟合伽玛分布


# model 3 - applying gamma distribution
m3 <- glmer(FirstSteeringTime ~ error_rate + (1 + error_rate | pNum), family = Gamma, data = a)

但是我不确定如何指定对数正态分布。我已经查看了这些函数和包的文档,并且我不能简单地指定“对数正态”是该系列。

有人知道如何使用对数正态分布实现我的混合效应模型吗?感谢任何帮助,非常感谢!

r modeling glm lme4
1个回答
0
投票

您知道如何实现具有对数正态分布的混合效应模型吗?

© www.soinside.com 2019 - 2024. All rights reserved.