Tests de racine unitaire pour les données de panel dans R

8

J'ai le plmpaquet et je voudrais exécuter des tests de racine unitaire sur certaines variables. J'obtiens l'erreur suivante:

> purtest(data$tot.emp)
Error in data.frame(baldwin = c(59870, 61259, 60397, 58919, 57856, 57227,  : 
  arguments imply differing number of rows: 14, 19, 11, 12, 1, 20, 18, 10, 13

Je suppose que j'obtiens cette erreur car mon panneau est déséquilibré. Deux questions:

  • Pouvez-vous utiliser des tests de racine unitaire de panel (Levin, Lin et Chu (2002), Im, Pesaran et Shin (2003) ou autres) pour des panels non équilibrés?
  • Si oui, est-il implémenté dans R?
Charlie
la source
Je ne peux pas répondre à votre question mais pour info, Stata exécute ces tests même lorsque la variable est déséquilibrée. Cependant, les tests LM de Breitung, Harris-Tzavalis et Hadri semblent exiger un équilibre.
johnny
Une mise à jour. Jetez un œil au paquet punitroots. Je pense que ça peut faire ce que tu veux. road.unimol.it/bitstream/2192/163/3/ESDP11063.pdf
Manoel Galdino
La question des données de panel déséquilibrées est traitée dans la version 2.2-2 de plm sur CRAN. Les tests de Hadri et de Levin / Lin / Chu ne sont cependant pas applicables aux données déséquilibrées.
Helix123

Réponses:

8

À l'heure actuelle (version 1.2-10), il semble que le cas déséquilibré ne soit pas pris en charge. J'ai regardé le code, et la ligne de préparation des données finale (quel que soit votre argument initial) est la suivante:

 object <- as.data.frame(split(object, id))

Si vous passez le panneau déséquilibré, cette ligne le rendra équilibré en répétant les mêmes valeurs. Si votre panneau déséquilibré a des séries temporelles avec des longueurs qui se divisent, même aucun message d'erreur n'est produit. Voici l'exemple de la page la plus pure:

 > data(Grunfeld)
 > purtest(inv ~ 1, data = Grunfeld, index = "firm", pmax = 4, test = "madwu")

Maddala-Wu Unit-Root Test (ex. var. : Individual Intercepts )

  data:  inv ~ 1 
  chisq = 47.5818, df = 20, p-value = 0.0004868
  alternative hypothesis: stationarity 

Ce panneau est équilibré:

 > unique(table(Grunfeld$firm))
  [1] 20

Déséquilibrez-le:

 > gr <- subset(Grunfeld, !(firm %in% c(3,4,5) & year <1945))

Deux longueurs de séries temporelles différentes dans le panneau:

 > unique(table(gr$firm))
  [1] 20 10

Aucun message d'erreur:

> purtest(inv ~ 1, data = gr, index = "firm", pmax = 4, test = "madwu")

    Maddala-Wu Unit-Root Test (ex. var. : Individual Intercepts )

data:  inv ~ 1 
chisq = 86.2132, df = 20, p-value = 3.379e-10
alternative hypothesis: stationarity 

Un autre panneau déséquilibré:

  > gr <- subset(Grunfeld, !(firm %in% c(3,4,5) & year <1940))
  > unique(table(gr$firm))
  [1] 20 15

Et le message d'erreur:

 > purtest(inv ~ 1, data = gr, index = "firm", pmax = 4, test = "madwu")
  Erreur dans data.frame(`1` = c(317.6, 391.8, 410.6, 257.7, 330.8, 461.2,  : 
  arguments imply differing number of rows: 20, 15
mpiktas
la source
La question des données de panel déséquilibrées est traitée dans la version 2.2-2 de plm sur CRAN. Les tests de Hadri et de Levin / Lin / Chu ne sont cependant pas applicables aux données déséquilibrées.
Helix123
5

Avez-vous essayé de convertir vos données en pdata.frame? J'ai également un panneau déséquilibré, mais purtestsemble fonctionner avec un panneau déséquilibré si les données le sont pdata.frame. Mais je peux me tromper aussi :)

Cependant, dans les ?purtestauteurs, écrivez:

"object, x  

Either a 'data.frame' or a matrix containing the time series, 
a 'pseries' object, a formula, or the name of a column of a 'data.frame',
or a **'pdata.frame'**
on which the test has to be computed; a'purtest' object for the print 
and summary methods,"

Je suppose donc que si l'on utilise pdata.framele purtest"comprend" ce panneau est unbalanced.

Ai-je tort???

user1665355
la source
J'ai essayé mais cela ne fonctionne pas pour moi.
altabq
La question des données de panel déséquilibrées est traitée dans la version 2.2-2 de plm sur CRAN. Les tests de Hadri et de Levin / Lin / Chu ne sont cependant pas applicables aux données déséquilibrées.
Helix123
-1

Eviews 5vous permet de tester la panel unit rootspour les unbalanceddonnées qui ne sont pas possibles avec Ret Stata. Par exemple, même si Im–Pesaran–Shinet des Fisher-typetests peuvent être appliqués pour un panel déséquilibré dans Stata, il n'est pas possible si nous avons quelques observations, avec l'écart c'est-à-dire que nous avons des données du pays i pour les années 2002 et 2004 mais pas 2003 (en supposant que le décalage soit plus grand d'un). Je pense que Eviewslaisser tomber toutes ces observations lors des tests, pour notre exemple, c'est le pays i. Cependant, si vous supprimez manuellement toutes ces observations, vous pouvez toujours effectuer les tests avec RetStata.

Métrique
la source