Regresión

Hasta ahora, vimos cómo hacer gráficos númericos en Highcharter, tanto de dispersión como de burbujas. Aquí iremos un paso más allá y veremos cómo añadir una línea de regresión sobre dichos datos.

El tema de los gráficos lo puedes encontrar en la sección sobre cómo crear temas en highcharter y configurarlo al inicio de la sesión así:

library(highcharter)

options(highcharter.theme = elartedeldato_theme)

Cómo hacer un gráfico de regresión lineal

En esta ocasión utilizaremos el archiconocido dataset de R, iris. Sin duda, uno de los más famosos en el mundo #rstats.

reactable::reactable(head(iris))

Highcharter permite ajustar regresiones de forma muy sencilla a través del pluggin highcharts-regression.js. Simplemente, consiste en realizar un gráfico de dispersión al que se le añade esta dependencia haciendo uso de la función hc_add_dependency() y se indica regression = TRUE en las opciones del plot.

hchart(
  iris,
  "scatter",
  hcaes(x = Sepal.Length, y = Sepal.Width, group = Species),
  regression = TRUE
  ) |>
  hc_colors(c("#aedcc0", "#206999", "#ffab44")) |>
  hc_add_dependency("plugins/highcharts-regression.js") |>
  hc_title(text = "<b>Gráfico de regresión</b>") |>
  hc_subtitle(text = "<i>Ejemplo de gráfico de regresión en Highcharter - dataset iris</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")

Dado que el conjunto de datos consta de 3 grupos, indicamos específicamente solo 3 colores. Si en el tema personalizado existen más colores que el número de categorías, cada línea de regresión irá de un color diferente a los datos a los que se refiere. Por eso, con hc_colors() fijamos exactamente 3 colores, uno por categoría.

Cómo hacer un gráfico de regresión polinómica

Por otro lado, a parte de la regresión lineal, se pueden tratar de ajustar otros modelos como son la regresión exponencial o logarítmica. Las opciones posibles son: linear ,exponential, polynomial, power, logarithmic, loess.

Además, podemos mostrar la ecuación del ajuste y otros estadísticos resultantes del mismo:

  • %r: Valor del coeficiente de correlación
  • %r2: Valor del coeficiente de determinación
  • %eq: Ecuación de la regresión
  • %se: Error Estándar
hchart(
  iris,
  "scatter",
  hcaes(x = Sepal.Length, y = Sepal.Width, group = Species),
  regression = TRUE,
  regressionSettings = list(
    type = "polynomial",
    name = "%eq, R=%r R2=%r2 SE=%se"
  )
  ) |>
  hc_colors(c("#aedcc0", "#206999", "#ffab44")) |>
  hc_add_dependency("plugins/highcharts-regression.js") |>
  hc_title(text = "<b>Gráfico de regresión</b>") |>
  hc_subtitle(text = "<i>Ejemplo de gráfico de regresión en Highcharter - dataset iris</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")