Vic*_*227 6 statistics equation r
我V1通过V12对目标变量进行数字特征观察Wavelength.我想计算Vx列之间的RMSE .数据格式如下.
每个变量"Vx"以5分钟的间隔测量.我想计算所有Vx变量观测值之间的RMSE,我该怎么做?

这是我找到的链接,但我不确定如何获得y_pred:https://www.kaggle.com/wiki/RootMeanSquaredError
对于下面提供的链接,我认为我没有预测值:http: //heuristically.wordpress.com/2013/07/12/calculate-rmse-and-mae-in-r-and-sas/
Fer*_*ndo 22
下面的函数将为您提供RMSE:
RMSE = function(m, o){
sqrt(mean((m - o)^2))
}
Run Code Online (Sandbox Code Playgroud)
m用于模型(拟合)值,o用于观察(真实)值.
Man*_*mar 12
为了您的帮助,只需编写以下函数:
#Fit a model
fit <- lm(Fertility ~ . , data = swiss)
# Function for Root Mean Squared Error
RMSE <- function(error) { sqrt(mean(error^2)) }
RMSE(fit$residuals)
# If you want, say, MAE, you can do the following:
# Function for Mean Absolute Error
mae <- function(error) { mean(abs(error)) }
mae(fit$residuals)
Run Code Online (Sandbox Code Playgroud)
我希望它有帮助。
请参阅我在Python中执行RMSE的其他获得97票以上投票的规范答案:https ://stackoverflow.com/a/37861832/445131在下面,我将其解释为R代码的术语。
RMSE :(均方根误差),MSE :(均方根误差)和RMS :(均方根误差)都是数学技巧,可用来感知两个数字列表之间随时间的变化。
RMSE提供了一个回答以下问题的数字:“平均而言,列表1和列表2中的数字有多相似?”。这两个列表的大小必须相同。我想“消除任何两个给定元素之间的噪音,消除所收集数据的大小,并获得随时间变化的单一数字感觉”。
想象一下,您正在学习在飞镖板上扔飞镖。每天练习一小时。您想弄清楚自己是好还是坏。因此,每天您进行10次投掷,并测量靶心与飞镖击中点之间的距离。
您列出这些数字。使用第1天的距离与包含全零的列表之间的均方根误差。在第二天和第n天做同样的事情。您将获得一个希望随时间减少的数字。当您的RMSE数为零时,您每次都击中Bullseyes。如果数字上升,您将变得更糟。
cat("Inputs are:\n")
d = c(0.000, 0.166, 0.333)
p = c(0.000, 0.254, 0.998)
cat("d is: ", toString(d), "\n")
cat("p is: ", toString(p), "\n")
rmse = function(predictions, targets){
cat("===RMSE readout of intermediate steps:===\n")
cat("the errors: (predictions - targets) is: ",
toString(predictions - targets), '\n')
cat("the squares: (predictions - targets) ** 2 is: ",
toString((predictions - targets) ** 2), '\n')
cat("the means: (mean((predictions - targets) ** 2)) is: ",
toString(mean((predictions - targets) ** 2)), '\n')
cat("the square root: (sqrt(mean((predictions - targets) ** 2))) is: ",
toString(sqrt(mean((predictions - targets) ** 2))), '\n')
return(sqrt(mean((predictions - targets) ** 2)))
}
cat("final answer rmse: ", rmse(d, p), "\n")
Run Code Online (Sandbox Code Playgroud)
哪些打印:
Inputs are:
d is: 0, 0.166, 0.333
p is: 0, 0.254, 0.998
===RMSE Explanation of steps:===
the errors: (predictions - targets) is: 0, -0.088, -0.665
the squares: (predictions - targets) ** 2 is: 0, 0.007744, 0.442225
the means: (mean((predictions - targets) ** 2)) is: 0.149989666666667
the square root: (sqrt(mean((predictions - targets) ** 2))) is: 0.387284994115014
final answer rmse: 0.387285
Run Code Online (Sandbox Code Playgroud)
均方根误差测量的是点与线之间的垂直距离,因此,如果您的数据形状像香蕉,底部附近平坦,顶部附近陡峭,则RMSE将报告距高点的距离更大,而距点的距离较短实际上是距离相等时的低点。这会导致偏斜,在该偏斜处,线倾向于更靠近高点而不是低点。
如果这是一个问题,则总最小二乘法可以解决此问题:https : //mubaris.com/posts/linear-regression/
如果在任何一个输入列表中都有空值或无穷大,则输出rmse值将变得没有意义。任一列表中都有三种处理空值/缺失值/无穷大的策略:忽略该组件,将其清零,或者在所有时间步长中添加最佳猜测或统一的随机噪声。每种补救措施都有其优缺点,具体取决于您的数据含义。通常,最好忽略任何缺少值的组件,但这会使RMSE趋于零,从而使您认为性能确实有所提高。如果存在很多缺失值,则最好在最佳猜测上添加随机噪声。
为了保证RMSE输出的相对正确性,您必须消除输入中的所有null / infinites。
均方根误差平方根依赖于所有正确的数据,并且所有均被视为相等。这意味着在左侧区域中出现的一个杂散点将完全破坏整个计算。若要处理离群数据点并在特定阈值后消除其巨大影响,请参阅稳健估计器,该估计器内置了消除离群值的阈值。
| 归档时间: |
|
| 查看次数: |
52932 次 |
| 最近记录: |