2009-10-11 6 views
4

Je fais une régression simple dans R sur l'utilisation de gaz par habitant. Les formules de régression ressemble:Moindres carrés contraints

gas_b <- lm(log(gasq_pop) ~ log(gasp) + log(pcincome) + log(pn) + 
      log(pd) + log(ps) + log(years), 
      data=gas) 
summary(gas_b) 

Je veux inclure une contrainte linéaire que les coefficients bêta de log(pn)+log(pd)+log(ps)=1 (somme à un). Existe-t-il un moyen simple d'implémenter ceci (éventuellement dans la fonction lm) dans R sans avoir à utiliser la fonction constrOptim()?

+0

Quels sont pn, pd et ps? Sont-ils des variables factices? – hadley

+0

Non, ils sont #PD = indice des prix pour les biens durables composante de la consommation totale #PN = indice de prix pour composante non durables de la consommation totale #PS = indes prix pour les services composante de la consommation totale théorie microéconomique peut prédire que les trois élasticités sur le prix non durables, logPN, le prix des biens durables, le logPD et le prix des services, logPS, devrait totaliser un. –

Répondre

7

Modifier votre régression comme suit:

gas_b <- lm(log(gasq_pop) - log(ps) ~ log(gasp) + log(pcincome) + 
    I(log(pn)-log(ps)) + I(log(pd)-log(ps)) + log(years), data=gas) 
summary(gas_b) 

Si b=coef(gas_b), alors les coefficients pertinents sont

log(pn): b[4] 
log(pd): b[5] 
log(ps): 1 - b[4] - b[5] 
+0

Merci Rob, a couru ça et ça a marché comme un charme. Cependant, je ne pouvais pas trouver dans le manuel R, ce que le "I" en face de I (log (pn) -log (ps)) et I (log (pd) -log (ps)) représente? Merci, Thomas –

+0

I est synonyme d'identité. voir l'aide (I). –

Questions connexes