为什么在岭回归中使用 model.matrix 会减少观察次数?
Why does the number of observations reduce using model.matrix in ridge regression?
我在 R 中使用 glmnet 包进行岭回归。我尝试了 ISLR 包中的 Hitters 数据集。问题是,当我使用 model.matrix 创建设计矩阵时,由于未知原因减少了观察次数。这是代码。
library(ISLR)
library(glmnet)
data("Hitters")
set.seed(1)
train=sample(1:nrow(Hitters), nrow(Hitters)/2)
test=(-train)
train.data = Hitters[train,]
test.data = Hitters[test,]
train.x=model.matrix(Salary~.,train.data)[,-1]
train.y=train.data$Salary
在代码中,我尝试使用所有其他变量来预测工资变量。 train.data 有 161 个观察值,而 train.x 有 131 个。我不明白为什么会发生这种情况,希望得到任何帮助。
您在薪资字段中有 NA
个值。
您可以这样识别问题:
missing.players <- setdiff(rownames(train.data), rownames(train.x))
train.data[missing.players, ]
我在 R 中使用 glmnet 包进行岭回归。我尝试了 ISLR 包中的 Hitters 数据集。问题是,当我使用 model.matrix 创建设计矩阵时,由于未知原因减少了观察次数。这是代码。
library(ISLR)
library(glmnet)
data("Hitters")
set.seed(1)
train=sample(1:nrow(Hitters), nrow(Hitters)/2)
test=(-train)
train.data = Hitters[train,]
test.data = Hitters[test,]
train.x=model.matrix(Salary~.,train.data)[,-1]
train.y=train.data$Salary
在代码中,我尝试使用所有其他变量来预测工资变量。 train.data 有 161 个观察值,而 train.x 有 131 个。我不明白为什么会发生这种情况,希望得到任何帮助。
您在薪资字段中有 NA
个值。
您可以这样识别问题:
missing.players <- setdiff(rownames(train.data), rownames(train.x))
train.data[missing.players, ]