Guía de análisis de datos: regresión lineal y técnicas de regularización

Documento de Universidad Del Valle de México sobre Guía Análisis de Datos. El Pdf es una guía didáctica que aborda la regresión lineal y las técnicas de regularización Ridge y Lasso, con ejemplos de código en Python, útil para estudiantes universitarios de Informática.

See more

9 Pages

Nombre del estudiante:
Axel De la Rosa Castañon
Nombre del trabajo:
Examen
Fecha de entrega:
26 de marzo del 2025
Campus:
Hermosillo
Carrera:
Ingeniería Industrial y de Sistemas
Semestre:
6° semestre
Nombre del maestro:
Luis Enrique Cuevas Picos
Nombre de la asignatura:
Análisis de Datos
Guía Análisis de Datos
1. Regresión Lineal
La regresión lineal es un modelo estadístico que representa la relación entre una
variable dependiente y y una variable independiente xx mediante una línea recta:
y=b0 +b1 x+ϵ
Componentes
b0 (intercepto): Valor de y cuando x=0
b1 (pendiente): Indica cómo cambia y por cada unidad de cambio en x
x (variable independiente)
ϵ (error residual): Diferencia entre los valores reales y los valores predichos.
Implementación en Python
#Datos
data = {
'edad' : [23, 25, 28, 30],
'salario' : [30000, 32000, 35000, 36000]
}
df = pd.DataFrame(data)
df
Se crea un diccionario llamado data con dos pares clave-valor
Luego, se construye un DataFrame con pd.DataFrame(data)
El diccionario data se pasa como argumento, quiere decir que hará el df en
base a los datos proporcionados
Un DataFrame es una estructura de datos bidimensional, similar a una tabla
en pandas, similar a una hoja de cálculo.
# Regresion lineal

Unlock the full PDF for free

Sign up to get full access to the document and start transforming it with AI.

Preview

UVM Universidad del Valle de México

LAUREATE INTERNATIONAL UNIVERSITIES® Nombre del estudiante: Axel De la Rosa Castañon Nombre del trabajo: Examen Fecha de entrega: 26 de marzo del 2025 Campus: Hermosillo Carrera: Ingeniería Industrial y de Sistemas Semestre: 6º semestre Nombre del maestro: Luis Enrique Cuevas Picos Nombre de la asignatura: Análisis de DatosGuía Análisis de Datos

Regresión Lineal

La regresión lineal es un modelo estadístico que representa la relación entre una variable dependiente y y una variable independiente xx mediante una línea recta: y=b0+b1x+€

Componentes de la Regresión Lineal

  • b0 (intercepto): Valor de y cuando x=0
  • b1 (pendiente): Indica cómo cambia y por cada unidad de cambio en x
  • x (variable independiente)
  • E (error residual): Diferencia entre los valores reales y los valores predichos.

Implementación en Python

#Datos data : { 'edad' : [23, 25, 28, 30], 'salario' : [30000, 32000, 35000, 36000] } df = pd. DataFrame (data) df

  • Se crea un diccionario llamado data con dos pares clave-valor
  • Luego, se construye un DataFrame con pd.DataFrame(data)
  • El diccionario data se pasa como argumento, quiere decir que hará el df en base a los datos proporcionados . Un DataFrame es una estructura de datos bidimensional, similar a una tabla en pandas, similar a una hoja de cálculo.

# Regresion linealslope, intercept, r_value, p_value, std err = stats . linregress (df ['edad' ] , df [ ' salario' ] ) print ("coeficiente de correlación (r) : ", r value) _ print ("slope (a) : ", slope) print ("intercept (b) : ", intercept) Este código realiza una regresión lineal simple utilizando la función stats.linregress de la biblioteca SciPy.

  • slope: Representa la pendiente (a) de la línea de regresión, que indica cómo cambia el salario por cada incremento unitario en la edad.
  • intercept: Es la intersección (b) con el eje Y, el salario estimado cuando la edad es cero.
  • r_value: Es el coeficiente de correlación, que mide la fuerza y dirección de la relación entre edad y salario.
  • p_value: Evalúa la significancia estadística de la relación (un valor pequeño implica una relación significativa).
  • std_err: Es el error estándar de la pendiente, que mide la precisión de esta estimación.

Gráfica de Regresión Lineal

# Grafica plt. figure (figsize= (8, 6) ) plt . scatter (df ['edad' ] , df [ 'salario' ], color='blue', label= ' Datos' ) plt . plot (df [ 'edad' ] , slope * df [ 'edad' ] + intercept, color='red' , label='Regresión Lineal') plt . xlabel ( 'Edad') plt . ylabel ( ' Salario' ) plt. title ('') plt . grid (True)plt . legend () plt. show () Este código genera una gráfica de dispersión y una línea de regresión lineal utilizando la biblioteca Matplotlib

  • Tamaño de la figura: Se define con plt.figure(figsize=(8, 6)), configurando las dimensiones de la gráfica en pulgadas.
  • Gráfica de dispersión: Con plt.scatter, se grafican los puntos de los datos originales (edad vs. salario) en azul, con la etiqueta "Datos".
  • Línea de regresión: plt.plot añade una línea roja calculada mediante la fórmula de la regresión lineal
  • Etiquetas: Se añaden las etiquetas para los ejes X (Edad) e Y (Salario) con plt.xlabel y plt.ylabel.
  • Cuadrícula y leyenda: plt.grid(True) habilita la cuadrícula, y plt.legend() muestra un recuadro que identifica los elementos visualizados (puntos y línea).
  • Mostrar la gráfica: Finalmente, plt.show() renderiza el gráfico con todos los elementos configurados.

Correlación de Pearson (r)

La correlación de Pearson mide la fuerza y dirección de la relación lineal entre dos variables. Su valor varía entre -1 y 1.

  • r = 1 : Correlación positiva perfecta (cuando x aumenta, y también).
  • r = 0 : No hay correlación.
  • r = - 1 : Correlación negativa perfecta (cuando x aumenta, y disminuye). Cuanto más cerca de 1 o -1, más fuerte es la relación lineal.

Coeficiente de Determinación (R^2)

El coeficiente de determinación indica que porcentaje de la variabilidad en y es explicada por x en un modelo de regresión.

  • R^2 = 1 : El modelo explica el 100% de la variabilidad de y.
  • R^2 = 0 : El modelo no explica nada de la variabilidad de y. Cuanto más cercano a 1, mejor se ajusta el modelo.

Regresión Lineal Múltiple y Regresión Polinomial

Regresión Múltiple

Se extiende la regresión lineal para incluir múltiples variables independientes: y=b0+b1x1+b2x2+ ... +bnxn+€

Componentes de Regresión Múltiple

  • x1,x2, ... ,xn: Variables predictoras.
  • b1,b2, ... ,bn: Coeficientes de regresión, que indican el impacto de cada variable sobre y.

Regresión Polinomial

Extensión de la regresión lineal que permite modelar relaciones no lineales entre variables. Añade términos polinómicos a las variables independientes para capturar patrones más complejos en los datos. y=b0+b1x+b2x^2+ ... +bnx^n+€

Componentes de Regresión Polinomial

  • Grado del polinomio: Determina la curvatura del modelo.
  • Transformación de datos: Se convierten x en x^2, x^3, ... , x^n.

Implementación en Python para Regresión Múltiple y Polinomial

from sklearn. preprocessing import PolynomialFeatures from sklearn. linear model import LinearRegression X = df [ [ 'Edad' , ' Peso ' ] ] Y = df [ ' Altura ' ]modelo = LinearRegression () modelo. fit (X, Y) Y pred_lineal = modelo. predict (X) poly = PolynomialFeatures (degree=2) X poly = poly. fit_transform (X) modelo poly = LinearRegression () modelo poly . fit (X poly, Y) Y_pred_poly = modelo_poly . predict (X_poly) Este código realiza tanto una regresión lineal múltiple como una regresión polinómica de grado 2.

  • Regresión lineal múltiple:
    • Se define el modelo lineal con LinearRegression() y se ajusta a los datos de entrada X (Edad y Peso) y Y (Altura) usando modelo.fit(X, Y).
    • Las predicciones del modelo lineal (Y_pred_lineal) se generan con modelo.predict(X).
    • Este modelo asume una relación directa entre las variables independientes y la variable dependiente.
  • Transformacion polinómica:
    • Se utiliza PolynomialFeatures(degree=2) para ampliar los datos de entrada X, incluyendo términos polinómicos (como cuadrados y productos cruzados de las variables independientes).
    • La matriz resultante X_poly contiene las variables originales junto con las nuevas características polinómicas.
  • Regresión polinómica:
    • Se crea el modelo lineal (modelo_poly) y se ajusta a los datos transformados X_poly y Y con modelo_poly.fit(X_poly, Y).
    • Las predicciones polinomicas (Y_pred_poly) son calculadas con modelo_poly.predict(X_poly).

El proposito es:

  • La regresión lineal múltiple, que utiliza una relación recta entre variables.
  • La regresión polinómica, que permite capturar relaciones no lineales más complejas.

Estandarización de Datos

Al trabajar con modelos de regresión, es crucial preprocesar los datos para mejorar la precisión y estabilidad del modelo:

  • La estandarización transforma los datos para que tengan media 0 y desviación estándar 1. Se usa cuando las variables tienen diferentes escalas, lo que puede afectar el desempeño de los modelos de aprendizaje automático. X_estandarizado = (X - µ)/o Donde:
  • u es la media de la variable.
  • o es la desviación estándar.

Implementación en Python para Estandarización

from sklearn. preprocessing import StandardScaler import numpy as np X = np. array ( [ [1, 2000], [2, 3000], [3, 4000], [4, 5000], [5, 6000]]) scaler = StandardScaler () X scaled = scaler. fit transform (X) _ _ print ( "Datos originales : ", X) print ( "Datos estandarizados : ", X scaled) _

  • Crea un objeto llamado scaler, de la clase standard scaler()
  • scaler.fit_transform(X) calcula las estadísticas de cada columna (media y desviación estándar) y transforma los datos para estandarizarlos.

¿Por qué usar Ridge y Lasso?

En regresión múltiple, si hay colinealidad (variables correlacionadas entre sí), los coeficientes pueden volverse muy grandes o inestables. Para evitarlo, usamos técnicas de regularización como Ridge y Lasso.

Regresión Ridge

Ridge agrega una penalización L2 a la regresión, lo que evita que los coeficientes sean muy grandes.

  • La penalización L2 añade la suma de los cuadrados de los coeficientes al error de la regresión:
  • Esta reduce la magnitud de los coeficientes, pero nunca los hace exactamente cero.
  • Funciona bien cuando hay colinealidad entre variables.

from sklearn. linear model import Ridge X = [ [1, 2], [2, 3], [3, 5], [4, 6], [5, 8]] y = [3, 4, 6, 7, 10] ridge model = Ridge (alpha=1) ridge_model. fit (X, y) print ("Coeficientes de Ridge : ", ridge_model . coef )

Regresión Lasso

Lasso agrega una penalización L1, lo que permite que algunos coeficientes se vuelvan exactamente cero.

  • La penalización L1 añade la suma de los valores absolutos de los coeficientes
  • Selecciona las variables más importantes y elimina variables irrelevantes.

from sklearn. linear model import Lasso lasso model = Lasso (alpha=0.1) lasso model. fit (x, y) print ("Coeficientes de Lasso: ", lasso model . coef ) _

Comparativa de Regresión Ridge y Lasso

CaracterísticaRegresión Ridge (L2)Regresión Lasso (L1)
PenalizaciónSuma de los cuadrados de los coeficientes.Suma de los valores absolutos de los coeficientes.
Efecto en los coeficientesLos reduce pero no los hace cero.Algunos coeficientes se reducen a exactamente cero.
Mejor usoCuando hay colinealidad y quieres mantener todas las variables.Cuando quieres eliminar variables irrelevantes.

Can’t find what you’re looking for?

Explore more topics in the Algor library or create your own materials with AI.