为什么在岭回归中使用model.matrix减少观察数量?

问题描述 投票:0回答:1

我在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个。我不明白为什么会发生这种情况,并希望得到任何帮助。

r regression glmnet lasso regularized
1个回答
1
投票

您在Salary字段中有NA值。

您可以像这样识别问题:

missing.players <- setdiff(rownames(train.data), rownames(train.x))
train.data[missing.players, ]
© www.soinside.com 2019 - 2024. All rights reserved.