R 上 nls 上的 AIC
AIC on nls on R
我在计算 AIC 时遇到问题。事实上,我估计了我的 3 个模型的参数:"mod_linear",这是一个线性模型,"mod_exp" 和 "mod_logis",这是两个非线性模型。
我使用了函数 AIC():
AIC(mod_linear,mod_exp,mod_logis)
df AIC
mod_linear 4 3.015378
mod_exp 5 -11.010469
mod_logis 5 54.015746
但我尝试使用公式 AIC=2k+nlog(RSS/n) 计算 AIC,其中 K 是参数的数量,n 是样本的数量,RSS 是残差平方和。
k=4
n=21
#Calcul of nls for the linear model:
mod_linear=nls(data$P~P_linear(P0,K0,a),data=data,
start=c(P0=4.2,K0=4.5,a=0.)
2*k+n*log(sum(residuals(mod_linear)^2)/n)
-56.58004
如您所见,结果不同,其他两个模型也一样。
有人可以帮助我吗?
此致
您应该始终注意使用 AIC
.
的一致定义
AIC
使用 2k-2*ln(L) 的通常定义。计算对数似然,例如 stats:::logLik.lm
作为 0.5 * (- N * (log(2 * pi) + 1 - log(N) + log(sum(res^2))))
.
一个例子:
fit <- lm(Sepal.Length ~ Sepal.Width, data = iris)
AIC(fit)
#[1] 371.9917
logL <- 0.5 * (- length(residuals(fit)) * (log(2 * pi) + 1 - log(length(residuals(fit))) + log(sum(residuals(fit)^2))))
2 * (fit$rank + 1) - 2 * logL
#[1] 371.9917
但是,help("AIC")
警告:
The log-likelihood and hence the AIC/BIC is only defined up to an
additive constant. Different constants have conventionally been used
for different purposes ... Particular care is needed when comparing
fits of different classes [...].
请参阅 stats:::logLik.nls
了解如何计算 nls
拟合的对数似然。
我在计算 AIC 时遇到问题。事实上,我估计了我的 3 个模型的参数:"mod_linear",这是一个线性模型,"mod_exp" 和 "mod_logis",这是两个非线性模型。
我使用了函数 AIC():
AIC(mod_linear,mod_exp,mod_logis)
df AIC
mod_linear 4 3.015378
mod_exp 5 -11.010469
mod_logis 5 54.015746
但我尝试使用公式 AIC=2k+nlog(RSS/n) 计算 AIC,其中 K 是参数的数量,n 是样本的数量,RSS 是残差平方和。
k=4
n=21
#Calcul of nls for the linear model:
mod_linear=nls(data$P~P_linear(P0,K0,a),data=data,
start=c(P0=4.2,K0=4.5,a=0.)
2*k+n*log(sum(residuals(mod_linear)^2)/n)
-56.58004
如您所见,结果不同,其他两个模型也一样。 有人可以帮助我吗?
此致
您应该始终注意使用 AIC
.
AIC
使用 2k-2*ln(L) 的通常定义。计算对数似然,例如 stats:::logLik.lm
作为 0.5 * (- N * (log(2 * pi) + 1 - log(N) + log(sum(res^2))))
.
一个例子:
fit <- lm(Sepal.Length ~ Sepal.Width, data = iris)
AIC(fit)
#[1] 371.9917
logL <- 0.5 * (- length(residuals(fit)) * (log(2 * pi) + 1 - log(length(residuals(fit))) + log(sum(residuals(fit)^2))))
2 * (fit$rank + 1) - 2 * logL
#[1] 371.9917
但是,help("AIC")
警告:
The log-likelihood and hence the AIC/BIC is only defined up to an additive constant. Different constants have conventionally been used for different purposes ... Particular care is needed when comparing fits of different classes [...].
请参阅 stats:::logLik.nls
了解如何计算 nls
拟合的对数似然。