R で regsubsets() を使用してモデルを選択する方法
R のLeapsパッケージのregsubsets()関数を使用して、最適な回帰モデルを生成する予測子変数のサブセットを見つけることができます。
次の例は、この関数を実際に使用する方法を示しています。
例: R でのモデル選択に regsubsets() を使用する
この例では、R に組み込まれているmtcarsデータセットを使用します。これには、32 台の異なる車の 11 個の異なる属性の測定値が含まれています。
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
応答変数としてhpを使用し、次の潜在的な予測変数を使用して回帰モデルを近似したいとします。
- mpg
- 重さ
- たわごと
- qsec
Leapsパッケージのregsubsets()関数を使用して徹底的な検索を実行し、最適な回帰モデルを見つけることができます。
library (leaps)
#find best regression model
bestSubsets <- regsubsets(hp ~ mpg + wt + drat + qsec, data=mtcars)
#view results
summary(bestSubsets)
Subset selection object
Call: regsubsets.formula(hp ~ mpg + wt + drat + qsec, data = mtcars)
4 Variables (and intercept)
Forced in Forced out
mpg FALSE FALSE
wt FALSE FALSE
drat FALSE FALSE
qsec FALSE FALSE
1 subsets of each size up to 4
Selection Algorithm: exhaustive
mpg wt drat qsec
1 ( 1 ) "*" " " " " " "
2 (1) " " "*" " " "*"
3 ( 1 ) “*” “*” “ “ “*”
4 ( 1 ) “*” “*” “*” “*”
結果の下部にある星 ( * ) は、予測子変数の数が異なる可能なモデルごとに、どの予測子変数が最適な回帰モデルに属しているかを示します。
結果を解釈する方法は次のとおりです。
単一の予測子変数を持つモデルの場合、 mpg を予測子変数として使用して最適な回帰モデルが生成されます。
2 つの予測子変数を持つモデルの場合、 wtとqsecを予測子変数として使用して最適な回帰モデルが生成されます。
3 つの予測子変数を持つモデルの場合、 mpg 、 wt 、およびqsecを予測子変数として使用して最適な回帰モデルが生成されます。
4 つの予測子変数を持つモデルの場合、 mpg 、 wt 、 drat 、およびqsecを予測子変数として使用して、最適な回帰モデルが生成されます。
各モデルについて次のメトリクスを抽出することもできることに注意してください。
たとえば、次の構文を使用して、4 つの最良のモデルのそれぞれについて近似された R 二乗値を抽出できます。
#view adjusted R-squared value of each model
summary(bestSubsets)$adjr2
[1] 0.5891853 0.7828169 0.7858829 0.7787005
結果から次のことがわかります。
- mpgを予測子変数として使用したモデルの調整された R 二乗値は0.589です。
- wtとqsecを予測子変数として使用したモデルの調整された R 二乗値は0.783です。
- mp g 、 wt 、およびqsec を予測子変数として使用したモデルの調整された R 二乗値は0.786です。
- 予測子変数としてmpg 、 wt 、 dratおよびqsecを使用したモデルの調整された R 二乗値は0.779です。
これらの値は、モデル内の予測変数の数に基づいて調整された、一連の予測変数が応答変数の値をどの程度正確に予測したかを示します。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。