首页 > 解决方案 > glmnet 错误 (nulldev == 0) stop("y 是常数;高斯 glmnet 在标准化步骤失败")

问题描述

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

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

> glmnet(x.design, y, thresh=1e-11)

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

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

我访问并阅读

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

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

有人可以提出解决方案吗?

标签: rregressionlinear-regressionglmnetlasso-regression

解决方案


您的响应向量似乎y是恒定的。GLMNET 试图对其进行标准化(可能减去均值,然后除以当前标准差),但不能因为标准差为 0。打印 y 及其方差以确保。

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


推荐阅读