Vin*_*ent 4 regression r information-theory lm glm
我试图理解 R 中 AIC/BIC 的结果。出于某种原因,R 在要估计的参数数量上加了 1。2 * p - 2 * logLik因此,R 使用与(在高斯情况下logLik是残差平方和)不同的公式。事实上它使用:2 * (p + 1) - 2 * logLik.
经过研究,我发现问题与stats:::logLik.lm().
> stats:::logLik.lm ## truncated R function body
## ...
## attr(val, "df") <- p + 1
## ...
Run Code Online (Sandbox Code Playgroud)
作为一个真实的例子(使用 R 的内置数据集trees),请考虑:
x <- lm(Height ~ Girth, trees) ## a model with 2 parameters
logLik(x)
## 'log Lik.' -96.01663 (df=3)
Run Code Online (Sandbox Code Playgroud)
这实在令人费解。有人知道为什么吗?
Edit1:glm@crayfish44 的示例
model.g <- glm(dist ~ speed, cars, family=gaussian)
logLik(model.g) # df=3
model.p <- glm(dist ~ speed, cars, family=poisson)
logLik(model.p) #df=2
model.G <- glm(dist ~ speed, cars, family=Gamma)
logLik(model.G) #df=3
Run Code Online (Sandbox Code Playgroud)
编辑2:方法logLik
> methods(logLik)
[1] logLik.Arima* logLik.glm* logLik.lm* logLik.logLik* logLik.nls*
Run Code Online (Sandbox Code Playgroud)
当我们决定检查时,我们实际上已经非常接近答案了stats:::logLik.lm。如果我们进一步检查(感谢 @crayfish44 的 glm 示例:伙计,你太棒了。自从上一篇关于和 的stats:::logLik.glm 帖子以来,你再次给了我灵感。谢谢!)persp()trans3d(),我们就可以解决这个问题。
使用 , 的陷阱:::是我们无法查看代码的注释。所以我决定检查R-3.3.0的源文件。您可以打开该文件R-3.3.0/src/library/stats/R/logLik.R来查看通用函数的注释代码logLik.**。
## log-likelihood for glm objects
logLik.glm <- function(object, ...)
{
if(!missing(...)) warning("extra arguments discarded")
fam <- family(object)$family
p <- object$rank
## allow for estimated dispersion
if(fam %in% c("gaussian", "Gamma", "inverse.gaussian")) p <- p + 1
val <- p - object$aic / 2
## Note: zero prior weights have NA working residuals.
attr(val, "nobs") <- sum(!is.na(object$residuals))
attr(val, "df") <- p
class(val) <- "logLik"
val
}
Run Code Online (Sandbox Code Playgroud)
注意以下几行:
p <- object$rank
## allow for estimated dispersion
if(fam %in% c("gaussian", "Gamma", "inverse.gaussian")) p <- p + 1
Run Code Online (Sandbox Code Playgroud)
p是秩检测后模型系数的效应数。
"gaussian()"、"Gamma()"和"inverse.gaussian()"响应时,自由度加 1,因为我们需要估计指数分布的色散参数。binomial()”和“ poisson()”响应,色散参数已知为1,因此不需要估计。也许?logLik应该考虑解释一下,以防有人像我们一样愚蠢!
| 归档时间: |
|
| 查看次数: |
1460 次 |
| 最近记录: |