2011-05-16 7 views
5

Aquí es un extracto de Mixed Effects Models in S and S-Plus página 238:¿Por qué aparece un error cuando intento modelar la autocorrelación, incluso cuando sigo exactamente este ejemplo en Pinheiro y Bates (2009)?


enter image description here enter image description here


este es el código que he utilizado para recrear este ejemplo:

library(nlme) 
spatDat <- data.frame(x = c(0,0.25,0.5,0.75,1), y = c(0,0.25,0.5,0.50,0.75)) 
cs1Exp <- corExp(1, form = ~x+y) 
cs1Exp <- initialize(cs1Exp, spatDat) 

pero cuando lo hago, me sale este error:

Error in getClass(Class) : 
    c("\"corExp\" is not a defined class", "\"corSpatial\" is not a defined class", "\"corStruct\" is not a defined class") 
In addition: Warning message: 
In if (!is.na(match(Class, .BasicClasses))) return(newBasic(Class, : 
    the condition has length > 1 and only the first element will be used 

¿Por qué obtengo este error?


Apéndice

R version 2.13.0 (2011-04-13) 
Platform: x86_64-pc-linux-gnu (64-bit) 
attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] nlme_3.1-101 

loaded via a namespace (and not attached): 
[1] grid_2.13.0  lattice_0.19-26 
+1

Bueno, no es sus datos para y mal en la línea: spatDat <- data.frame (x = c (0,0.25,0.5,0.75,1), y = c (0,0,25,0.5,0.50,0.75)) – Vivi

+0

Tiene 0.5 para las observaciones 3 y 4 cuando debería ser solo para la observación 3, luego de allí obtiene la observación 5 también incorrecta .... – Vivi

+1

Esto probablemente debería moverse a crossvalidated.com –

Respuesta

10

La razón es que Initialize lleva mayúscula I en nlme por lo que no se confunde con initialize en base. Y luego está el comentario de Vivi en spatdat$y

Esto funciona:

> library(nlme) 
> spatDat <- data.frame(x = c(0,0.25,0.5,0.75,1), y = c(0,0.25,0.50,0.75,1.0)) 
> cs1Exp <- corExp(1, form = ~x+y) 
> cs1Exp <- Initialize(cs1Exp, spatDat) 
> corMatrix(cs1Exp) 
      [,1]  [,2]  [,3]  [,4]  [,5] 
[1,] 1.0000000 0.7021885 0.4930687 0.3462272 0.2431167 
[2,] 0.7021885 1.0000000 0.7021885 0.4930687 0.3462272 
[3,] 0.4930687 0.7021885 1.0000000 0.7021885 0.4930687 
[4,] 0.3462272 0.4930687 0.7021885 1.0000000 0.7021885 
[5,] 0.2431167 0.3462272 0.4930687 0.7021885 1.0000000 
+0

que solo desperdició una hora de mi vida –

5

Hay un par de problemas con su código. Aquí está la versión corregida:

library(nlme)  
spatDat <- data.frame(x = c(0, 0.25, 0.5, 0.75, 1), y = c(0, 0.25, 0.5, 0.75, 1.0))  
cs1Exp <- corExp(1, form = ~x+y)  
cs1Exp <- Initialize(cs1Exp, spatDat) 
corMatrix(cs1Exp) 

      [,1]  [,2]  [,3]  [,4]  [,5] 
[1,] 1.0000000 0.7021885 0.4930687 0.3462272 0.2431167 
[2,] 0.7021885 1.0000000 0.7021885 0.4930687 0.3462272 
[3,] 0.4930687 0.7021885 1.0000000 0.7021885 0.4930687 
[4,] 0.3462272 0.4930687 0.7021885 1.0000000 0.7021885 
[5,] 0.2431167 0.3462272 0.4930687 0.7021885 1.0000000 
3

destacar la calidad de la documentación (y esperemos que para salvar a alguien tiempo en otro cuando se trabaja con un paquete de libros de texto tales bien documentada), voy a señalar que el código en cuestión se proporciona en el archivo de ayuda en virtud de ?corExp

Examples: 

    # Pinheiro and Bates, p. 238 
    spatDat <- data.frame(x = (0:4)/4, y = (0:4)/4) 

    cs1Exp <- corExp(1, form = ~ x + y) 
    cs1Exp <- Initialize(cs1Exp, spatDat) 
    corMatrix(cs1Exp) 
    ... 
Cuestiones relacionadas