|
527 | 527 | table <- createJaspTable(title = gettext("Model Performance Metrics"))
|
528 | 528 | table$position <- position
|
529 | 529 | table$dependOn(options = c(.mlRegressionDependencies(options), "validationMeasures"))
|
530 |
| - table$addColumnInfo(name = "measures", title = "", type = "string") |
531 |
| - table$addColumnInfo(name = "values", title = gettext("Value"), type = "string") |
532 |
| - measures <- c("MSE", gettext("MSE(scaled)"), "RMSE", "MAE / MAD", "MAPE", "R\u00B2") |
533 |
| - table[["measures"]] <- measures |
| 530 | + table$addColumnInfo(name = "colTitle", title = "", type = "string") |
| 531 | + table$addColumnInfo(name = "mse", title = "MSE", type = "number") |
| 532 | + table$addColumnInfo(name = "mse_scaled", title = gettext("MSE(scaled)"), type = "number") |
| 533 | + table$addColumnInfo(name = "rmse", title = "RMSE", type = "number") |
| 534 | + table$addColumnInfo(name = "mae", title = "MAE / MAD", type = "number") |
| 535 | + table$addColumnInfo(name = "mape", title = "MAPE", type = "number", format = "pc") |
| 536 | + table$addColumnInfo(name = "r_squared", title = "R\u00B2", type = "number") |
| 537 | + table$transpose <- TRUE |
534 | 538 | jaspResults[["validationMeasures"]] <- table
|
535 | 539 | if (!ready) {
|
536 | 540 | return()
|
|
540 | 544 | predDat <- predDat[complete.cases(predDat), ]
|
541 | 545 | obs <- predDat[["obs"]]
|
542 | 546 | pred <- predDat[["pred"]]
|
543 |
| - mse <- round(regressionResult[["testMSE"]], 3) |
| 547 | + mse <- regressionResult[["testMSE"]] |
544 | 548 | obs_scaled <- (obs - mean(obs)) / sd(obs)
|
545 | 549 | pred_scaled <- (pred - mean(pred)) / sd(pred)
|
546 |
| - mse_scaled <- round(mean((obs_scaled - pred_scaled)^2), 3) |
547 |
| - rmse <- round(sqrt(mse), 3) |
548 |
| - mae <- round(mean(abs(obs - pred)), 3) |
549 |
| - mape <- paste0(round(mean(abs((obs - pred) / obs)) * 100, 2), "%") |
550 |
| - r_squared <- round(cor(obs, pred)^2, 3) |
551 |
| - values <- c(mse, mse_scaled, rmse, mae, mape, r_squared) |
552 |
| - table[["values"]] <- values |
| 550 | + mse_scaled <- mean((obs_scaled - pred_scaled)^2) |
| 551 | + rmse <- sqrt(mse) |
| 552 | + mae <- mean(abs(obs - pred)) |
| 553 | + mape <- mean(abs((obs - pred) / obs)) |
| 554 | + r_squared <- cor(obs, pred)^2 |
| 555 | + table[["colTitle"]] <- gettext("Values") |
| 556 | + table[["mse"]] <- mse |
| 557 | + table[["mse_scaled"]] <- mse_scaled |
| 558 | + table[["mae"]] <- mae |
| 559 | + table[["mape"]] <- mape |
| 560 | + table[["rmse"]] <- rmse |
| 561 | + table[["mape"]] <- mape |
| 562 | + table[["r_squared"]] <- r_squared |
553 | 563 | if (is.na(r_squared)) {
|
554 | 564 | table$addFootnote(gettextf("R%s cannot be computed due to lack of variance in the predictions.</i>", "\u00B2"))
|
555 | 565 | }
|
|
0 commit comments