我试图找出对数似然函数如何用于线性回归。我在这里和这里找到了公式。SSE/n用它做了一些实验(见下面的代码),我对可能性使用而不是MSE( )感到非常惊讶SSE/df。MSE到现在到处都在用!我认为 MSE 是第一个资源(第 6 页)公式中提到的更好估计量- 实际残差。但是第二个资源和我的实验清楚地表明被定义为(其中 n 是结果变量向量的长度)。SSE/n
这是要玩的代码:
set.seed(128)
y = c(rnorm(200, 20, 4), rnorm(300, 30, 4), rnorm(400, 40, 4), rnorm(500, 50, 4))
cat1 = as.factor(c(rep(1, 200), rep(2, 300), rep(3, 400), rep(4, 500)))
rand_order = sample(1:length(cat1))
cat2 = cat1[rand_order]
cat2y = c(rep(1, 200), rep(-2, 300), rep(3, 400), rep(-4, 500))
y = y + cat2y[rand_order]
m1 = lm(y ~ 0 + cat1 + cat2)
# logLik using residual degrees of freedom (-3941.94):
-length(m1$model$y)/2*log(2*pi) - length(m1$model$y)/2*log(sum((m1$residual)^2)/m1$df.residual) - 1/2*m1$df.residual
# logLik using N (-3941.931)
-length(m1$model$y)/2*log(2*pi) - length(m1$model$y)/2*log(sum((m1$residual)^2)/length(m1$model$y)) - 1/2*length(m1$model$y)
# real logLik (-3941.931)
logLik(m1)