[英]How to calculate pseudo R-squared from a model fitted with gls from the nlme package in R
我使用了 nlme 的 gls 來擬合這個模型:
require(nlme)
set.seed(101)
mp <-data.frame(year=1990:2010)
N <- nrow(mp)
mp <- within(mp,
{
wav <- rnorm(N)*cos(2*pi*year)+rnorm(N)*sin(2*pi*year)+5
wow <- rnorm(N)*wav+rnorm(N)*wav^3
})
m01 <- gls(wow~poly(wav,3), data=mp, correlation = corARMA(p=1))
我想計算任何擬合優度的度量,例如偽 R 平方:可以推薦哪一個? 以及如何計算?
謝謝
您需要有某種基線進行比較:
> summary(m01)
Generalized least squares fit by REML
Model: wow ~ poly(wav, 3)
Data: mp
AIC BIC logLik
226.5434 231.5427 -107.2717
m01 <- gls(wow~1, data=mp, correlation = corARMA(p=1))
> summary(m01)
Generalized least squares fit by REML
Model: wow ~ 1
Data: mp
AIC BIC logLik
256.5048 259.492 -125.2524
非線性擬合的問題在於平均值不再是“基線”,而這正是 R 平方測度所假設的。
這里有一些偽R平方
R2 <- cor(mp$wow,predict(m01))^2
R2
R2.1 <- 1 - with(mp, (sum((wow-predict(m01))^2)/sum((wow-mean(wow))^2)))
R2.1
麥克法登偽 R2
m00 <- gls(wow~1, data=mp, correlation = corARMA(p=1))
R2.n <- 1-(as.numeric(logLik(m01)/logLik(m00)))
R2.n
但我不知道哪一個更適合評估這種模型的擬合優度。
rcompanion::nagelkerke ()
計算三個不同的偽 R² 值。 該函數接受通過nlme::gls
擬合的模型。
summary(m01)
應該給你你正在尋找的東西,假設我正確理解你的問題? ??fit
將為您提供進一步的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.