J'essaie de tracer une ligne de régression des moindres carrés en utilisant abline(lm(...))
qui est également forcée de passer par un point particulier. Je vois cette question est liée, mais pas tout à fait ce que je veux. Voici un exemple:
test <- structure(list(x = c(0, 9, 27, 40, 52, 59, 76), y = c(50, 68,
79, 186, 175, 271, 281)), .Names = c("x", "y"))
# set up an example plot
plot(test,pch=19,ylim=c(0,300),
panel.first=abline(h=c(0,50),v=c(0,10),lty=3,col="gray"))
# standard line of best fit - black line
abline(lm(y ~ x, data=test))
# force through [0,0] - blue line
abline(lm(y ~ x + 0, data=test), col="blue")
Cela ressemble à ceci:
Maintenant, comment pourrais-je forcer une ligne à travers le point arbitraire marqué de (x=10,y=50)
tout en minimisant la distance aux autres points?
# force through [10,50] - red line
??
Une solution grossière serait de déplacer l'origine de votre modèle à ce point et de créer un modèle sans interception
nmod <- (lm(I(y-50)~I(x-10) +0, test))
abline(predict(nmod, newdata = list(x=0))+50, coef(nmod), col='red')
Vous pouvez modifier la formule de lm()
et décaler les données:
p=10
q=50
abline(lm(I(y-q) ~ I(x-p) + 0, data=test), col="red")