[英]How to normalize a Lmer model?
默:
mixed.lmer6 <- lmer(Size ~ (Time+I(Time^2))*Country*STemperature +
(1|Country:Locality)+ (1|Locality:Individual)+(1|Batch)+
(1|Egg_masses), REML = FALSE, data = data_NoNA)
殘差:
plot_model(mixed.lmer6, type = "diag")
在我的公式中嘗試了手動 log、power、sqrt 轉換,但沒有任何改進,我也找不到合適的自動轉換 R 函數,例如 BoxCox(不適用於 LMER)
任何幫助或提示將不勝感激
這可能更適合CrossValidated (“我應該做什么?”適合 CV;“我應該怎么做?”最適合 Stack Overflow),但我會嘗試一下。
fitted_model <- lmer(..., data = mydata)
bcfun <- function(lambda, resp = "y") {
y <- mydata[[resp]]
mydata$newy <- if (lambda==0) log(y) else (y^lambda -1)/lambda
## https://stats.stackexchange.com/questions/261380/how-do-i-get-the-box-cox-log-likelihood-using-the-jacobian
log_jac <- sum((lambda-1)*log(y))
newfit <- update(fitted_model, newy ~ ., data = mydata)
return(-2*(c(logLik(newfit))+ log_jac))
}
lambdavec <- seq(-2, 2, by = 0.2)
boxcox <- vapply(lambdavec, bcfun, FUN.VALUE = numeric(1))
plot(lambdavec, boxcox - min(boxcox))
(經過輕微測試!但如果它不起作用,請隨時告訴我)
brms
包可以適合這樣的模型(但會讓你陷入貝葉斯/MCMC 兔子洞),而heavy
包(目前在 CRAN 上存檔)可以工作,但似乎不能處理交叉隨機效應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.