だから私は少し前に同様の問題を抱えていて、誰かが私にデータセットを減らすように提案しました。最初は 1664 個の変数がありましたが、現在は 153 個しかありません。153 個の記述子に対して、保持時間と呼ばれる従属変数間の一般的な線形モデルをプロットしようとしています。記述子に対する保持時間の例が 160 あるので、160 x 153 のデータセットです。次に、モデルに対して 5 倍の交差検証を実行して精度を確認し、後で予測保持時間を実験保持時間プロットにプロットします。これを行うためにCVtoolsを使用しています。
> library(cvTools)
> cadets <- read.csv("U:/Final Year/CADETS.csv")
> View(cadets)
> folds <- cvFolds(nrow(cadets), K = 5, R = 10)
> fit <- lm(RT..seconds.~., data=cadets)
> folds <- cvFolds(nrow(cadets), K = 5, R = 10)
> repCV(fit, cost = rtmspe, folds = folds, trim = 0.1)
ただし、メッセージが表示されます:-
There were 50 or more warnings (use warnings() to see the first 50)
1: In predict.lm(...) : prediction from a rank-deficient fit may be misleading
2: In predict.lm(...) : prediction from a rank-deficient fit may be misleading
3: In predict.lm(...) : prediction from a rank-deficient fit may be misleading
と続きます。データが共線的であることが原因である可能性があることをどこかで読みました。その場合は PCA を実行することにしましたが、コンポーネントを一緒にプロットした後、それらがすべて異なる方向を向いていることがわかりました。これは、それらが同一直線上にないことを示唆しています。
誰が何が起こっているのか、どこが間違っているのか理解できますか? 使用しているデータベースのごく一部をコピーして貼り付けました。だから私は RT (秒) 対 76_TI2、114_DECC、およびすべての 160 ケースの他のすべての 151 記述子をプロットし、クロス検証を実行しようとしています。
RT (seconds) 76_TI2 114_DECC 120_Lop 212_PCD
38 4.086 1.2 2.322 0
40 2.732 0.815 1.837 1.113
41 4.049 1.153 2.117 2.354
41 4.049 1.153 2.117 3.838
42 4.56 1.224 2.128 2.38
42 2.96 0.909 1.686 0.972
42 3.237 0.96 1.922 1.202
44 2.989 0.8 1.761 2.034
44 1.993 0.5 1.5 0
44 2.957 0.8 1.761 0.988
44 2.597 0.889 1.888 1.916
44 2.428 0.691 1.436 1.848
44 4.049 1.153 2.117 2.354
44 3.108 0.826 1.686 1.826
44 2.416 1 0.714 28.876
44 2.395 0.778 1.73 2.532
45 1.28 0.75 1.124 0
45 1.27 0.625 1.124 0
45 2.666 0.833 1.792 0