R:模拟数据的 GLM 函数错误
R: GLM function error with simulated data
我有两个模拟数据向量如下:
x = rnorm(1000, mean = 0, sd = 1)
eps = rnorm(1000, mean = 0, sd = sqrt(0.25))
我正在尝试使用启动库的 glm
和 cv.glm
函数来拟合线性回归模型和多元线性回归模型,并使用留一法交叉验证或 k 折交叉验证.我使用的错误代码如下:
> glm.fit=glm(y~x)
> cv.err=cv.glm(x, glm.fit)
Error in if ((K > n) || (K <= 1)) stop("'K' outside allowable range") :
missing value where TRUE/FALSE needed
我确实使用 is.na(x)
检查并确认不存在空值。谁能为此提出解决方案或指出我做错了什么?
提前致谢。
对于glm()
,您可以从环境中获取x
和y
,但是对于cv.glm,它无法访问这些对象,因为它是运行 在另一个环境下。也许检查这个 or this book chapter
如果我运行你的代码我得到同样的错误:
library(boot)
set.seed(111)
x = rnorm(1000, mean = 0, sd = 1)
y = rnorm(1000, mean = 0, sd = sqrt(0.25))
glm.fit=glm(y~x)
cv.err=cv.glm(x, glm.fit)
Error in if ((K > n) || (K <= 1)) stop("'K' outside allowable range") :
missing value where TRUE/FALSE needed
如果我将它们放入 data.frame 中,它将起作用:
da = data.frame(x=x,y=y)
glm.fit=glm(y~x)
cv.err=cv.glm(da, glm.fit,K=5)
cv.err$delta
[1] 0.2428287 0.2426424
我有两个模拟数据向量如下:
x = rnorm(1000, mean = 0, sd = 1)
eps = rnorm(1000, mean = 0, sd = sqrt(0.25))
我正在尝试使用启动库的 glm
和 cv.glm
函数来拟合线性回归模型和多元线性回归模型,并使用留一法交叉验证或 k 折交叉验证.我使用的错误代码如下:
> glm.fit=glm(y~x)
> cv.err=cv.glm(x, glm.fit)
Error in if ((K > n) || (K <= 1)) stop("'K' outside allowable range") :
missing value where TRUE/FALSE needed
我确实使用 is.na(x)
检查并确认不存在空值。谁能为此提出解决方案或指出我做错了什么?
提前致谢。
对于glm()
,您可以从环境中获取x
和y
,但是对于cv.glm,它无法访问这些对象,因为它是运行 在另一个环境下。也许检查这个
如果我运行你的代码我得到同样的错误:
library(boot)
set.seed(111)
x = rnorm(1000, mean = 0, sd = 1)
y = rnorm(1000, mean = 0, sd = sqrt(0.25))
glm.fit=glm(y~x)
cv.err=cv.glm(x, glm.fit)
Error in if ((K > n) || (K <= 1)) stop("'K' outside allowable range") :
missing value where TRUE/FALSE needed
如果我将它们放入 data.frame 中,它将起作用:
da = data.frame(x=x,y=y)
glm.fit=glm(y~x)
cv.err=cv.glm(da, glm.fit,K=5)
cv.err$delta
[1] 0.2428287 0.2426424