簡體   English   中英

如何從裝有來自 R 中 nlme 包的 gls 的模型計算偽 R 平方

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM