Programación Lineal en Python
Programación Lineal en Python
acontinuación nos dirigimos a la carpeta donde se encuentra nuestra base de datos; como se puede
ver en el codigo le di una dirección absoluta, un truco para hacer esto es comenzar con un “/”
jupyter lab nos ayudara autocompletando la dirección de las carpetas.
1
una vez estemos dentro de ese directorio guardamos la base de datos que queremos utilizar, en este
caso mi base de datos se llama “mundo.csv”, la guardamos dentro de la variable datos, y vemos las
primeras 10 observaciones
podemos ver que todas las columnas representan una variable:
• country: representa el pais
• year: año de la observación
• population: población del pais
• continent: continente del pais
• life_exp: expectativa de vida
• gdp_cap: pib per capita
[5]: ## ingresamos a la carpeta de trabajo que contiene nuestra base de datos
os.chdir("/home/lastra/Escritorio/programacion/lenguajes/python/ciencia de␣
↪datos/")
una vez tenemos hemos cargados esos datos, procedamos a analizar la correlación de variables
numericas con un grafico de disperción entre las variables “gpd_cap” y “life_exp”; no parece
existir una relación directa como se ve en el grafico siguiente:
[7]: mlp.scatter(datos["gdp_cap"], datos["life_exp"], s= 50, c="red")
mlp.title("Pib per capita vs esperanza de vida")
mlp.xlabel("Pib per capita")
mlp.grid()
mlp.ylabel("Esperanza de vida")
2
Seleccionamos la variable explicada y explicativa Nuestra variable explicada sera “life_exp” y esta
estara explicada por la variable independiente “gdp_cap”
recordemos que: * life_exp esperanza de vida * gdp_cap pib per capita
luego en la variable modelo guardamos el modelo que usaremos es decir LinearRegression, luego lo
aplicamos con el metodo fit; el parametro “X” guardara nuestra variable explicativa y el parametro
“y” contendra nuestra variable explicada.
luego vemos los resultados del modelo con el metodo __ dict __
[8]: explicativa = datos[["gdp_cap"]] # v. independiente
explicada = datos[["life_exp"]] # v. dependiente
modelo = LinearRegression()
3
'feature_names_in_': array(['gdp_cap'], dtype=object),
'n_features_in_': 1,
'coef_': array([[0.00076488]]),
'rank_': 1,
'singular_': array([406791.72229685]),
'intercept_': array([53.95556088])}
De toda la información que nos muestra el modelo; las dos partes que mas nos interesan son:
• intercept nos muestra el valor que toma la regresión cuando las variables independientes son
iguales a 0
• coef nos muestra el valor que toman los multiplicadores de las variables independientes
entonces la regresión de nuestro modelo se puede expresar de la siguiente manera :
𝑦 = 53.95 + 0.0007 ⋅ 𝑋
datos.head(10)
acto seguido, volvemos a realizar el grafico de disperción y incluimos una recta de color rojo con
los valores predichos por el modelo.
[10]: mlp.scatter(datos["gdp_cap"], datos["life_exp"], s= 50, c="blue")
mlp.plot(datos["gdp_cap"], datos["prediccion"], "r--", c="red")
mlp.title("Pib per capita vs esperanza de vida")
4
mlp.xlabel("Pib per capita")
mlp.grid()
mlp.ylabel("Esperanza de vida")
medimos que tanto predice nuestro modelo con la bonda de ajuste o el R cuadrado.
[82]: modelo.score(X=explicativa, y=explicada)
[82]: 0.34071295111023236
este modelo unicamente explica el 34% de la variación real de los datos, es decir una regresión lineal
no seria muy util para explicar el valor de la esperanza de vida.