R で lm() 関数を使用して線形モデルを近似する方法


R のlm()関数は、線形回帰モデルを近似するために使用されます。

この関数は次の基本構文を使用します。

lm(式、データ、…)

金:

  • 式:線形モデルの式 (例: y ~ x1 + x2)
  • data:データを含むデータ ブロックの名前

次の例は、R でこの関数を使用して次のことを行う方法を示しています。

  • 回帰モデルを当てはめる
  • 回帰モデルの適合性の概要を表示する
  • モデル診断プロットを表示する
  • 近似回帰モデルをプロットする
  • 回帰モデルを使用して予測を行う

回帰モデルを当てはめる

次のコードは、 lm()関数を使用して R で線形回帰モデルを近似する方法を示しています。

 #define data
df = data. frame (x=c(1, 3, 3, 4, 5, 5, 6, 8, 9, 12),
                y=c(12, 14, 14, 13, 17, 19, 22, 26, 24, 22))

#fit linear regression model using 'x' as predictor and 'y' as response variable
model <- lm(y ~ x, data=df)

回帰モデルの概要を表示

次に、 summary()関数を使用して、回帰モデルの適合の概要を表示します。

 #view summary of regression model
summary(model)

Call:
lm(formula = y ~ x, data = df)

Residuals:
    Min 1Q Median 3Q Max 
-4.4793 -0.9772 -0.4772 1.4388 4.6328 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 11.1432 1.9104 5.833 0.00039 ***
x 1.2780 0.2984 4.284 0.00267 ** 
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.929 on 8 degrees of freedom
Multiple R-squared: 0.6964, Adjusted R-squared: 0.6584 
F-statistic: 18.35 on 1 and 8 DF, p-value: 0.002675

モデル内の最も重要な値を解釈する方法は次のとおりです。

  • F 統計量= 18.35、対応するp 値= 0.002675。この p 値は 0.05 未満であるため、モデル全体としては統計的に有意です。
  • 複数の R の 2 乗= 0.6964。これは、応答変数 y の変動の 69.64% が予測変数 x によって説明できることがわかります。
  • x の推定係数: 1.2780。これは、x の各追加単位の増加が y の平均 1.2780 の増加に関連していることを示しています。

次に、出力からの係数推定値を使用して、推定回帰式を作成できます。

y = 11.1432 + 1.2780*(x)

おまけ: R での回帰出力の各値を解釈するための完全なガイドは、 ここで見つけることができます。

モデル診断プロットを表示する

次に、 plot()関数を使用して、回帰モデルの診断プロットをプロットします。

 #create diagnostic plots
plot(model) 

これらのグラフを使用すると、回帰モデルの残差を分析して、モデルがデータに使用するのが適切かどうかを判断できます。

R でモデルの診断プロットを解釈する方法の完全な説明については、このチュートリアルを参照してください。

近似回帰モデルをプロットする

abline()関数を使用して、近似回帰モデルをプロットできます。

 #create scatterplot of raw data
plot(df$x, df$y, col=' red ', main=' Summary of Regression Model ', xlab=' x ', ylab=' y ')

#add fitted regression line
abline(model)

R で lm() をプロットする

回帰モデルを使用して予測を行う

detect()関数を使用して、新しい観測値の応答値を予測できます。

 #define new observation
new <- data. frame (x=c(5))

#use the fitted model to predict the value for the new observation
predict(model, newdata = new)

      1 
17.5332

モデルは、この新しい観測値の応答値が17.5332になると予測します。

追加リソース

R で単純な線形回帰を実行する方法
R で重回帰を実行する方法
R で段階的回帰を実行する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です