我一直在主题行中收到错误消息。我正在使用R中的应用程序“统计学习简介”一书,似乎必须完成本书的所有内容。我甚至将代码中的代码直接复制并粘贴到R Studio中,它仍会拍摄错误消息。我将在这里粘贴我的代码。提前谢谢你的帮助。
library(ISLR)
attach(Smarket)
glm.fit=glm(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Lag5 + Volume,
family=binomial)
summary(glm.fit)
glm.probs=predict(glm.fit, type = "response")
glm.probs[1:10]
glm.pred=rep("Down", 1250)
glm.pred[glm.probs>.5] = "Up"
glm.pred
table(glm.pred, Direction)
mean(glm.pred==Direction)
train=(Year>2005)
Smarket.2005=Smarket[!train,]
dim(Smarket.2005)
Direction.2005=Direction[!train]
glm.fit = glm(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Lag5 + Volume, family = binomial, subset = train)
它在最后一行(glm.fit =)之后发出错误。
错误消息(再次):model.matrix.default中的错误(mt,mf,对比): 变量1没有水平
答案 0 :(得分:2)
查看Year
变量的分布:
> table(Year)
Year
2001 2002 2003 2004 2005
242 252 252 252 252
没有行的值大于2005年。
所以当你定义火车时:
train=(Year>2005)
对于向量的每个元素,该条件的计算结果为FALSE
。
在subset = train
调用中指定glm
时,您选择的是没有行的子集。