161 個の観測値を持つ 151 個の変数を含むデータ セットに対して、次の操作を実行しました。
> library(DAAG)
> fit <- lm(RT..seconds.~., data=cadets)
> cv.lm(df = cadets, fit, m = 10)
そして、次の結果を得ました: -
fold 1
Observations in test set: 16
7 11 12 24 33 38 52 67 72
Predicted 49.6 44.1 26.4 39.8 53.3 40.33 47.8 56.7 58.5
cvpred 575.0 -113.2 640.7 -1045.8 876.7 -5.93 2183.0 -129.7 212.6
RT..seconds. 42.0 44.0 44.0 45.0 45.0 46.00 49.0 56.0 58.0
CV residual -533.0 157.2 -596.7 1090.8 -831.7 51.93 -2134.0 185.7 -154.6
私がやりたいのは、予測結果を実際の実験結果と比較することです。そのため、2 つのグラフを相互にプロットして、それらがどれほど類似しているかを示すことができます。cvpred ではなく、Predicted 行の値を予測結果として使用することでこれを行うと思いますか?
キャレットパッケージでまったく同じことを実行したときに、予測値と観測値が互いにはるかに異なることが判明したため、これを尋ねるだけです:-
library(caret) ctrl <- trainControl(method = "cv", savePred=T, classProb=T) mod <- train(RT..seconds.~., data=cadets, method = "lm", trControl = ctrl) mod$pred
pred obs rowIndex .parameter Resample
1 141.2 42 6 none Fold01
2 -504.0 42 7 none Fold01
3 1196.1 44 16 none Fold01
4 45.0 45 27 none Fold01
5 262.2 45 35 none Fold01
6 570.9 52 58 none Fold01
7 -166.3 53 61 none Fold01
8 -1579.1 59 77 none Fold01
9 2699.0 60 79 none Fold01
最初は 1664 個の変数から開始し、ランダム フォレストを使用してモデルを減らしたため、モデルはこのように不正確であってはなりません。変数の重要度が 1 より大きい変数のみが使用され、データセットが 162 * 1664 から 162 に大幅に減少しました。 * 151.
誰かが私にこれを説明できたら、私は感謝します、ありがとう