library(highcharter)
options(highcharter.theme = elartedeldato_theme)
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í:
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(head(iris)) reactable
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")