2013-04-11 17 views
8

Ho riscontrato un problema nella configurazione di un modello di dati del pannello.R: plm - anno effetti fissi - dati anno e trimestre

Ecco alcuni dati di esempio:

library(plm) 

id <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2) 
year <- c(1999,1999,1999,1999,2000,2000,2000,2000,1999,1999,1999,1999,2000,2000,2000,2000) 
qtr <- c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4) 
y <- rnorm(16, mean=0, sd=1) 
x <- rnorm(16, mean=0, sd=1) 

data <- data.frame(id=id,year=year,qtr=qtr,y_q=paste(year,qtr,sep="_"),y=y,x=x) 

ho eseguito il seguente regressione usando 'id' come l'indice individuale e 'l'anno' come l'indice di tempo:

reg1 <- plm(y ~ x, data=data,index=c("id", "year"), model="within",effect="time") 

Purtroppo, ottengo il seguente errore:

duplicate couples (time-id) Error in pdim.default(index[[1]], index[[2]]) :

Quindi per aggirare questo, io uso la variabile combinato che è 'y_ q ':

reg1 <- plm(y ~ x, data=data,index=c("id", "y_q"), model="within",effect="time") 

Ma ecco il mio problema: voglio solo avere gli effetti fissi dell'anno e non l'anno.

C'è un altro modo per aggirare il problema precedente invece di fare l'indice di tiem 'y_q'?

Grazie in anticipo per qualsiasi aiuto!

+0

vedi anche https://stackoverflow.com/questions/28789767/how-to-include-a-year-fixed-effect-in-a-year -quarter-panel-data-in-r-con-plm – Helix123

risposta

3

In un'impostazione del pannello, di solito non si ha alcun valore duplicato per ogni coppia anno-anno.

Nei dati di quaterly sarà difficile calcolare modelli di effetti fissi di un anno senza aggregare i dati per renderli annuali.

Controllare gli esempi here per vedere come i dati devono essere formattati per la modellazione dei dati del pannello.

Ecco senso unico per farlo:

require(plyr) 
yeardata <- ddply(data, .(year, id), summarize, y = mean(y), 
               x = mean(x)) 


require(plm) 
reg1 <- plm(y ~ x, data = yeardata, index = c("id", "year"), model = "within", effect = "time") 
fixef(reg1) 

##  1999  2000 
## 0.2641997 0.0041193