読者です 読者をやめる 読者になる 読者になる

遊覧飛行ーワインとゲームー

都内某所で働くゲームクリエイターのブログ。ゲームやビジネスに関する話題、シリアスゲームの紹介、作成したゲームの公開、ワインに関する記事など徒然なるままに書き記していきます。

R の caret パッケージメモ~train:caret 線形回帰~

R で "caret" パッケージを使い始めたので、その備忘録です。
まずは、線形回帰分析 (lm) の仕方をメモ。

 

最初に、"caret" パッケージをインストール。
"caret" をライブラリ化すると、合わせて "lattice", "ggplot2" もロードされます。 

> install.pachages("caret")

> library(caret)

  

今回は、車が停滞するまでに必要な距離(速度別)のデータである "cars" を使用します。
※余談ですが、このデータは 1920年代に測定されたものだそうです。

> dim(cars)
[1] 50 2


> head(cars)
   speed  dist
1        4      2
2        4    10
3        7      4
4        7    22
5        8    16
6        9    10

 

 

モデル構築を行うには "train関数" を使用します。

> cars.lm <- train(

 + data = cars,        # 元となるデータを選択

 + dist ~ .,               # 結果変数と説明変数を選択

 + method = "lm")   # モデル選択。線形回帰は "lm"

  

モデルの評価は "RMSE" の値を確認します。
この値が小さいほど、モデルの性能がいいことを示します。

> cars.lm
Linear Regression

50 samples
1 predictor

No pre-processing
Resampling: Bootstrapped (25 reps)
Summary of sample sizes: 50, 50, 50, 50, 50, 50, ...
Resampling results:

RMSE Rsquared
15.16135 0.6679958

Tuning parameter 'intercept' was held constant at a value of TRUE

 

cars.lm のサマリーを表示。ここは普通に lm関数を使った時と同じかと。

> summary(cars.lm)

Call:
lm(formula = .outcome ~ ., data = dat)

Residuals:
Min 1Q Median 3Q Max
-29.069 -9.525 -2.272 9.215 43.201

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -17.5791 6.7584 -2.601 0.0123 *
speed 3.9324 0.4155 9.464 1.49e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 15.38 on 48 degrees of freedom
Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438
F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12

 

散布図に回帰直線を引く際は "lattice" パッケージ中の "xyplot関数" を使用します。
"lattice" パッケージは "caret" をロードする際に合わせてロードされます。

> xyplot(dist ~ speed, data = cars, type = c("p", "r"), col.line = "red",
+ main = "speed x dist (cars)")

 

f:id:ngyope:20160829235947j:plain

広告を非表示にする