2016-11-09 2 views
0

Je suis aux prises avec un problème dans R.Différence dans les valeurs prévues prévues de lm dans R

Cette liste contient des données sur les femmes enceintes, le poids à la naissance et la parité. Je veux prédire la différence dans le gain de poids de deux futures femmes donnant naissance pour la première fois (parité 0) à respectivement un enfant de 3200 g et 3700 g.

J'ai cet ensemble de données:

str(birth_all) 
'data.frame': 910 obs. of 13 variables: 
$ birthweight: int 3270 3580 3030 2460 3400 4250 4260 3450 3880 3600 ... 
$ parity  : int 0 0 0 0 0 0 2 0 1 0 ... 
$ weightgain : num 17.9 15.9 10.4 11.5 11.6 ... 

je peux faire comme ceci:

bweight<-birth_all$birthweight[birth_all$parity==0] 
wgain<-birth_all$weightgain[birth_all$parity==0] 
P1<-data.frame(bweight=c(3200,3700)) 
pred_val<-predict(lm(wgain~bweight),newdata = P1,interval = "confidence") 
pred_val 
     fit  lwr  upr 
1 15.36842 14.62545 16.11138 
2 16.71779 16.07556 17.36002 

Le calcul facile sera la suivante:

pred_val[2,1]-pred_val[1,1] 
[1] 1.349368 

Je ne pense pas que cela la solution est très élégante, et je perds les intervalles de confiance.

Sinon, je pourrais utiliser le paquet multcomp, mais j'obtiens des résultats similaires. Quelqu'un peut-il m'aider avec une meilleure solution? Merci beaucoup.

+0

Merci pour le commentaire. Je viens d'éditer pour simplifier. –

Répondre

0

Une façon d'obtenir les intervalles ferait la régression avec des différences:

bweighti=bweight-3200 
wgaini=wgain-pred_val[1,1] 
P1i<-data.frame(bweighti=c(3700-3200)) 
pred_vali<-predict(lm(wgaini~bweighti),newdata = P1i,interval = "confidence") 
pred_vali 
+0

Merci @Robert. C'est aussi la solution que j'ai finalement trouvée. Cela résout le problème. –