glmnet error (nulldev == 0) stop("y 是常数;高斯 glmnet 在标准化步骤中失败")

NM_*_*NM_ 5 regression r lasso-regression linear-regression glmnet

我正在 R 中使用 glmnet 运行以下(截断的)代码

# do a lot of things to create the design matrix called x.design

> glmnet(x.design, y, thresh=1e-11)
Run Code Online (Sandbox Code Playgroud)

其中x.designnxp设计矩阵,其中n > py是使用核密度估计获得的响应的nx 1向量。x.designy都包含真实条目。当我运行我的代码时,收到以下错误消息:

Error in if (nulldev == 0) stop("y is constant; gaussian glmnet fails at 
standardization step") : missing value where TRUE/FALSE needed 
Run Code Online (Sandbox Code Playgroud)

我曾访问过并阅读过

在 R 中运行 glmnet 包,出现错误“缺少 TRUE/FALSE 需要的值”,可能是由于缺少值?

但是我无法找到解决我的问题的方法。

有人可以建议一个解决方案吗?

P. *_*eri 4

看来你的反应向量y是恒定的。GLMNET 尝试对其进行标准化(可能减去平均值,然后除以当前的 stddev),但不能,因为 stddev 为 0。打印 y 及其方差以确保确定。

您还应该检查您的内核估计过程。

  • 原来问题是 y 中有 NaN (2认同)