MuMIn包中AICc函数与手动计算的AICc是否等价?
手动计算AICc与MuMIn包AICc的对比验证
由于运行环境为R 3.6.3,该版本已不再被MuMIn包支持,且将代码适配到R>4.2.0的难度较大,因此手动实现AICc(校正AIC)的计算,并与MuMIn包中的AICc(model)结果做对比验证。
手动计算的R代码如下:
model <- lm(Y~., df) # df包含自变量向量和响应变量Y n <- nrow(model$model) k <- length(model$coefficients)+1 aicc <- -2*stats::logLik(model)[1]+2*k+2*k*(k+1)/(n-k-1)
代码说明
model <- lm(Y~., df):拟合包含所有自变量的线性回归模型,df为包含响应变量Y和所有自变量的数据框n <- nrow(model$model):获取模型使用的有效样本量(即参与拟合的观测数)k <- length(model$coefficients)+1:计算模型的总参数数,其中length(model$coefficients)为模型系数个数(含截距),加1是为了纳入误差项的方差参数aicc <- ...:按照AICc校正公式计算,公式逻辑为:$AICc = -2\log(L) + 2k + \frac{2k(k+1)}{n-k-1}$,其中$\log(L)$为模型的对数似然值
内容的提问来源于stack exchange,提问作者Long
相关产品推荐
相关产品推荐

