← Volver al blog

Data Science with Python — CCPP case

Un caso práctico de análisis exploratorio de datos con pandas y matplotlib: explorar la relación entre variables ambientales y la potencia eléctrica generada por una Combined Cycle Power Plant (central de ciclo combinado).

El dataset es de libre acceso en UCI Machine Learning Repository — contiene 9,568 observaciones recolectadas durante 6 años de operación de una planta real:

https://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant

Las variables disponibles son:

  • AT — Temperatura ambiente (°C)
  • V — Vacío de escape (cm Hg)
  • AP — Presión ambiente (hPa)
  • RH — Humedad relativa (%)
  • EP — Salida horaria neta de energía eléctrica (MW)

El objetivo es cuantificar cómo la presión ambiente (AP) influye sobre la potencia generada (EP).

import pandas as pd
import matplotlib.pyplot as plt

#Importing the dataset
dataset = pd.read_excel("Combined_Cycle_Power_Plant_Data_Set.xlsx")
print(f"Showing the header of the dataset: \n {dataset.head()}")

#Plotting AP and EP data
plt.scatter(dataset['AP'], dataset['EP'])
plt.xlabel('Ambient Pressure (AP)')
plt.ylabel('Net Hourly Electrical Energy Output (EP)')
plt.title('Relationship between AP and EP')
plt.show()

#Calculating the correlation between AP and EP
correlation = dataset['EP'].corr(dataset['AP'])
print(f"The correlation between AP and EP is: {correlation:.4f}")

La salida numérica:

The correlation between AP and EP is: 0.5185

AP vs EP scatter

La correlación de Pearson entre AP y EP es de aproximadamente \(r \approx 0.52\) — relación positiva moderada. Matemáticamente:

\[r = \frac{\sum_{i=1}^{n}(AP_i - \overline{AP})(EP_i - \overline{EP})}{\sqrt{\sum (AP_i - \overline{AP})^2}\;\sqrt{\sum (EP_i - \overline{EP})^2}}\]

Interpretación física: cuando la presión ambiente sube, la densidad del aire aumenta, mejora el flujo másico de aire en la turbina de gas y la planta entrega más potencia. La correlación no es perfecta porque AT (temperatura) y V (vacío del condensador) tienen mucha más influencia sobre EP (\(r_{AT,EP} \approx -0.95\)).

Próximos pasos típicos:

  • Matriz de correlaciones completa (dataset.corr()) + heatmap con seaborn
  • Ajuste de un modelo lineal multivariable (sklearn.linear_model.LinearRegression) usando AT, V, AP, RH como predictores
  • Evaluación con \(R^2\) y RMSE sobre un split train/test

Instalación:

pip install pandas matplotlib openpyxl
← Volver al blog