Cómo realizar una regresión polinomial en Python

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

El análisis de regresión se utiliza para cuantificar la relación entre una o más variables explicativas y una variable de respuesta.

El tipo más común de análisis de regresión es la regresión lineal simple , que se usa cuando una variable predictora y una variable de respuesta tienen una relación lineal.

Sin embargo, a veces la relación entre una variable predictora y una variable de respuesta no es lineal.

Por ejemplo, la verdadera relación puede ser cuadrática:

O puede ser cúbico:

En estos casos, tiene sentido utilizar la regresión polinomial , que puede explicar la relación no lineal entre las variables.

Este tutorial explica cómo realizar una regresión polinomial en Python.

Ejemplo: regresión polinomial en Python

Supongamos que tenemos la siguiente variable predictora (x) y variable de respuesta (y) en Python:

x = [2, 3, 4, 5, 6, 7, 7, 8, 9, 11, 12]
y = [18, 16, 15, 17, 20, 23, 25, 28, 31, 30, 29]

Si creamos una gráfica de dispersión simple de estos datos, podemos ver que la relación entre xey claramente no es lineal:

importar matplotlib.pyplot como plt

#create scatterplot 
dispersión plt (x, y)

Por lo tanto, no tendría sentido ajustar un modelo de regresión lineal a estos datos. En su lugar, podemos intentar ajustar un modelo de regresión polinomial con un grado de 3 usando la función numpy.polyfit () :

importar numpy como np

# ajuste polinomial con grado = 3
 modelo = np.poly1d (np.polyfit (x, y, 3))

#add línea polinomial ajustada al diagrama de dispersión
 polilínea = np.linspace (1, 12, 50)
dispersión plt (x, y)
plt.plot (polilínea, modelo (polilínea))
plt.show ()

Línea de regresión polinomial en Python

Podemos obtener la ecuación de regresión polinomial ajustada imprimiendo los coeficientes del modelo:

imprimir (modelo)

poly1d ([-0.10889554, 2.25592957, -11.83877127, 33.62640038])

La ecuación de regresión polinomial ajustada es:

y = -0,109x 3 + 2,256x 2 – 11,839x + 33,626

Esta ecuación se puede utilizar para encontrar el valor esperado para la variable de respuesta con base en un valor dado para la variable explicativa. Por ejemplo, suponga que x = 4. El valor esperado para la variable de respuesta, y, sería:

y = -0,109 (4) 3 + 2,256 (4) 2 – 11,839 (4) + 33,626 = 15,39 .

También podemos escribir una función corta para obtener el R cuadrado del modelo, que es la proporción de la varianza en la variable de respuesta que se puede explicar por las variables predictoras.

#define función para calcular r-cuadrado 
def polyfit (x, y, grado):
    resultados = {}
    coeffs = numpy.polyfit (x, y, grado)
    p = numpy.poly1d (coeff)
    #calcular r-cuadrado
    yhat = p (x)
    ybar = numpy.sum (y) / len (y)
    ssreg = numpy.sum ((yhat-ybar) ** 2)
    sstot = numpy.sum ((y - ybar) ** 2)
    resultados ['r_squared'] = ssreg / sstot

    devolver resultados

# encontrar r-cuadrado del modelo polinomial con grado = 3
 polyfit (x, y, 3)

{'r_squared': 0.9841113454245183}

En este ejemplo, el R-cuadrado del modelo es 0.9841 . Esto significa que el 98,41% de la variación en la variable de respuesta puede explicarse por las variables predictoras.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿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:

Deja un comentario

La regresión lineal múltiple es un método que podemos utilizar para comprender la relación entre varias variables explicativas y una…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!