R の回帰モデルを使用して単一の値を予測する方法


R で線形回帰モデルを近似するには、次の構文を使用するlm()関数を使用できます。

 model <- lm(y ~ x1 + x2, data=df)

次に、次の構文を使用して、モデルを使用して単一の値を予測できます。

 predict(model, newdata = new)

次の例は、R の近似回帰モデルを使用して単一の値を予測する方法を示しています。

例 1: 単純な線形回帰モデルを使用して予測する

次のコードは、R で単純な線形回帰モデルを近似する方法を示しています。

 #create data
df <- data. frame (x=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),
                 y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))

#fit simple linear regression model
model <- lm(y ~ x, data=df)

また、次のコードを使用して、新しい観測値の応答値を予測できます。

 #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 
25.36364 

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

例 2: 重線形回帰モデルを使用して予測する

次のコードは、R で重線形回帰モデルを近似する方法を示しています。

 #create data
df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),
                 x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14),
                 y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))

#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=df)

また、次のコードを使用して、新しい観測値の応答値を予測できます。

 #define new observation
new <- data.frame(x1=c(5),
                  x2=c(10))

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

       1 
26.17073 

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

新しい値を予測する際の潜在的なエラー

新しい値を予測しようとするときに発生する可能性のある最も一般的なエラーは、回帰モデルの近似に使用したデータ セットの列名が、予測しようとする新しい観測値と同じ列名を持たない場合です。

たとえば、次の重線形回帰モデルを R に当てはめるとします。

 #createdata
df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),
                 x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14),
                 y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))

#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=df)

次に、モデルを使用して、この新しい観測値の応答値を予測しようとするとします。

 #define new observation
new <- data.frame(x_1=c(5),
                  x_2=c(10))

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

Error in eval(predvars, data, env): object 'x1' not found

新しい観測値 (x_1、x_2) の列名が、回帰モデルの適合に使用した元のデータ フレームの列名 (x1、x2) と一致しないため、エラーが発生しました。

追加リソース

R で単純な線形回帰を実行する方法
R で重回帰を実行する方法
R で残差プロットを作成する方法

コメントを追加する

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