R 中 glm 插入符号模型的方差 inflation VIF
Variance inflation VIF for glm caret model in R
我想计算 R 中插入符号 glm 模型的方差 inflation 因子 (VIF)。这是我的代码,数据集来自 UCI:
library(caret)
library(tidyverse)
url <- paste0("https://archive.ics.uci.edu/ml/machine-learning-databases/",
"00267/data_banknote_authentication.txt")
dataset <- read_csv(url, col_names = c("varWav","skeWav","curtWav","entropy","class"))
dataset$class <- as.factor(ifelse(dataset$class == 0,"Authentic","Forgery"))
idx <- createDataPartition(dataset$class, p = 0.8, list = FALSE)
train_set <- dataset[idx,]
test_set <- dataset[-idx,]
notes_model <- train(class ~.,
data = train_set,
method = "glm")
但是当我尝试这段代码时 returns 我出错了:
car::vif(notes_model)
Error in UseMethod("vcov") :
no applicable method for 'vcov' applied to an object of class "c('train', 'train.formula')"
也许我的代码有误?拜托,我们将不胜感激。
您可以提取最终的训练模型,然后计算 vif
:
car::vif(notes_model$finalModel)
varWav skeWav curtWav entropy
63.978111 184.323806 356.526156 1.935005
我想计算 R 中插入符号 glm 模型的方差 inflation 因子 (VIF)。这是我的代码,数据集来自 UCI:
library(caret)
library(tidyverse)
url <- paste0("https://archive.ics.uci.edu/ml/machine-learning-databases/",
"00267/data_banknote_authentication.txt")
dataset <- read_csv(url, col_names = c("varWav","skeWav","curtWav","entropy","class"))
dataset$class <- as.factor(ifelse(dataset$class == 0,"Authentic","Forgery"))
idx <- createDataPartition(dataset$class, p = 0.8, list = FALSE)
train_set <- dataset[idx,]
test_set <- dataset[-idx,]
notes_model <- train(class ~.,
data = train_set,
method = "glm")
但是当我尝试这段代码时 returns 我出错了:
car::vif(notes_model)
Error in UseMethod("vcov") : no applicable method for 'vcov' applied to an object of class "c('train', 'train.formula')"
也许我的代码有误?拜托,我们将不胜感激。
您可以提取最终的训练模型,然后计算 vif
:
car::vif(notes_model$finalModel)
varWav skeWav curtWav entropy
63.978111 184.323806 356.526156 1.935005