Simplemente estoy tratando de recalcular con dnorm () la probabilidad de registro proporcionada por la función logLik de un modelo lm (en R).
Funciona (casi perfectamente) para un gran número de datos (por ejemplo, n = 1000):
> n <- 1000
> x <- 1:n
> set.seed(1)
> y <- 10 + 2*x + rnorm(n, 0, 2)
> mod <- glm(y ~ x, family = gaussian)
> logLik(mod)
'log Lik.' -2145.562 (df=3)
> sigma <- sqrt(summary(mod)$dispersion)
> sum(log(dnorm(x = y, mean = predict(mod), sd = sigma)))
[1] -2145.563
> sum(log(dnorm(x = resid(mod), mean = 0, sd = sigma)))
[1] -2145.563
pero para pequeños conjuntos de datos hay claras diferencias:
> n <- 5
> x <- 1:n
> set.seed(1)
> y <- 10 + 2*x + rnorm(n, 0, 2)
>
> mod <- glm(y ~ x, family = gaussian)
> logLik(mod)
'log Lik.' -8.915768 (df=3)
> sigma <- sqrt(summary(mod)$dispersion)
> sum(log(dnorm(x = y, mean = predict(mod), sd = sigma)))
[1] -9.192832
> sum(log(dnorm(x = resid(mod), mean = 0, sd = sigma)))
[1] -9.192832
Debido al pequeño efecto del conjunto de datos, pensé que podría deberse a las diferencias en las estimaciones de la varianza residual entre lm y glm, pero el uso de lm proporciona el mismo resultado que glm:
> modlm <- lm(y ~ x)
> logLik(modlm)
'log Lik.' -8.915768 (df=3)
>
> sigma <- summary(modlm)$sigma
> sum(log(dnorm(x = y, mean = predict(modlm), sd = sigma)))
[1] -9.192832
> sum(log(dnorm(x = resid(modlm), mean = 0, sd = sigma)))
[1] -9.192832
Donde me equivoco
Gracias Stéphane por la corrección, pero todavía no parece funcionar
—
Gilles
intente mirar el código fuente:
—
asumido el
stats:::logLik.glm
Hice esto, pero esta función simplemente invierte la ranura aic del objeto glm para encontrar la probabilidad de registro. Y no veo nada sobre aic en la función glm ...
—
Gilles
Sospecho que esto tiene algo que ver con LogLik y AIC (que están unidos en la cadera) suponiendo que se estiman tres parámetros (la pendiente, la intersección y el error estándar de dispersión / residual) mientras que el error estándar de dispersión / residual se calcula suponiendo Se estiman dos parámetros (pendiente e intersección).
—
Tom
lm()