F-test sur les Effets Fixes dans R (Données de Panel)
Je suis en train de faire un test F sur la commune de la significativité des effets fixes (propres à la personne dummy variables) sur un panel de données de régression des moindres carrés ordinaires (dans R), cependant, je n'ai pas trouvé une façon d'accomplir ce pour un grand nombre d'effets fixes. Idéalement, je voudrais utiliser une fonction dans le plm
paquet, cependant, je n'ai pas trouvé quelque chose qui précisément fait ce test.
C'est quelque chose Stata fait automatiquement lors de l'utilisation de la xtreg, fe
de commande. Dans Stata, le résultat ressemble à ceci:
------------------------------------------------------------------------------
F test that all u_i=0: F(49, 498) = 12.00 Prob > F = 0.000
Encore une fois, je suis en train d'essayer de reproduire le logiciel Stata résultat dans R pour un grand nombre de variables nominales, peut-être spécifié par + factor(us.state)
à l'aide de lm()
ou model = "fe"
à l'aide de plm()
.
Voici un exemple reproductible:
require(foreign)
voter <- read.dta("http://www.montana.edu/econ/cstoddard/562/panel_hw.dta")
reg1 <- lm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border
+ factor(state), data=voter)
qui est équivalente à la suivante "dans la" régression à l'aide de la plm
paquet.
require(plm)
reg1.fe <- plm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border,
data=voter, index = c("state","year"), model = "within")
Donc, le test serait le test que toutes les variables muettes sont conjointement différents de zéro (conjointement significatives). C'est une restriction linéaire sur la restriction de modèle (reg1 et reg1.fe ci-dessus). Ce test F est mieux expliqué sur le document suivant (voir les diapositives 5-7).
http://jackman.stanford.edu/classes/350B/07/ftestforWeb.pdf
Voici un de mes faibles tentatives de création d'un " R " de la matrice pour le F-test avec l'hypothèse nulle: Rb = q où b est la matrice des coefficients (bêta hat), et q est un vecteur de zéros.
d1 = length(unique(voter$stcode))-1
d2 = length(reg1$coefficients)
R = cbind(matrix(0,d1,d2),diag(d1))
linearHypothesis(reg1,R,rhs=0)
Cela ne fonctionne pas! Et, je l'espère, il y a une approche simplifiée du test de la commune de la signification de tous les effets fixes des variables nominales.
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, je voudrais suggérer que votre question pourrait être améliorée par l' (1) donner un exemple reproductible, et (2) description de l'précis de test à laquelle vous parlez quand vous dites "F test". Un lien vers le logiciel Stata docs peut-être? F est la distribution, donc il peut y avoir une foule de tests appelé un "F test".
Si votre fond d'intérêt réside dans la détermination de savoir si le modèle d'effets fixes est adapté aux données nettement mieux que LO sans effets fixes, alors vous pouvez toujours utiliser un test du rapport de vraisemblance. Je suis sûr qu'il existe de nombreuses implémentations dans R, mais celui qui est fourni par le
lmtest
package est très pratique. Voici un exemple d'utilisation d'un jeu de données distribuées avec leplm
paquet (vous semblez l'avoir installé, il devrait donc être facile d'essayer).et la sortie:
EDIT: L'OPTION 2
De SORTIE:
Je ne pense vraiment pas que ce test est utile à tous. Au lieu de l'estimation de ce que vous appelez un effet fixe (je l'appellerai sans la mise en commun de modèle), pourquoi pas un modèle hiérarchique? Le modèle hiérarchique (ou de mise en commun partielle modèle) permettra à votre estimations pour réduire le commum signifie pour les états, mais sans leur imposer d'être égaux. Morevoer, si vous avez besoin d'évaluer dans quelle mesure les états varient, vous avez juste besoin d'utiliser la variance estimée entre et intra étatiques. Si l'écart entre l'état est faible (proche de zéro), que vous n'êtes pas gagne tellement à l'aide d'un modèle hiérarchique et l'intercepte sont à peu près les mêmes. Si l'écart est très grand (dans la limite quand tend vers l'infini) le hierarchial modèle ajoute peu et vous pourriez exécuter un séparé modèle pour chaque état.
Vous pouvez estimer un modèle hiérarchique, en R avec le package lme4. L'utilisation de vos données:
L'écart type estimé de l'ordonnée à l'origine par les états est 4.39 et la déviation standard par personne est 4.19.