Gumbel
Gumbel
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
from sklearn.metrics import mean_absolute_error, mean_squared_error
for i in range(n):
samples[i, 0] = u[i]
samples[i, 1] = np.power(np.maximum(np.power(u[i], -self.theta) +
np.power(v[i], -self.theta) - 1, 0), -1 / self.theta)
return samples
data = pd.DataFrame({
'Rainfall': rainfall,
'Temperature': temperature
})
# Visualization
plt.figure(figsize=(12, 6))
plt.scatter(data['Rainfall'], data['Temperature'], alpha=0.5, color='blue',
label='Original Data')
plt.scatter(samples_gumbel_df['Rainfall'], samples_gumbel_df['Temperature'],
alpha=0.5, color='orange', label='Gumbel Copula Samples')
plt.title('Original Data vs. Gumbel Copula Samples')
plt.xlabel('Rainfall')
plt.ylabel('Temperature')
plt.grid()
plt.legend()
plt.show()
mae_temperature = mean_absolute_error(original['Temperature'],
simulated['Temperature'])
mse_temperature = mean_squared_error(original['Temperature'],
simulated['Temperature'])
rmse_temperature = np.sqrt(mse_temperature)