2011-09-05 12 views
10

Estoy tratando de comprobar si hay autocorrelación en un objeto de zoológico (datos mensuales con varias columnas) usando:Cómo calcular la autocorrelación en r (objeto zoológico)

acf(jan, plot=F)$acf[2]

pero me sale el siguiente error :

Error in na.fail.default(as.ts(x)) : missing values in object

Para simplificar, extraje sólo una de las columnas que me llamó "a" (así que ahora tengo un objeto zoo sencillo con índice y datos), y se utilizaron:

acf(a)

pero sigue recibiendo el mismo error. No se puede usar en los objetos del zoológico?

Respuesta

11

Sólo tiene que utilizar

acf(coredata(jan)) 

Eso debería funcionar bien. Tenga en cuenta que debe proporcionar una serie temporal regularmente espaciada para que pueda darle una respuesta significativa.

+1

gracias! Ahora funciona si lo hago solo para una columna pero no para la matriz, me da un error: '> acf (coredata (feb)) Error en acf (coredata (feb)): 'lag.max' debe estar al menos 0' – sbg

+0

No creo que puedas usar acf en series multivariantes. ¿Qué desea obtener el acf de cada columna? ¿O le interesa la correlación cruzada entre las columnas (que sería el ccf y no el acf)? –

4

El comportamiento predeterminado para acf es na.action = na.fail. Inténtelo a na.omit o na.pass en su llamada acf(..., na.action = na.omit)

+0

gracias pero mis datos no tienen NA – sbg

+1

@sbg, 'acf' funciona con datos espaciados regularmente por lo que' acf' primero expande la serie de tiempo a una separada regularmente insertando NAs según sea necesario para que se espacie regularmente. –

+0

@Grothendieck, gracias, pero se trata de datos mensuales por lo que regularmente se espacia – sbg

0

O auto hecho

autocorrplot <- function(x) 
{ 
    n <- length(x) 
    barplot(sapply(1:10,function(i) cor(x[-i:-1],x[(-n-1+i):-n]))) 
} 
1

he tenido el mismo problema, ya que cuando se trata de utilizar la función de ACF en S & rendimientos mensuales P. Resulta que la función de coredata resolvió el problema ya que eliminó la información de fecha de las devoluciones en mi conjunto de datos de yahoo finance.

es posible que desee darle una oportunidad!

Cuestiones relacionadas