2013-04-22 20 views
14

abline(lm(...))を使用して最小二乗回帰直線を描画しようとしていますが、これもまた特定の点を通過する必要があります。私はthis questionが関連しているのを見ていますが、私が望むものではありません。ここでは例です:今、どのように私はまだ他の点までの距離を最小限に抑えながら(x=10,y=50)のマーク任意の点を通る線を強制的に行くかR描画(abline + lm)任意の点を通る最良線の線

enter image description here

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") 

これは次のようになりますか?

# force through [10,50] - red line 
?? 

答えて

13

ラフソリューションは、その時点までに、あなたのモデルのための原点をシフトし、あなたがlm()のための計算式を変更して相殺することができます

nmod <- (lm(I(y-50)~I(x-10) +0, test)) 

abline(predict(nmod, newdata = list(x=0))+50, coef(nmod), col='red') 

enter image description here

+0

ニース。それほど難解ではないようです。 – thelatemail

+0

粗い?計算の観点からではなく、むしろ統計的な観点からのものです。あなたはBill Venables(Venables/Ripley MASSのように)によって件名にいくつかの暴言を見つけます。 –

+0

これは私が言ったことです。 – mnel

3

なし切片でモデルを作成することですデータ:

p=10 
q=50 

abline(lm(I(y-q) ~ I(x-p) + 0, data=test), col="red") 
+0

はい。今編集されました。 – Nishanth