我使用了 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 - 如何从装有来自 R 中 nlme 包的 gls 的模型计算伪 R 平方,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14451182/

10-12 17:30