web-dev-qa-db-ja.com

近似された二次曲線を追加する

フィットした二次曲線をプロットに追加しようとしています。

_abline(lm(data~factor+I(factor^2)))
_

表示される回帰は線形で2次ではなく、次のメッセージが表示されます。

メッセージd'avis:In abline(lm(data〜factor + I(factor ^ 2))、col = palette [iteration]):使用率de deux premiers des 3係数デ回帰

つまり:

3つの回帰係数の最初の2つの使用

lm()関数のみを実行すると、メッセージが表示されません。

以下はサンプルデータです。

_factor <- 1:7
data <- c(0.1375000,0.2500000,0.3416667,0.4583333,0.7250000,0.9166667,1.0000000)
_
11
Remi.b

abline を使用する代わりに、 fitted を使用すると、予測の入力と同じ長さのベクトルが得られます。

fitted(lm(data~factor+I(factor^2)))
#         1         2         3         4         5         6         7 
# 0.1248016 0.2395833 0.3699405 0.5158730 0.6773810 0.8544643 1.0471230 

したがって、次のようなもの:

plot(factor, fitted(lm(data~factor+I(factor^2))), type="l")
11
David Robinson

これにはpredictを使用できます。

plot(factor,data)
lines(predict(lm(data~factor+I(factor^2))))

enter image description here

4

私が使用したデータセットには増加していないx値が含まれているため、これまでのところ、答えを得ることができませんでした(上記のDavid Robinsonが述べたように)。ここに私がそれを解決した方法があります...

require(ISLR)
plot(mpg~horsepower, data=Auto)

# fit the model
glm.fit = glm(mpg~poly(horsepower,2), data=Auto)

# create 100 x-values based on min/max of plotted values
minMax = range(Auto$horsepower)
xVals = seq(minMax[1], minMax[2], len = 100) 

# Use predict based on a dataframe containing 'horsepower'
yVals = predict(glm.fit, newdata = data.frame(horsepower = xVals))

lines(xVals, yVals)
3
Mike

これらすべての貴重な答えをありがとう。注意してください:

使用する

「馬力」を含むデータフレームに基づく予測を使用する

yVals = predict(glm.fit, newdata = data.frame(horsepower=xVals)

「馬力」を含むデータフレームに基づく予測を使用する

yVals = predict(lm.fit, newdata = data.frame(horsepower=xVals)

lm.fitは関数です

0
Souleymane