R: anova或linear model 的 MAPE计算
来源:互联网 发布:java课设心得体会 编辑:程序博客网 时间:2024/05/17 22:53
在R的summary()基本功能里,对class为“lm"的数据是不提供MAPE的统计值的。有时候会需要自己去计算。
MAPE全称是Mean Absolute Percentage Error。 MAPE常用于统计与时间序列相关的模拟及预测的精确程度。而有时候在做时间序列类型的模型时,由于条件限制,并不一定会使用时间序列的理论去全盘套用,而是对数据做一些时间序列相关的变形(如carry over),然后用回归分析做模型,这时候想要看MAPE值,summary()是无法提供的(因为summary()在对线性模型进行总结的时候,是不考虑时间序列的统计值的,同理也可以知道Durbin Watson Test也是无法通过summary()直接得到的)。
MAPE的公式为:
At是被解释变量的实际值,而Ft是被解释变量的模拟/预测值。
由公式可知At - Ft即为残差Residual。用R进行coding时可进行简化。
那么接下来只需要读取公式中的每个元素,并计算平均值就可以了:
第一步:提取残差
在R的基本library里,有两种方法可以直接得到残差值summary{base}和proj{stats}:
方法一: summary()$residual:
resid <- summary(model)$residuals# residuals作为summary()中print outlist中的独立项,可直接用$读取# 可参考str(summary(model))方法二: 读取proj()的最后一列.
prjc <- proj(model)resid <- prjc[, ncol(prjc)]# residual列在projection后print out数据的最后一列,无法用$读取# 可以结合 summary(proj(model))以及str(proj(model))做参考第二步:提取对应被解释变量观测值
第二步需要留心的是,做linear model时,lm()经常会被要求忽略NA值(即missing value, lm()函数中相关参数为na.action = na.exclude),这些missing value不会被计入模型,那么我们在提取At时,也不能保留那些解释变量中有missing value的观测值所对应的被解释变量的观测值。这要如何做到呢?
在做第一步的时候,你会观察到,计入模型的有效观测值的条目会作为行名字存入matrix中(proj()),或者作为向量值得对应名称存入向量中(summary()$residuals)。当proj()中的residual被单独提取出来时,这一列的数据也变成一个向量。也就是说,做完第一步的处理之后,我们可以用names(resid)来读取residual对应的行数,然后从被解释变量中提取对应位置的数值即可。
active.row <- as.numeric(names(resid))# names()得到的是character值,需要将数据类型从character转换成numericA_t <- data$resp.var[active.row]# data - 建立model用的数据集# resp.var - model中的被解释变量第三步:At中0值替换
有时候,计算MAPE时会碰到这种情况,即At在某行的数据为0,这样,Residual/At的到的结果就变成了一个无限值Inf。这种情况下,0值需要被替换成At的均值。
A_t[which(A_t == 0)] <- mean(A_t)第四步:计算MAPE
进行完前三步之后,我们求得residual的绝对值,再进行一个简单的向量间除法,就可以得到一个包含所有观测值对应的Absolute Percentage Error。再对此向量求mean值,就是我们最终需要的MAPE了
mape <- mean(abs(resid)/A_t)print(mape)
- R: anova或linear model 的 MAPE计算
- R语言方差分析ANOVA
- Java调用基于 R 的 One-Way ANOVA检测
- anova
- [DL]基于Pytorch的Linear classified model
- generalized linear model, GLM
- Global Linear Model
- 1- Simple Linear Model
- 2. Linear Model
- 线性模型(Linear Model)
- 双因子方差分析:R中的双因子ANOVA
- R语言中两个数组(或向量)的外积如何计算
- R语言销售分析计算某商品的连带或连带率指标函数
- From-Linear-Model-to-Generalized-Linear-Model-Part 1
- 道路模型--linear-parabolic model
- 线性模型(linear model)
- 算法的评价标准:ROC,假阳性,mape
- 或||的计算
- ios tableview 那些事(二十六)UITableViewController 多选操作
- Android平台Cocos2d-x读取相册图片信息。
- jquery - 左边栏菜单隐藏/显示
- 我使用过的Linux命令之join - 根据关键字合并数据文件
- iOS平台添加Google Admob -1/2(Unity3D开发之七)
- R: anova或linear model 的 MAPE计算
- cocos2d开发学习一:开发环境搭建以及入门学习资源
- POJ 1836 Alignment
- freematics, arduino(open source hardware) + telematics for vehicle obd
- Hibernate_14_数据连接池的使用
- select 字句
- 谷歌地图打不开的解决办法
- centos ssh内网登录慢及vsftpd登录慢的解决办法
- 第十课:Activity 及其子类的使用四:配置 Activity