Ir al contenido principal

Ajustes al modelo de regresión lineal en lenguaje de programación

En ocasiones, te encontrarás con modelos que puedes volver más precisos si los divides en partes a través de Python. Para hacer ajustes a un modelo en Python es necesario descargar las siguientes bibliotecas: Numpy, Matplotlib, Statsmodels, Pandas, Math.

Preparación de datos iniciales.

Se utilizará el siguiente ejemplo: En tu empresa, te entregan un archivo .csv con todo el historial del aumento salarial de los empleados, te piden que los utilices para obtener la tendencia de los aumentos salariales requeridos para cada empleado. Para cargar y preparar los datos, sigue estos pasos:

·         Importa las bibliotecas que serán necesarias para resolver el problema.

·         Carga los datos desde un .csv.

o   data1=pd.read_csv(‘empleados.csv’)

·         Guarda los datos en sus respectivas variables. En este caso x1 será para received y x2 para requested.

o   x1=data1.received

o   x2=data1.requested

·         Cuando tengas listos los datos haz una gráfica de dispersión con los valores x1 y x2.

o   fig=plt.plot(x2,x1,’x’)

o   plt.axvline(div1,color=‘k’)

Programación del modelo medio.

Para programar el modelo medio sigue estos pasos:

·         Crea una función llamada TrazaError, que reciba como parámetros los valores de x y y.

o   def TrazaError(x,y)

·         Agrega una columna de valores constantes para sumar los valores de x al modelo.

o   x=sm.add_constant(x)

·         Crea el modelo con y y la nueva x:

o   model=sm.OLS(y,x).fit()

·         Guarda en la variable m la pendiente y la intersección en la variable b.

o   m=model.params[1]

o   b=model.params[0]

Para calcular y trazar el error cuadrático medio dentro de la función TrazaError, sigue estos pasos:

·         Calcula la desviación estándar de y.

o   desvStd=np.std(y)

·         Calcula la constante de correlación de x y de y.

o   cCor=np.corrcoef(x,y)[0][1]

o   El valor que necesitas se encuentra en la fila 0 columna 1.

·         Calcula el error multiplicando la desviación estándar de y por la raíz cuadrada de 1 menos el cuadrado de la constante de correlación.

o   Err=desvStd*math.sart(1-cCor*cCor)

·         Agrega el límite en el eje x de las rectas de error y la tendencia.

o   Points=np.linspace(x.min(),xmax())

·         Traza la recta de tendencia.

o   plt.plot(points,m*points+b)

·         Traza las rectas de error, restando el error cuadrático medio que calculaste a la intersección.

o   plt.plot(points,m*points+(b+err))

o   plt.plot(points,m*points+(b-err))

o   print (err)

Ajuste al modelo.

Como viste en el ejemplo pasado, hay puntos en donde los datos comienzan a ser más dispersos, por lo cual tienes que hacer un ajuste y crear 2 modelos lineales para hacer al modelo más preciso. Para crear los 2 modelos y graficarlos con la función que ya creaste, sigue estos pasos:

·         Guarda el límite que dividirá a los 2 modelos en una variable llamada div.

o   div=6.

·         Crea un filtro correspondiente al primer modelo que elimine los datos mayores al límite propuesto, y que conserve los datos menores o iguales a él.

o   data2=data1[(data1.requested<=div1)]

·         Guarda los nuevos datos en sus respectivas variables y con estas manda a llamar la función TrazaError.

o   x2=data2.requested

o   y2=data2.received

o   TrazaError(x2,y2)

·         Crea un filtro para el 2° modelo que elimine los registros menores e iguales al límite propuesto y que conserve los datos mayores a él.

o   data3=data1[(data1.requested>div1)]

·         Guarda los nuevos datos en sus respectivas variables, y con estas manda a llamar la función TrazaError.

o   x3=data.requested

o   y3=data3.received

o   TrazaError(x3,y3)

·         Por último, muestra la gráfica completa con el método show

o   plt.show()

Fuente:
Fundación Carlos Slim – Curso Analista de Datos.

Comentarios

Entradas más populares de este blog

Especial Pancracio Deportivo: Mundial Norteamérica 2026 ¿Un punto de quiebre?

Ofreciendo este espacio para compartir una publicación del proyecto hermano de Pancracio Deportivo , en el que se hace un análisis transversal de lo ocurrido en el recientemente concluido Mundial de Fútbol de Norteamérica 2026 . ¿El Mundial de Norteamérica 2026 ha sido mucho más que un torneo de fútbol? Durante días se documentó el recorrido de cada selección con infografías inspiradas en la identidad artística y cultural de cada país, acompañadas de análisis históricos, deportivos, económicos y sociales. Ahora todo ese trabajo y algo más se reúne en un solo documento: "Mundial Norteamérica 2026 ¿Un punto de quiebre?" Este especial de Pancracio Deportivo no busca decir únicamente quién ganó o quién perdió. Busca responder si este Mundial marcó un antes y un después en la forma de entender el deporte, la identidad nacional, la globalización, la comercialización y el papel del fútbol como reflejo de nuestras sociedades . Son 230 páginas de análisis, ilustraciones originales y ...

Cultura Romana

En esta sección dedicada a compartir aquellas láminas, textos o infografías relevantes , en esta ocasión, es turno de compartir un material en el que de forma gráfica se observan diferentes pasajes y aspectos de la cultura romana, una de las principales civilizaciones que tuvo un amplio dominio en su época de apogeo.

Cultura Olmeca

La 1° cultura (al menos de la que se tiene un registro) en aparecer en Mesoamérica, y que es conocida como la "cultura madre", es la de los olmecas , civilización de la cual, en esta lámina que se comparte, se puede ver un poquito de su historia y de los principales elementos que la caracterizaron.