无“;0”';s生产“;下降时出错(y%*%rep(1,nc))&x201D;

无“;0”';s生产“;下降时出错(y%*%rep(1,nc))&x201D;,r,machine-learning,glm,glmnet,R,Machine Learning,Glm,Glmnet,我试图运行代码glmnet(M,R,family=“binomial”),其中M是大小为(N×k)的数据矩阵,R是二进制值的N维向量。N是样本数,k是变量数。在我的具体例子中,R只是一个1的向量,因为它是我对数据集的唯一响应 如其他一些答案所述,当R包含全部1或全部0时,glmnet抛出以下错误: y%*%rep(1,nc)中出错:参数不一致 为什么会这样,有没有办法避免这个错误glm不会抛出此错误,但对我的数据集严重过度拟合,因此我需要使用glmnet进行正则化 如果需要,我可以提供示例代码

我试图运行代码
glmnet(M,R,family=“binomial”)
,其中M是大小为(N×k)的数据矩阵,R是二进制值的N维向量。N是样本数,k是变量数。在我的具体例子中,R只是一个1的向量,因为它是我对数据集的唯一响应

如其他一些答案所述,当R包含全部1或全部0时,
glmnet
抛出以下错误:

y%*%rep(1,nc)中出错:参数不一致

为什么会这样,有没有办法避免这个错误
glm
不会抛出此错误,但对我的数据集严重过度拟合,因此我需要使用
glmnet
进行正则化

如果需要,我可以提供示例代码


谢谢。

建立一个只有一个可能响应的模型有什么意义?另外,这不是一个编程问题。@m-dz实际上,响应可以是0或1。这在缺少的数据上下文中。所以,假设数据有一个真实的分布。然后还有另一个依赖于“真实”数据的分布,它决定了给定样本丢失的概率。现在,给定另一个分布,我们可以得到一个新的修改过的数据集,其中缺少数据点。在这个新的数据集中,我们只查看响应为“1”的数据点,即没有丢失的数据点。@m-dz这是一个编程问题,因为我只想让
glmnet
发挥其魔力,而不管响应是否都为1。我在stack的另一部分上问了这个问题,他们说这完全是一个编程问题……我同意这是一个编程问题,但@m-dz提出的建模问题似乎仍然适用。如果您所有的训练数据的结果值都为1,则模型将预测您输入的任何其他数据的结果为1的100%概率,包括结果值为0的数据。@Shoogiebaba,然后您的模型应基于原始数据构建。当你在预测一种治疗是否能治愈一种疾病时,你并不仅仅是在给那些已经治愈的例子喂食。在我看来,这仍然是一个实验设计问题,不涉及编程。