2016-06-02 2 views
0

je le modèle suivant:Test de l'égalité des coefficients multiples dans R

y = b1_group1*X1 + b1_group2*X1 + b2_group1*X2 + b2_group2*X2 + ... + 
    b10_group1*X10 + b10_group2*X10 

facilement fait en R comme suit:

OLS <- lm(Y ~ t1:Group + t2:Group + t3:Group + t4:Group + t5:Group + t6:Group + 
      t7:Group + t8:Group + t9:Group + t10:Group,weights = weight, Alldata) 

Stata, je peux maintenant faire le test suivant:

test (b1_group1=b1_group2) (b2_group1=b2_group2) (b3_group1=b3_group2) 
  • b1_group1 - b1_group2 = 0
  • b2_group1 - b2_group2 = 0
  • b3_group1 - b3_group2 = 0

Ce qui me dit que le groupe de coefficents de X1, X2 et X3 sont conjointement différents entre le groupe 1 et le groupe 2 au moyen d'un test F .

Quelqu'un peut-il s'il vous plaît dire comment faire cela dans R? Merci!

+0

de Cran TaskView "économétrie": Tests d'hypothèses linéaires plus générales sont implémenté dans linearHypothesis() et pour les hypothèses non-linéaires dans deltaMethod() dans le paquet 'car'. – jogo

+0

Voir les trois dernières lignes ici: http://stackoverflow.com/questions/37418421/calculate-and-compare-coefficient-estimates-from-a-regression-interaction-for-ea/37419103#37419103 – coffeinjunky

+1

Par ailleurs, Selon StataCorp LP, Stata est un nom, pas une abréviation. Par conséquent, Stata préfère être appelé 'Stata' au lieu de' STATA'. – coffeinjunky

Répondre

3

Regardez cet exemple:

library(car) 

mod <- lm(mpg ~ disp + hp + drat*wt, mtcars) 
linearHypothesis(mod, c("disp = hp", "disp = drat", "disp = drat:wt")) 
Linear hypothesis test 

Hypothesis: 
disp - hp = 0 
disp - drat = 0 
disp - drat:wt = 0 

Model 1: restricted model 
Model 2: mpg ~ disp + hp + drat * wt 

    Res.Df RSS Df Sum of Sq  F Pr(>F) 
1  29 211.80        
2  26 164.67 3 47.129 2.4804 0.08337 . 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Voir ?linearHypothesis pour une variété d'autres façons de spécifier le test.

Alternative:

Les ci-dessus montre une façon rapide et facile à réaliser des tests d'hypothèses. Les utilisateurs ayant une solide compréhension de l'algèbre des tests d'hypothèses peuvent trouver l'approche suivante plus pratique, au moins pour les versions simples du test. Disons que nous voulons tester si les coefficients sur cyl et carb sont identiques ou non.

mod <- lm(mpg ~ disp + hp + cyl + carb, mtcars) 

Les tests suivants sont équivalents:

Testez un:

linearHypothesis(mod, c("cyl = carb")) 

Linear hypothesis test 
Hypothesis: 
cyl - carb = 0 
Model 1: restricted model 
Model 2: mpg ~ disp + hp + cyl + carb 
    Res.Df RSS Df Sum of Sq  F Pr(>F) 
1  28 238.83       
2  27 238.71 1 0.12128 0.0137 0.9076 

test deux:

rmod<- lm(mpg ~ disp + hp + I(cyl + carb), mtcars) 
anova(mod, rmod) 

Analysis of Variance Table 
Model 1: mpg ~ disp + hp + cyl + carb 
Model 2: mpg ~ disp + hp + I(cyl + carb) 
    Res.Df RSS Df Sum of Sq  F Pr(>F) 
1  27 238.71       
2  28 238.83 -1 -0.12128 0.0137 0.9076 
+0

Salut coffeinjunky! Votre réponse n'est pas 100% la réponse à ma question, car je veux savoir comment comparer plusieurs coefficients de 2 groupes les uns avec les autres. Cependant, votre suggestion m'a aidé à trouver la réponse à ma question. Alors merci beaucoup. Pour moi en particulier: lors de l'exécution du modèle, je dois utiliser 'summary mod' pour voir comment R nomme les interactions. Ensuite, je peux faire la chose que vous spécifiez 'linearHypothesis (mod, c (" Groupe0: t1 = Groupe1: t1 "," Groupe0: t2 = Groupe1: t2 "))' – user33125

+0

Parfait! Merci beaucoup pour votre aide! – user33125