|
30 | 30 | #' \item \code{MASE} = mean absolute scaled error |
31 | 31 | #' \item \code{RMSLE} = root mean squared log error |
32 | 32 | #' \item \code{rsquared} = \emph{R}-squared |
33 | | -#' \item \code{rsquaredAdj} = adjusted \emph{R}-squared |
34 | | -#' \item \code{rsquaredPredictive} = predictive \emph{R}-squared |
| 33 | +#' \item \code{rsquaredAsPredictor} = \emph{R}-squared using the values as a predictor |
| 34 | +#' \item \code{rsquaredAdjAsPredictor} = adjusted \emph{R}-squared using the values as a predictor |
| 35 | +#' \item \code{rsquaredPredictiveAsPredictor} = predictive \emph{R}-squared using the values as a predictor |
35 | 36 | #' } |
36 | 37 | #' |
37 | 38 | #' @family accuracy |
@@ -153,6 +154,17 @@ accuracyOverall <- function(predicted, actual, dropUndefined = FALSE){ |
153 | 154 | return(value) |
154 | 155 | } |
155 | 156 |
|
| 157 | +rsquare<-function(predicted,actual){ |
| 158 | +mydata<-data.frame(na.omit(cbind(predicted,actual))) |
| 159 | + |
| 160 | +ss_res<- sum((mydata$actual-mydata$predicted)^2) |
| 161 | +ss_tot<- sum((mydata$actual- mean(mydata$actual))^2) |
| 162 | + |
| 163 | +value<-1- (ss_res/ss_tot) |
| 164 | + |
| 165 | +return(value) |
| 166 | + } |
| 167 | + |
156 | 168 | # Predictive residual sum of squares (PRESS) |
157 | 169 | PRESS<-function(linear.model){ |
158 | 170 | # calculate the predictive residuals |
@@ -210,16 +222,21 @@ accuracyOverall <- function(predicted, actual, dropUndefined = FALSE){ |
210 | 222 | # Root Mean Squared Log Error (RMSLE) |
211 | 223 | RMSLE<- rootMeanSquaredLogError(predicted=predicted,actual=actual,dropUndefined=dropUndefined) |
212 | 224 |
|
213 | | -#Coefficient of Determination (R-squared) |
214 | | -rsquared<-summary(lm(actual~predicted))$r.squared |
| 225 | +#Coefficient of Determination (R-squared) |
| 226 | +rsquared<-rsquare(predicted=predicted,actual=actual) |
215 | 227 |
|
216 | | -#AdjustedR-squared |
217 | | -rsquaredAdj<- summary(lm(actual~predicted))$adj.r.squared |
| 228 | +#Coefficient of Determination (R-squared) with the values as a predictor |
| 229 | +rsquaredAsPredictor<- summary(lm(actual~predicted))$r.squared |
218 | 230 |
|
219 | | -# Predictive R-squared |
220 | | -rsquaredPredictive<- predictiveRSquared(predicted=predicted,actual=actual) |
| 231 | +# Adjusted R-squared with the values as a predictor |
| 232 | +rsquaredAdjAsPredictor<- summary(lm(actual~predicted))$adj.r.squared |
| 233 | + |
| 234 | +# Predictive R-squared with the values as a predictor |
| 235 | +rsquaredPredictiveAsPredictor<- predictiveRSquared(predicted=predicted,actual=actual) |
221 | 236 |
|
222 | | -accuracyTable<-data.frame(cbind(ME,MAE,MdAE,MSE,RMSE,MPE,MAPE,sMAPE,MASE,RMSLE,rsquared,rsquaredAdj,rsquaredPredictive)) |
| 237 | +accuracyTable<-data.frame(cbind( |
| 238 | +ME,MAE,MdAE,MSE,RMSE,MPE,MAPE,sMAPE,MASE,RMSLE, |
| 239 | +rsquared,rsquaredAsPredictor,rsquaredAdjAsPredictor,rsquaredPredictiveAsPredictor)) |
223 | 240 |
|
224 | 241 | return(accuracyTable) |
225 | 242 | } |
@@ -258,7 +275,7 @@ wisdomOfCrowd <- function(predicted, actual, dropUndefined = FALSE){ |
258 | 275 | accuracyTable_crowdAverage |
259 | 276 | ) |
260 | 277 |
|
261 | | -accuracyTableOverall<-accuracyTableOverall[,!(names(accuracyTableOverall)%in% c("rsquared","rsquaredAdj","rsquaredPredictive"))] |
| 278 | +accuracyTableOverall<-accuracyTableOverall[,!(names(accuracyTableOverall)%in% c("rsquared","rsquaredAsPredictor","rsquaredAdjAsPredictor","rsquaredPredictiveAsPredictor"))] |
262 | 279 |
|
263 | 280 | accuracyTableOverall$bracketingRate<- bracketing_rate( |
264 | 281 | predicted=predicted, |
|