STATA计算AIC、BIC、MSE、MAE、MAPE值

用STATA做普通的回归时,计算AIC、BIC、MSE、MAE、MAPE并不难,甚至像MSE这样的都会直接给出,但是比如做logit、probit或者mlogit、mprobit甚至ologit、oprobit时,上述五个就不太容易了,在网上搜集了很久,也走了不少弯路。现将方法及代码整理如下:

1.计算AIC、BIC

在做完回归后,紧跟

estat ic

即可得到AIC、BIC
忘记在哪看的了,有人说用 qui reg y x1 x2 再跟 fitstat(使用这2条命令需要安装fitstat)来得到AIC、BIC,我通过 R 做出来的结果验证了 AIC 是正确的,但这个命令得到的BIC感觉并不对(未验证)。除此之外,该命令还能得到其他的一些数值比如 LR,Log-Lik,R2。但是该命令无法用于多分类的 logit、probit 回归。所以有局限性,不如estat ic好用。

2.用代码计算MSE

像 logit、probit、mlogit、mprobit、ologit、oprobit 这样的回归结果是没有 MSE 的,其实我个人感觉也用不着看这些值,但是姑且列上吧
做完回归后,紧跟

predict e,xb
gen mse=(x-e)*(x-e)
sum mse

解释一下,predict e,xb 命令用来创建一个名为e的变量,里面的的数是根据自变量得到的预测值。gen mse=(x-e)*(x-e) 这个命令尽管叫 mse,但并不是真的 mse,而仅仅是得到每一个观测值与预测值的残差的平方,最后一个 sum mse 出来的均值 mean 才是我们最后要得到的MSE

3.用代码计算MAE

MAE公式如下
这里写图片描述

根据这个公式,我们编写代码来计算这个值

gen mae=abs(x-e)
sum mae

同样,最后 sum mae 得到的均值才是我们要的 MAE

4.用代码计算MAPE

MAPE的计算公式如下
这里写图片描述
由此计算 MAPE 的公式是

gen mape=abs(x-e)/x
sum mape

同样,最后 sum mape 得到的均值才是我们要的 MAPE

你可能感兴趣的:(STATA)