【发布时间】:2021-07-07 15:37:16
【问题描述】:
我有两个具有相同维度的数据矩阵。我想提取同一系列的列向量。然后将两个序列作为向量,然后计算不同的误差,例如平均绝对误差(mae)、平均百分比误差(mape)和均方根误差
(rmse)。我的数据矩阵维度很大,所以我尝试用一个例子来解释并手动计算这些错误:
mat1<- matrix(6:75,ncol=10,byrow=T)
mat2<- matrix(30:99,ncol=10,byrow=T)
mat1_seri1 <- as.vector(mat1[,c(1+(0:4)*2)])
mat1_seri2<- as.vector(mat1[,c(2+(0:4)*2)])
mat2_seri1 <- as.vector(mat1[,c(1+(0:4)*2)])
mat2_seri2<- as.vector(mat1[,c(2+(0:4)*2)])
mae1<-mean(abs(mat1_seri1-mat2_seri1))
mae2<-mean(abs(mat1_seri2-mat2_seri2))
For mape
mape1<- mean(abs(mat1_seri1-mat2_seri1)/mat1_seri1)*100
mape2<- mean(abs(mat1_seri2-mat2_seri2)/mat1_seri2)*100
同样,我根据他们的公式计算 rmse,因为我有大量数据矩阵,因此手动操作非常耗时。是否可以使用循环来执行此操作,该循环分别为每个系列提供错误 (mae,mape,rmse) 术语的输出。
【问题讨论】:
-
您希望以何种方式自动化流程?你也可以把它变成一个函数。
-
感谢您的回复和时间,是的,我想自动执行此操作,因为我是 r 的新手,是否可以通过函数。
-
请帮我看看我是如何通过函数处理这个的/