en este tutorial, verá cómo realizar regresión lineal múltiple en Python utilizando sklearn y statsmodels.,s a cubrir:
- revisar el ejemplo que se utilizará en este tutorial
- comprobar la linealidad
- Realizar la regresión lineal múltiple en Python
- agregar una interfaz gráfica de usuario (GUI) de tkinter para recopilar la entrada de los usuarios y luego mostrar los resultados de predicción
al final de este tutorial, podrá crear la siguiente interfaz en Python:
ejemplo de regresión lineal múltiple en Python
en el siguiente ejemplo, usaremos regresión lineal múltiple para predecir el precio del índice bursátil (I.,e., la variable dependiente) de una economía ficticia utilizando 2 variables independientes/de entrada:
- tasa de interés
- tasa de desempleo
tenga en cuenta que tendrá que validar que se cumplen varias suposiciones antes de aplicar modelos de regresión lineal. En particular, debe asegurarse de que existe una relación lineal entre la variable dependiente y la variable independiente (más sobre eso en la sección Comprobación de linealidad).,
Ahora vamos a saltar al conjunto de datos que usaremos:
para comenzar, puede capturar el conjunto de datos anterior en Python utilizando Pandas DataFrame (para conjuntos de datos más grandes, puede considerar importar sus datos):
comprobando la linealidad
antes de ejecutar un modelo de regresión lineal, es recomendable validar se cumplen ciertas suposiciones.
como se señaló anteriormente, es posible que desee comprobar que existe una relación lineal entre la variable dependiente y la variable/S independiente.,
en nuestro ejemplo, es posible que desee comprobar que existe una relación lineal entre:
para realizar una comprobación de linealidad rápida, puede utilizar diagramas de dispersión (utilizando la biblioteca matplotlib). Por ejemplo, puede usar el siguiente código para trazar la relación entre Stock_Index_Price y Interest_Rate:
notará que efectivamente existe una relación lineal entre Stock_Index_Price y Interest_Rate.,ates sube, el precio del índice bursátil también sube:
y para el segundo caso, puede usar este código para trazar la relación entre el Stock_Index_Price y el Unemployment_Rate:
como puede ver, también existe una relación lineal entre el Stock_Index_Price y el Unemployment_Rate – cuando las tasas de desempleo suben, el índice bursátil el precio baja (aquí todavía tenemos una relación lineal, pero con una pendiente negativa):
a continuación, vamos a realizar la regresión lineal múltiple real en Python.,
realizar la regresión lineal múltiple
Una vez que haya agregado los datos a Python, puede usar sklearn y statsmodels para obtener los resultados de la regresión.
cualquiera de los dos métodos funcionaría, pero revisemos ambos métodos con fines ilustrativos.
luego puede copiar el código a continuación en Python:
Una vez que ejecute el código en Python, observará tres partes:
(1) la primera parte muestra la salida generada por sklearn:
Esta salida incluye la intercepción y los coeficientes., Puede usar esta información para construir la ecuación de regresión lineal múltiple de la siguiente manera:
Stock_Index_Price = (Intercept) + (Interest_Rate coef)*X1 + (Unemployment_Rate coef)*X2
y una vez que conecte los números:
Stock_Index_Price = (1798.4040) + (345.5401)*X1 + (-250.1466)*X2
(2) la segunda parte muestra la salida prevista usando sklearn:
imagine que desea predecir el precio del índice bursátil después de recopilar los siguientes datos:
- tasa de interés = 2,75 (p. ej.,, X1 = 2.75)
- tasa de desempleo = 5.3 (es decir, X2= 5.3)
Si inserta esos datos en la ecuación de regresión, obtendrá el mismo resultado predicho que se muestra en la segunda parte:
Stock_Index_Price = (1798.4040) + (345.5401)*(2.75) + (-250.1466)*(5.3) = 1422.86
(3) la tercera parte muestra una tabla completa con información estadística generada por statsmodels.,
esta información puede proporcionarle información adicional sobre el modelo utilizado (como el ajuste del modelo, errores estándar, etc.):
observe que los coeficientes capturados en esta tabla (resaltados en rojo) coinciden con los coeficientes generados por sklearn.
Eso es una buena señal! obtuvimos resultados consistentes aplicando tanto sklearn como statsmodels.
a continuación, verá cómo crear una interfaz gráfica de usuario en Python para recopilar información de los usuarios y, a continuación, mostrar los resultados de la predicción.,
GUI utilizada para la regresión lineal múltiple en Python
¡Aquí es donde comienza la verdadera diversión!
¿Por qué no crear una interfaz gráfica de usuario (GUI) que permita a los usuarios ingresar las variables independientes para obtener el resultado previsto?
Puede ser que algunos de los usuarios no sepan mucho acerca de introducir los datos en el código Python en sí, por lo que tiene sentido crearles una interfaz simple donde puedan administrar los datos de una manera simplificada.,
incluso puede crear un archivo por lotes para iniciar el programa Python, por lo que los usuarios solo tendrán que hacer doble clic en el archivo por lotes para iniciar la interfaz gráfica de usuario.
Aquí está el código completo de Python para su GUI de regresión definitiva:
Una vez que ejecute el código, verá esta GUI, que incluye la salida generada por sklearn y los diagramas de dispersión:
recuerde que anteriormente hicimos una predicción utilizando los siguientes valores:
- Interest Rate = 2.75
- tasa de desempleo = 5.,3
escriba esos valores en los cuadros de entrada, y luego haga clic en el botón ‘predecir el precio del índice bursátil’:
ahora verá el resultado predicho de 1422.86, que coincide con el valor que vio antes.
También puede consultar el siguiente tutorial para obtener más información sobre la incrustación de gráficos en una GUI de tkinter.
conclusión
la regresión lineal se utiliza a menudo en el aprendizaje automático. Ha visto algunos ejemplos de cómo realizar regresión lineal múltiple en Python utilizando sklearn y statsmodels.,
antes de aplicar modelos de regresión lineal, asegúrese de comprobar que existe una relación lineal entre la variable dependiente (es decir, lo que está tratando de predecir) y la variable/S independiente (es decir, la variable/s de entrada).