2016-11-30 1 views
0

Je veux observer l'effet d'une variable de traitement sur mon résultat Y. J'ai fait une régression multiple: fit <- lm (Y ~ x1 + x2 + x3). x1 est la variable de traitement et x2, sont les variables de contrôle. J'ai utilisé la fonction de prévision tenant x2 et à leurs moyens. J'ai tracé cette fonction prédictive.R: Prédiction des résultats de la prédiction pour une régression multiple

Maintenant je voudrais ajouter une ligne à ma parcelle semblable à une simple régression abline mais je ne sais pas comment faire cela.

Je pense que je dois utiliser la ligne (x, y) où y = predict et x est une séquence de valeurs pour ma variable x1. Mais R me dit que les longueurs de y et x diffèrent.

Répondre

2

Je pense que vous cherchez termplot:

## simulate some data 
set.seed(0) 
x1 <- runif(100) 
x2 <- runif(100) 
x3 <- runif(100) 
y <- cbind(1,x1,x2,x3) %*% runif(4) + rnorm(100, sd = 0.1) 

## fit a model 
fit <- lm(y ~ x1 + x2 + x3) 

termplot(fit, se = TRUE, terms = "x1") 

enter image description here

termplot utilise predict.lm(, type = "terms") pour la prédiction à long terme sage. Si un modèle a une interception (comme ci-dessus), predict.lm centre chaque terme (What does predict.glm(, type=“terms”) actually do?). De cette manière, chaque terme est prédit être 0 à la moyenne de la covariable, et l'erreur standard à la moyenne est 0 (d'où l'intervalle de confiance croise la ligne à la moyenne).