R-線形回帰
回帰分析は、2つの変数間の関係モデルを確立するために非常に広く使用されている統計ツールです。これらの変数の1つは予測変数と呼ばれ、その値は実験を通じて収集されます。もう1つの変数は応答変数と呼ばれ、その値は予測変数から導出されます。
線形回帰では、これら2つの変数は方程式によって関連付けられます。ここで、これらの変数の両方の指数(累乗)は1です。数学的には、線形関係はグラフとしてプロットされたときに直線を表します。変数の指数が1に等しくない非線形関係は、曲線を作成します。
線形回帰の一般的な数式は次のとおりです。
y = ax + b
以下は、使用されるパラメーターの説明です-
y は応答変数です。
x は予測変数です。
a そして b 係数と呼ばれる定数です。
回帰を確立する手順
回帰の簡単な例は、身長がわかっているときに人の体重を予測することです。これを行うには、人の身長と体重の関係が必要です。
関係を作成する手順は次のとおりです。
高さと対応する重量の観測値のサンプルを収集する実験を実行します。
を使用して関係モデルを作成します lm() Rで機能します。
作成したモデルから係数を見つけ、これらを使用して数式を作成します
関係モデルの要約を取得して、予測の平均誤差を把握します。とも呼ばれているresiduals。
新しい人の体重を予測するには、 predict() Rの関数。
入力データ
以下は、観測値を表すサンプルデータです-
# Values of height
151, 174, 138, 186, 128, 136, 179, 163, 152, 131
# Values of weight.
63, 81, 56, 91, 47, 57, 76, 72, 62, 48
lm()関数
この関数は、予測変数と応答変数の間の関係モデルを作成します。
構文
の基本構文 lm() 線形回帰の関数は−です
lm(formula,data)
以下は、使用されるパラメーターの説明です-
formula xとyの関係を表す記号です。
data 式が適用されるベクトルです。
関係モデルを作成し、係数を取得します
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
# Apply the lm() function.
relation <- lm(y~x)
print(relation)
上記のコードを実行すると、次の結果が生成されます-
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
-38.4551 0.6746
関係の概要を取得する
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
# Apply the lm() function.
relation <- lm(y~x)
print(summary(relation))
上記のコードを実行すると、次の結果が生成されます-
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-6.3002 -1.6629 0.0412 1.8944 3.9775
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -38.45509 8.04901 -4.778 0.00139 **
x 0.67461 0.05191 12.997 1.16e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.253 on 8 degrees of freedom
Multiple R-squared: 0.9548, Adjusted R-squared: 0.9491
F-statistic: 168.9 on 1 and 8 DF, p-value: 1.164e-06
予測()関数
構文
線形回帰におけるpredict()の基本的な構文は次のとおりです。
predict(object, newdata)
以下は、使用されるパラメーターの説明です-
object は、lm()関数を使用してすでに作成されている式です。
newdata 予測変数の新しい値を含むベクトルです。
新しい人の体重を予測する
# The predictor vector.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
# The resposne vector.
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
# Apply the lm() function.
relation <- lm(y~x)
# Find weight of a person with height 170.
a <- data.frame(x = 170)
result <- predict(relation,a)
print(result)
上記のコードを実行すると、次の結果が生成されます-
1
76.22869
回帰をグラフィカルに視覚化する
# Create the predictor and response variable.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
relation <- lm(y~x)
# Give the chart file a name.
png(file = "linearregression.png")
# Plot the chart.
plot(y,x,col = "blue",main = "Height & Weight Regression",
abline(lm(x~y)),cex = 1.3,pch = 16,xlab = "Weight in Kg",ylab = "Height in cm")
# Save the file.
dev.off()
上記のコードを実行すると、次の結果が生成されます-