假设在您的特定情况下没有什么特别的,我认为使用默认值(均方误差)或使用日志误差的均值,甚至使用卡方误差都是一个很好的论据。
成本函数的目的是表示您对错误的预测有多“烦恼”,特别是什么“错误”最困扰您。这对于二进制响应特别重要,但在任何情况下都可能很重要。
均方误差(响应)
C=1n∑i(Yi−Y^i)2
使用MSE,您对上下误差均同样敏感,对大小预测也同样敏感。这是很标准的事情,因此我认为在大多数情况下不会皱眉。
均方误差(对数响应)
C=1n∑i(lnYi−lnY^i)2
因为您正在处理计数数据,所以可以说您不是对称的,也不是大小无关的。对于10的预测,以10计的计数与1000的预测相差很大。这是某种“规范的”成本函数,因为您已将成本与链接函数进行了匹配。这样可以确保成本与模型中假设的方差分布相匹配。
卡方误差
C=1n∑i(Yi−Y^i)2Y^i
第三种方法是使用卡方误差。如果将GLM与其他基于计数的模型进行比较,这可能会特别有吸引力-尤其是在GLM中存在某些因素的情况下。与错误日志响应类似,这将随大小而定,但在预测计数周围是对称的。您现在正在根据百分比误差评估拟合优度。
论离散
该问题引用了文档示例,其中它们具有二进制响应变量,因此请使用其他成本函数。二进制响应的问题在于,即使响应始终精确地为0或1,GLM也会预测一个介于0和1之间的实数。完全正确的说法是,该数字越接近正确的响应就越好。预测,但通常人们不希望如此。这样做的理由是,一个人通常必须表现为0或1,因此将取小于0.5的任何值作为0的预测。在这种情况下,简单地计算“错误”的预测数是有道理的。这里的论点是,对于是非题,你只能是对是错—没有错的等级。
Y^
cv.glmnet
在包装glmnet
使用type.measure="deviance"
的泊松家庭。