Rプログラミングにおけるpredict()関数の使用方法
導入部を日本語で表現すると、「はじめに」となります。
Rのpredict()関数は、入力データに基づいて値を予測するために使用されます。Rプログラムのモデリングのすべての側面は、各々の方法でpredict()関数を利用しますが、ケースに関係なくpredict()関数の機能は同じです。
この記事では、Rのpredict()関数の使い方について探っていきます。
前提条件
このチュートリアルを完了するためには、以下が必要です:
- To have installed R.
Rのpredict()関数の構文
Rのpredict()関数は、入力データに基づいて値を予測するために使用されます。
predict(object, newdata, interval)
- object: The class inheriting from the linear model
- newdata: Input data to predict the values
- interval: Type of interval calculation
predict()関数の例
予測のためにデータが必要です。この例では、Rの組み込みデータセットである「Cars」をインポートすることができます。
df <- datasets::cars
これにより、データフレームに速度と距離の値のコレクションが割り当てられます。
speed dist
1 4 2
2 4 10
3 7 4
4 7 22
5 8 16
6 9 10
7 10 18
8 10 26
9 10 34
10 11 17
次に、このデータを使用してpredict()を使って将来の値を求めます。
最初に、このデータフレームのために線形モデルを計算する必要があります。
# Creates a linear model
my_linear_model <- lm(dist~speed, data = df)
# Prints the model results
my_linear_model
このコードを実行すると、線形モデルの結果が計算されます。
Call:
lm(formula = dist ~ speed, data = df)
Coefficients:
(Intercept) speed
-17.579 3.932
線形モデルは、車の速度を私たちの入力データの振る舞いに基づいて返しました。モデルを持っているので、predict() を適用することができます。
# Creating a data frame
variable_speed <- data.frame(speed = c(11,11,12,12,12,12,13,13,13,13))
# Fiting the linear model
linear_model <- lm(dist~speed, data = df)
# Predicts the future values
predict(linear_model, newdata = variable_speed)
このコードは次の出力を生成します。
1 2 3 4 5
25.67740 25.67740 29.60981 29.60981 29.60981
6 7 8 9 10
29.60981 33.54222 33.54222 33.54222 33.54222
うまくいけば、前のデータと線形モデルの助けを借りて、将来の距離の値を予測することができました。
今、私たちは予測値の「信頼度」レベルをチェックして、予測の正確性を確認する必要があります。
予測された値に対する信頼性
予測関数内の信頼区間は、予測の不確実性を評価するのに役立ちます。
# Input data
variable_speed <- data.frame(speed = c(11,11,12,12,12,12,13,13,13,13))
# Fits the model
linear_model <- lm(dist~speed, data = df)
# Predicts the values with confidence interval
predict(linear_model, newdata = variable_speed, interval = 'confidence')
このコードは次の出力を生成します。
fit lwr upr
1 25.67740 19.96453 31.39028
2 25.67740 19.96453 31.39028
3 29.60981 24.39514 34.82448
4 29.60981 24.39514 34.82448
5 29.60981 24.39514 34.82448
6 29.60981 24.39514 34.82448
7 33.54222 28.73134 38.35310
8 33.54222 28.73134 38.35310
9 33.54222 28.73134 38.35310
10 33.54222 28.73134 38.35310
上記の出力には、予測値の信頼区間を確認することができます。 (Jōki no shutsuryoku ni wa, yosoku-chi no shinrai kukan o kakunin suru koto ga dekimasu.)
この出力から、時速11〜13マイルで走行している車は、19.9から31.3マイルの範囲で走行する可能性があることが予測されます。
結論
過去のデータの振る舞いに基づいて値を予測するために、予測() 関数はデータをモデルに適合させることで用いられます。
予測の正確性を確認するために、信頼区間も利用できます。
参考文献
- R documentation