0% encontró este documento útil (0 votos)
16 vistas3 páginas

Regresión Logarítmica en Google Colab

El documento presenta un módulo sobre regresión logarítmica tipo ley de potencias, que permite ajustar parámetros a partir de datos observacionales mediante transformaciones logarítmicas. Se incluye un ejemplo práctico en Python para generar datos sintéticos, ajustar un modelo lineal y evaluar su desempeño. Además, se discuten los fundamentos de la regresión log-log y sus ventajas, como la producción de fórmulas explícitas y la compatibilidad con análisis dimensional.

Cargado por

Mister Palta
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas3 páginas

Regresión Logarítmica en Google Colab

El documento presenta un módulo sobre regresión logarítmica tipo ley de potencias, que permite ajustar parámetros a partir de datos observacionales mediante transformaciones logarítmicas. Se incluye un ejemplo práctico en Python para generar datos sintéticos, ajustar un modelo lineal y evaluar su desempeño. Además, se discuten los fundamentos de la regresión log-log y sus ventajas, como la producción de fórmulas explícitas y la compatibilidad con análisis dimensional.

Cargado por

Mister Palta
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulo 2: Regresión logarı́tmica tipo ley de potencias

Serie de aprendizaje en Google Colab

Contexto
Muchos fenómenos fı́sicos siguen leyes empı́ricas del tipo:
 q
L
Y = a · Rem · F rn · W ep ·
H
Estas expresiones pueden derivarse de principios de similitud, análisis dimensional o resultados
de simulaciones. A través de regresión logarı́tmica, podemos ajustar los parámetros a, m, n, p, q
directamente desde datos observacionales o numéricos.

Transformación logarı́tmica
Aplicando logaritmo natural:
 
L
log(Y ) = log(a) + m log(Re) + n log(F r) + p log(W e) + q log
H
Esto linealiza la relación, permitiendo utilizar regresión lineal múltiple para estimar los exponentes.

Código Python explicado


Importación de librerı́as

import numpy as np
import pandas as pd
import matplotlib . pyplot as plt
from sklearn . linear_model import LinearRegression
from sklearn . metrics import mean_squared_error , r2_score

Generación de datos
Creamos un conjunto sintético con una ley de potencias conocida.
np . random . seed (0)
n = 300
Re = np . random . uniform (100 , 10000 , n )
Fr = np . random . uniform (0.1 , 5 , n )
We = np . random . uniform (1 , 100 , n )
LH = np . random . uniform (0.1 , 10 , n )

Vmax = 2.5 * ( Re **0.5) * ( Fr **0.3) / ( We **0.2 * LH **0.1)


Vmax *= np . exp (0.05 * np . random . randn ( n ) ) # ruido log - normal

1
Transformación de variables
Aplicamos logaritmo a las variables para linealizar el modelo.
data = pd . DataFrame ({ ’ Re ’: Re , ’ Fr ’: Fr , ’ We ’: We , ’ LH ’: LH , ’ Vmax ’: Vmax })
logX = np . log ( data [[ ’ Re ’ , ’ Fr ’ , ’ We ’ , ’ LH ’ ]])
logY = np . log ( data [ ’ Vmax ’ ])

Ajuste del modelo


Entrenamos un modelo lineal sobre los datos transformados.
model = LinearRegression ()
model . fit ( logX , logY )

coefs = model . coef_


intercept = model . intercept_
print ( " Coeficientes : " , coefs )
print ( " Intercepto ( log a ) : " , intercept )

Reconstrucción del modelo fı́sico

a = np . exp ( intercept )
print ( f " Vmax { a :.3 f } * Re ^{ coefs [0]:.3 f } * Fr ^{ coefs [1]:.3 f } * We ^{ coefs [2]:.3 f
,→ } * ( L / H ) ^{ coefs [3]:.3 f } " )

Evaluación del modelo

logY_pred = model . predict ( logX )


r2 = r2_score ( logY , logY_pred )
rmse = np . sqrt ( mean_squared_error ( logY , logY_pred ) )
print ( f " R ^2: { r2 :.4 f } , RMSE : { rmse :.4 f } " )

Visualización

plt . scatter ( np . exp ( logY ) , np . exp ( logY_pred ) , alpha =0.6)


plt . plot ([ min ( Vmax ) , max ( Vmax ) ] , [ min ( Vmax ) , max ( Vmax ) ] , ’r - - ’)
plt . xlabel ( " Vmax real " )
plt . ylabel ( " Vmax predicho " )
plt . title ( " P r e d i c c i n en escala original " )
plt . grid ( True )
plt . show ()

Conclusión
Este enfoque permite obtener una expresión matemática interpretativa a partir de datos. Es ideal
cuando se sospecha de leyes escalares o relaciones de tipo monomial.

2
Apéndice B: Fundamentos de regresión log-log
B.1 Definición
Dado:
k k
Xiβi
Y X
Y =a· ⇒ log(Y ) = log(a) + βi log(Xi )
i=1 i=1

B.2 Estimación
Se realiza mediante mı́nimos cuadrados ordinarios:

min ∥ỹ − Xβ∥2


β

B.3 Interpretación
• Cada βi representa un exponente fı́sico interpretable.

• exp(β0 ) es el coeficiente multiplicativo.

B.4 Ventajas
• Produce fórmulas explı́citas y diferenciables.

• Compatible con análisis dimensional.

• Fácilmente verificable por visualización log-log.

B.5 Referencias
Montgomery, D. C., et al. (2012). Introduction to Linear Regression Analysis. Wiley.
Pope, S. B. (2000). Turbulent Flows. Cambridge University Press.

También podría gustarte