Pergunta

Eu sou um novo usuário R.Eu tenho um conjunto de dados de seção transversal de série temporal e, embora tenha encontrado maneiras de atrasar os dados de série temporal em R, não encontrei uma maneira de criar variáveis ​​de seção transversal de série temporal defasadas para que eu possa usá-las em minha análise.

Foi útil?

Solução

Veja como você pode usar o lag() função com zoo (e dados da série do painel):

> library(plm)
> library(zoo)
> data("Produc")
> dnow <- pdata.frame(Produc)
> x.Date <- as.Date(paste(rownames(t(as.matrix(dnow$pcap))), "-01-01", sep=""))
> x <- zoo(t(as.matrix(dnow$pcap)), x.Date)
> x[1:3,1:3]
            ALABAMA  ARIZONA ARKANSAS
1970-01-01 15032.67 10148.42  7613.26
1971-01-01 15501.94 10560.54  7982.03
1972-01-01 15972.41 10977.53  8309.01

Atraso em 1:

> lag(x[1:3,1:3],1)
            ALABAMA  ARIZONA ARKANSAS
1970-01-01 15501.94 10560.54  7982.03
1971-01-01 15972.41 10977.53  8309.01

Atraso para trás em 1:

> lag(x[1:3,1:3],k=-1)
            ALABAMA  ARIZONA ARKANSAS
1971-01-01 15032.67 10148.42  7613.26
1972-01-01 15501.94 10560.54  7982.03

Como Dirk mencionou, tome cuidado com o significado do atraso nos diferentes pacotes de séries temporais.Note como xts trata isso de forma diferente:

> lag(as.xts(x[1:3,1:3]),k=1)
            ALABAMA  ARIZONA ARKANSAS
1970-01-01       NA       NA       NA
1971-01-01 15032.67 10148.42  7613.26
1972-01-01 15501.94 10560.54  7982.03

Outras dicas

Para dados transversais de séries temporais, o pacote por favor é muito útil.Possui uma função de atraso que leva em consideração a natureza do painel dos dados.

library(plm)
data("Produc", package="plm")
dnow <- pdata.frame(Produc)
head(lag(dnow$pcap,1))
             ALABAMA-1970 ALABAMA-1971 ALABAMA-1972 ALABAMA-1973 ALABAMA-1974 
          NA     15032.67     15501.94     15972.41     16406.26     16762.67 

Um problema com o pacote é que usar with (ou inside ou transform) fornece a resposta errada.

head(with(dnow, lag(pcap,1)))
15032.67 15501.94 15972.41 16406.26 16762.67 17316.26

Por isso tem cuidado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top