Contenido de este artículo
- 0
- 0
- 0
- 0
Actualizado el 7 de mayo de 2021, por Luis Benites.
A menudo, es posible que desee encontrar la ecuación que mejor se adapte a alguna curva en R.
El siguiente ejemplo paso a paso explica cómo ajustar curvas a datos en R usando la función poly () y cómo determinar qué curva se ajusta mejor a los datos.
Paso 1: crear y visualizar datos
Primero, creemos un conjunto de datos falso y luego creemos un diagrama de dispersión para visualizar los datos:
#create data frame df <- data. marco (x = 1:15, y = c (3, 14, 23, 25, 23, 15, 9, 5, 9, 13, 17, 24, 32, 36, 46)) # crear una gráfica de dispersión de la gráfica x vs. y (df $ x, df $ y, pch = 19 , xlab = ' x ', ylab = ' y ')
Paso 2: ajuste varias curvas
A continuación, ajustemos varios modelos de regresión polinomial a los datos y visualicemos la curva de cada modelo en la misma gráfica:
#fit modelos de regresión polinomial hasta el grado 5 fit1 <- lm (y ~ x, data = df) fit2 <- lm (y ~ poly (x, 2, raw = TRUE ), data = df) fit3 <- lm (y ~ poly (x, 3, raw = TRUE ), data = df) fit4 <- lm (y ~ poly (x, 4, raw = TRUE ), data = df) fit5 <- lm (y ~ poly (x, 5, raw = TRUE ), data = df) #crea una gráfica de dispersión de x vs. y plot (df $ x, df $ y, pch = 19, xlab = ' x ', ylab = ' y ') #define los valores del eje x eje_x <- seq (1, 15, longitud = 15 ) #add curva de cada modelo para trazar líneas (x_axis, predict (fit1, data. frame (x = x_axis)), col = ' green ') lines (x_axis, predict (fit2, data. frame (x = x_axis)), col = ' red ') lines (x_axis, predict (fit3, data. frame (x = x_axis)), col = ' purple ') líneas (eje_x, predecir (ajuste4, marco de datos (x = eje_x)), col = ' azul ') líneas (eje_x, predecir (ajuste5, marco de datos (x = eje_x)), col = ' naranja ')
Para determinar qué curva se ajusta mejor a los datos, podemos observar el R cuadrado ajustado de cada modelo.
Este valor nos dice el porcentaje de la variación en la variable de respuesta que se puede explicar por la (s) variable (s) predictoras en el modelo, ajustado por el número de variables predictoras.
#R-cuadrado ajustado calculado de cada resumen de modelo (ajuste1) $ adj. r . resumen al cuadrado (ajuste2) $ adj. r . resumen al cuadrado (fit3) $ adj. r . resumen al cuadrado (fit4) $ adj. r . resumen al cuadrado (fit5) $ adj. r . al cuadrado [1] 0.3144819 [1] 0.5186706 [1] 0,7842864 [1] 0,9590276 [1] 0,9549709
De la salida podemos ver que el modelo con el R-cuadrado ajustado más alto es el polinomio de cuarto grado, que tiene un R-cuadrado ajustado de 0.959 .
Paso 3: Visualice la curva final
Por último, podemos crear un diagrama de dispersión con la curva del modelo polinomial de cuarto grado:
# crear una gráfica de dispersión de la gráfica x vs. y (df $ x, df $ y, pch = 19, xlab = ' x ', ylab = ' y ') #define los valores del eje x eje_x <- seq (1, 15, longitud = 15 ) #add curva de líneas de modelo polinomial de cuarto grado (x_axis, predict (fit4, data. frame (x = x_axis)), col = ' blue ')
También podemos obtener la ecuación para esta línea usando la función summary () :
resumen (fit4) Llamada: lm (fórmula = y ~ poly (x, 4, raw = TRUE), data = df) Derechos residuales de autor: Mín. 1T Mediana 3T Máx. -3,4490 -1,1732 0,6023 1,4899 3,0351 Coeficientes: Estimar Std. Valor t de error Pr (> | t |) (Intercepción) -26.51615 4.94555 -5.362 0.000318 *** poli (x, 4, crudo = VERDADERO) 1 35.82311 3.98204 8.996 4.15e-06 *** poli (x, 4, crudo = VERDADERO) 2 -8.36486 0.96791 -8.642 5.95e-06 *** poli (x, 4, crudo = VERDADERO) 3 0.70812 0.08954 7.908 1.30e-05 *** poli (x, 4, crudo = VERDADERO) 4 -0.01924 0.00278 -6.922 4.08e-05 *** --- Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1 Error estándar residual: 2.424 en 10 grados de libertad R cuadrado múltiple: 0,9707, R cuadrado ajustado: 0,959 Estadístico F: 82,92 en 4 y 10 DF, valor p: 1,257e-07
La ecuación de la curva es la siguiente:
y = -0.0192x 4 + 0.7081x 3 – 8.3649x 2 + 35.823x – 26.516
Podemos usar esta ecuación para predecir el valor de la variable de respuesta en función de las variables predictoras del modelo. Por ejemplo, si x = 4, predeciríamos que y = 23,34 :
y = -0,0192 (4) 4 + 0,7081 (4) 3 – 8,3649 (4) 2 + 35,823 (4) – 26,516 = 23,34
Recursos adicionales
Introducción a la regresión polinomial Regresión
polinomial en R (paso a paso)
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/
¿Te hemos ayudado?
Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:La ayuda no cuesta nada
Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo: