[解決済み] VIF(Variance Inflation Factor)算出時の誤差
2022-02-02 23:06:06
質問事項
Rstudioで小さなデータセットに対してVIFを計算すると、以下のエラーが発生します。どなたか教えてください。必要であれば、データセットの詳細な情報を提供します。
as.vector(y)でエラー - mean(y) non-numeric argument to binary 演算子"を使用しています。
データセット 観測値80、変数15(すべて数値)
実施した手順
# 1. Determine correlation
library(corrplot)
cor.data <- cor(train)
corrplot(cor.data, method = 'color')
cor.data
# 2. Build Model
model2 <- lm(Volume~., train)
summary(model2)
# 3. Calculate VIF
library(VIF)
vif(model2)
以下は、20個の観測データを持つサンプルデータセットです。
train <- structure(list(Price = c(949, 2249.99, 399, 409.99, 1079.99,
114.22, 379.99, 65.29, 119.99, 16.99, 6.55, 15, 52.5, 21.08,
18.98, 3.6, 3.6, 174.99, 9.99, 670), X.5.Star.Reviews. = c(3,
2, 3, 49, 58, 83, 11, 33, 16, 10, 21, 75, 10, 313, 349, 8, 11,
170, 15, 20), X.4.Star.Reviews. = c(3, 1, 0, 19, 31, 30, 3, 19,
9, 1, 2, 25, 8, 62, 118, 6, 5, 100, 12, 2), X.3.Star.Reviews. = c(2,
0, 0, 8, 11, 10, 0, 12, 2, 1, 2, 6, 5, 13, 27, 3, 2, 23, 4, 4
), X.2.Star.Reviews. = c(0, 0, 0, 3, 7, 9, 0, 5, 0, 0, 4, 3,
0, 8, 7, 2, 2, 20, 0, 2), X.1.Star.Reviews. = c(0, 0, 0, 9, 36,
40, 1, 9, 2, 0, 15, 3, 1, 16, 5, 1, 1, 20, 4, 4), X.Positive.Service.Review. = c(2,
1, 1, 7, 7, 12, 3, 5, 2, 2, 2, 9, 2, 44, 57, 0, 0, 310, 3, 4),
X.Negative.Service.Review. = c(0, 0, 0, 8, 20, 5, 0, 3, 1,
0, 1, 2, 0, 3, 3, 0, 0, 6, 1, 3), X.Would.consumer.recommend.product. = c(0.9,
0.9, 0.9, 0.8, 0.7, 0.3, 0.9, 0.7, 0.8, 0.9, 0.5, 0.2, 0.8,
0.9, 0.9, 0.8, 0.8, 0.8, 0.8, 0.7), X.Shipping.Weight..lbs.. = c(25.8,
50, 17.4, 5.7, 7, 1.6, 7.3, 12, 1.8, 0.75, 1, 2.2, 1.1, 0.35,
0.6, 0.01, 0.01, 1.4, 0.4, 0.25), X.Product.Depth. = c(23.94,
35, 10.5, 15, 12.9, 5.8, 6.7, 7.9, 10.6, 10.7, 7.3, 21.3,
15.6, 5.7, 1.7, 11.5, 11.5, 13.8, 11.1, 5.8), X.Product.Width. = c(6.62,
31.75, 8.3, 9.9, 0.3, 4, 10.3, 6.7, 9.4, 13.1, 7, 1.8, 3,
3.5, 13.5, 8.5, 8.5, 8.2, 7.6, 1.4), X.Product.Height. = c(16.89,
19, 10.2, 1.3, 8.9, 1, 11.5, 2.2, 4.7, 0.6, 1.6, 7.8, 15,
8.3, 10.2, 0.4, 0.4, 0.4, 0.5, 7.8), X.Profit.margin. = c(0.15,
0.25, 0.08, 0.08, 0.09, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05,
0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.15), Volume = c(12,
8, 12, 196, 232, 332, 44, 132, 64, 40, 84, 300, 40, 1252,
1396, 32, 44, 680, 60, 80)), .Names = c("Price", "X.5.Star.Reviews.",
"X.4.Star.Reviews.", "X.3.Star.Reviews.", "X.2.Star.Reviews.",
"X.1.Star.Reviews.", "X.Positive.Service.Review.", "X.Negative.Service.Review.",
"X.Would.consumer.recommend.product.", "X.Shipping.Weight..lbs..",
"X.Product.Depth.", "X.Product.Width.", "X.Product.Height.",
"X.Profit.margin.", "Volume"), row.names = c(NA, 20L), class = "data.frame")
解決方法は?
その
vif
関数から
VIF
パッケージは、Variance Inflation Factor(VIF)を推定しません。 "線形モデルのための変数を選択します"線形モデルを構築するための変数のサブセットを返します;"を参照してください。
こちら
をご覧ください。
欲しいのは
vif
関数から
car
パッケージを使用します。
install.packages("car")
library(car)
vif(model2) # This should do it
編集部:統計の面では特にコメントしませんが、完全にフィットしているように見えますが、これは非常に珍しいことで、データに何らかの問題があることを示唆しています。
関連
-
[解決済み】R: 複数行の ggplot2 コマンドで「単項演算子エラー」が発生する。
-
[解決済み】基本 - T-検定 -> グループ化因子は正確に2水準でなければならない
-
[解決済み】エラー。Rの次元数が正しくない
-
[解決済み] テスト
-
[解決済み】Rエラー。"新しい列は既存の列の後に穴を空ける"
-
[解決済み】データのマージ - fix.by(by.x, x)のエラー)
-
[解決済み] lmer エラー: グループ化係数は観測数未満でなければならない
-
[解決済み】行列式で「数値/複雑な行列/ベクトルの引数を必要とする」というエラーが発生する?
-
[解決済み】Rで相対的な頻度をプロットするためにhistをどのように使用しますか?
-
[解決済み] 情報を損なわずに因数を整数値に変換するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】knitrのドキュメントでinstall.packagesが失敗する。"ミラーを設定せずにCRANを使おうとしている"
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み】値を置き換えようとすると、"データフレームの添え字の割り当てで欠損値は許可されない"
-
[解決済み】Rでの関数の最適化(L-BFGS-Bでは'fn'に有限の値が必要)。
-
[解決済み】ロジスティック回帰 - eval(family$initialize) : y 値は 0 <= y <= 1 である必要があります。
-
[解決済み] [Solved] read.csv warning 'EOF within quoted string' prevents complete reading of file.
-
[解決済み】 eval(expr, envir, enclos) でのエラー : オブジェクトが見つかりません。
-
[解決済み】"object not interpretable as a factor "というエラーの意味は?[クローズド]
-
[解決済み】'NULL'型の非(リストまたはベクトル)に適用されるis.na()は何を意味するのか?
-
[解決済み] Rの再現性のある優れた例題の作り方