R 中的 glmnet 响应变量的比例矩阵是什么样的?

What does a proportional matrix look like for glmnet response variable in R?

我正在尝试使用 glmnet 来拟合具有比例响应变量的 GLM(使用 family="binomial")。

glmnet 的帮助文件说响应变量:

"For family="binomial" 应该是一个因素 两个水平,或计数或比例的双列矩阵(第二列 被视为目标 class"

但我真的不明白我怎么会有一个两列矩阵。我的变量目前只是一个值介于 0 和 1 之间的列。有人可以帮我弄清楚需要如何格式化它以便 glmnet 将 运行 正确吗?另外,你能解释一下目标 class 是什么意思吗?

它是正标签和负标签计数的矩阵,例如在下面的例子中我们拟合了一个模型 ClaimsHolders 中的比例:

data = MASS::Insurance
y_counts = cbind(data$Holders - data$Claims,data$Claims)
x = model.matrix(~District+Age+Group,data=data)

fit1 = glmnet(x=x,y=y_counts,family="binomial",lambda=0.001)

如果可能,您应该回到计算响应变量之前并检索这些计数。如果那不可能,您可以提供一个比例矩阵,第二列表示成功,但这假设所有观察的权重或 n 都相同:

y_prop = y_counts / rowSums(y_counts)
fit2 = glmnet(x=x,y=y_prop,family="binomial",lambda=0.001)