我在R here和here中看到了几个关于计算MSE的问题,但它们没有回答我的问题.我试着用伽玛分布的glm
(所以,伽玛回归),试着用两种不同的方法计算模型的均方误差.以下是MWE:
set.seed(39756934)
x = rnorm(100)
y = rnorm(100) + 0.5 * x + 3 # Need the +3 for strictly positive y values.
my_data = data.frame(x, y)
my_mod = glm(y~x, data=my_data, family=Gamma()) # Default link is "inverse"
mean(my_mod$residuals^2)
0.01388825
mean((my_data$y - predict(my_mod))^2)
6.954654
使用日志(log)链接给出不同的数字,但这两种方法仍然不一致.
据我所知,这两种方法应该得到相同的结果,但显然不是.怎么回事?是不是哪里有窃听器?或者,这些计算MSE的方法之一对于Gamma回归来说是错误的?
我认为这个问题不属于CrossValiate.SE,因为它更多的是一个代码/编程的问题--除非答案是这些计算MSE的方法之一对于Gamma回归是无效的.但我事先不知道.这个问题肯定会在CrossValiate.SE上结束.