diff --git a/extreme_fit/estimator/quantile_estimator/abstract_quantile_estimator.py b/extreme_fit/estimator/quantile_estimator/abstract_quantile_estimator.py
index 0c1a1a1d33886741956c1f7ef518702bf9ffb00a..c16b79c355aac1aac7ed72a55722d3e21f3c1ede 100644
--- a/extreme_fit/estimator/quantile_estimator/abstract_quantile_estimator.py
+++ b/extreme_fit/estimator/quantile_estimator/abstract_quantile_estimator.py
@@ -1,21 +1,9 @@
 from abc import ABC
 
-import numpy as np
 from cached_property import cached_property
 
 from extreme_fit.estimator.abstract_estimator import AbstractEstimator
-from extreme_fit.estimator.margin_estimator.abstract_margin_estimator import LinearMarginEstimator
-from extreme_fit.function.abstract_quantile_function import AbstractQuantileFunction, \
-    QuantileFunctionFromMarginFunction, QuantileFunctionFromParamFunction
-from extreme_fit.function.margin_function.abstract_margin_function import AbstractMarginFunction
-from extreme_fit.function.param_function.linear_coef import LinearCoef
-from extreme_fit.function.param_function.param_function import LinearParamFunction
-from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \
-    AbstractTemporalLinearMarginModel
-from extreme_fit.model.margin_model.linear_margin_model.linear_margin_model import LinearMarginModel
-from extreme_fit.model.quantile_model.quantile_regression_model import AbstractQuantileRegressionModel
-from extreme_fit.model.result_from_model_fit.abstract_result_from_model_fit import AbstractResultFromModelFit
-from extreme_fit.model.result_from_model_fit.result_from_quantilreg import ResultFromQuantreg
+from extreme_fit.function.abstract_quantile_function import AbstractQuantileFunction
 from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
 
 
diff --git a/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_margin.py b/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_margin.py
index 6a65903a191d379a389ee0384ccfb88ff32c3150..7a672a426b9130050282bc053c1ce2d8ce0eee9a 100644
--- a/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_margin.py
+++ b/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_margin.py
@@ -1,22 +1,12 @@
-from abc import ABC
-
-import numpy as np
 from cached_property import cached_property
 
-from extreme_fit.estimator.abstract_estimator import AbstractEstimator
 from extreme_fit.estimator.margin_estimator.abstract_margin_estimator import LinearMarginEstimator
 from extreme_fit.estimator.quantile_estimator.abstract_quantile_estimator import AbstractQuantileEstimator
 from extreme_fit.function.abstract_quantile_function import AbstractQuantileFunction, \
-    QuantileFunctionFromMarginFunction, QuantileFunctionFromParamFunction
+    QuantileFunctionFromMarginFunction
 from extreme_fit.function.margin_function.abstract_margin_function import AbstractMarginFunction
-from extreme_fit.function.param_function.linear_coef import LinearCoef
-from extreme_fit.function.param_function.param_function import LinearParamFunction
 from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \
-    AbstractTemporalLinearMarginModel, TemporalMarginFitMethod
-from extreme_fit.model.margin_model.linear_margin_model.linear_margin_model import LinearMarginModel
-from extreme_fit.model.quantile_model.quantile_regression_model import AbstractQuantileRegressionModel
-from extreme_fit.model.result_from_model_fit.abstract_result_from_model_fit import AbstractResultFromModelFit
-from extreme_fit.model.result_from_model_fit.result_from_quantilreg import ResultFromQuantreg
+    TemporalMarginFitMethod
 from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
 
 
diff --git a/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_regression.py b/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_regression.py
index 8b7d2b0c1aeb75ee125be777735f568458374dba..acd1e56a4e136574ec96222848001d09533e6710 100644
--- a/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_regression.py
+++ b/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_regression.py
@@ -1,20 +1,10 @@
-from abc import ABC
-
-import numpy as np
 from cached_property import cached_property
 
-from extreme_fit.estimator.abstract_estimator import AbstractEstimator
-from extreme_fit.estimator.margin_estimator.abstract_margin_estimator import LinearMarginEstimator
 from extreme_fit.estimator.quantile_estimator.abstract_quantile_estimator import AbstractQuantileEstimator
 from extreme_fit.function.abstract_quantile_function import AbstractQuantileFunction, \
-    QuantileFunctionFromMarginFunction, QuantileFunctionFromParamFunction
-from extreme_fit.function.margin_function.abstract_margin_function import AbstractMarginFunction
+    QuantileFunctionFromParamFunction
 from extreme_fit.function.param_function.linear_coef import LinearCoef
 from extreme_fit.function.param_function.param_function import LinearParamFunction
-from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \
-    AbstractTemporalLinearMarginModel
-from extreme_fit.model.margin_model.linear_margin_model.linear_margin_model import LinearMarginModel
-from extreme_fit.model.quantile_model.quantile_regression_model import AbstractQuantileRegressionModel
 from extreme_fit.model.result_from_model_fit.abstract_result_from_model_fit import AbstractResultFromModelFit
 from extreme_fit.model.result_from_model_fit.result_from_quantilreg import ResultFromQuantreg
 from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
diff --git a/extreme_fit/model/quantile_model/quantile_regression_model.py b/extreme_fit/model/quantile_model/quantile_regression_model.py
index 88459f77fdb2e62006d6f9ca34f0b2cb51ec5792..a9e377c66f956dca4004728716fe0e8bdef036ce 100644
--- a/extreme_fit/model/quantile_model/quantile_regression_model.py
+++ b/extreme_fit/model/quantile_model/quantile_regression_model.py
@@ -27,7 +27,6 @@ class AbstractQuantileRegressionModel(AbstractModel):
             'tau': self.quantile,
             'data': self.data,
             'formula': self.formula
-
         }
         res = safe_run_r_estimator(r.rq, **parameters)
         return ResultFromQuantreg(res)
diff --git a/projects/quantile_regression_vs_evt/AbstractSimulation.py b/projects/quantile_regression_vs_evt/AbstractSimulation.py
index 14dbb9265c574775b0d41b1e32c4154dc12e9e7b..a757e77e3ffc39f07537ed8df213a70d0a045021 100644
--- a/projects/quantile_regression_vs_evt/AbstractSimulation.py
+++ b/projects/quantile_regression_vs_evt/AbstractSimulation.py
@@ -15,6 +15,8 @@ from root_utils import get_display_name_from_object_type
 from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
 from spatio_temporal_dataset.coordinates.temporal_coordinates.generated_temporal_coordinates import \
     ConsecutiveTemporalCoordinates
+from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.abstract_transformation import \
+    CenteredScaledNormalization, IdentityTransformation
 from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
 from spatio_temporal_dataset.spatio_temporal_observations.abstract_spatio_temporal_observations import \
     AbstractSpatioTemporalObservations
@@ -27,7 +29,8 @@ class Coordinates(object):
 class AbstractSimulation(object):
 
     def __init__(self, nb_time_series, quantile, time_series_lengths=None, multiprocessing=False,
-                 model_classes=None):
+                 model_classes=None, transformation_class=CenteredScaledNormalization):
+        self.transformation_class = transformation_class
         self.models_classes = model_classes
         self.multiprocessing = multiprocessing
         self.quantile = quantile
@@ -48,7 +51,8 @@ class AbstractSimulation(object):
     def time_serie_length_to_coordinates(self) -> Dict[int, AbstractCoordinates]:
         d = OrderedDict()
         for length in self.time_series_lengths:
-            d[length] = ConsecutiveTemporalCoordinates.from_nb_temporal_steps(length)
+            d[length] = ConsecutiveTemporalCoordinates.from_nb_temporal_steps(length,
+                                                                              transformation_class=self.transformation_class)
         return d
 
     @cached_property
@@ -100,7 +104,7 @@ class AbstractSimulation(object):
             label = get_display_name_from_object_type(model_class)
             ax.plot(lengths, mean_error, label=label)
             ax.set_xlabel('# Data')
-            ax.set_ylabel('Absolute error for the {} quantile at the last coordinate'.format(self.quantile))
+            ax.set_ylabel('Relative error for the {} quantile at the last coordinate'.format(self.quantile))
             ax.legend()
         if show:
             plt.show()
diff --git a/projects/quantile_regression_vs_evt/GevSimulation.py b/projects/quantile_regression_vs_evt/GevSimulation.py
index e6d66047a5118ca70e2d295e9e3a53ecc2b7f2fa..62109e0ed9e5fc6d562e32c1cb2023da27687750 100644
--- a/projects/quantile_regression_vs_evt/GevSimulation.py
+++ b/projects/quantile_regression_vs_evt/GevSimulation.py
@@ -33,7 +33,7 @@ class GevSimulation(AbstractSimulation):
     def generate_all_observation(self, nb_time_series, length) -> List[AbstractSpatioTemporalObservations]:
         coordinates = self.time_serie_length_to_coordinates[length]
         margin_model = self.time_series_lengths_to_margin_model[length]
-        return [MarginAnnualMaxima.from_sampling(nb_obs=length, coordinates=coordinates, margin_model=margin_model)
+        return [MarginAnnualMaxima.from_sampling(nb_obs=1, coordinates=coordinates, margin_model=margin_model)
                 for _ in range(nb_time_series)]
 
     def compute_errors(self, length: int, estimators: List[AbstractQuantileEstimator]):
@@ -44,7 +44,7 @@ class GevSimulation(AbstractSimulation):
         true_quantile = margin_model.margin_function_sample.get_gev_params(last_coordinate).quantile(self.quantile)
         # Compute estimated values
         estimated_quantiles = [estimator.function_from_fit.get_quantile(last_coordinate) for estimator in estimators]
-        return np.abs(np.array(estimated_quantiles) - true_quantile)
+        return 100 * np.abs(np.array(estimated_quantiles) - true_quantile) / true_quantile
 
 
 class StationarySimulation(GevSimulation):
@@ -63,7 +63,7 @@ class NonStationaryLocationSimulation(GevSimulation):
 
     def create_model(self, coordinates):
         gev_param_name_to_coef_list = {
-            GevParams.LOC: [0, 1],
+            GevParams.LOC: [0, 10],
             GevParams.SHAPE: [0],
             GevParams.SCALE: [1],
         }
diff --git a/projects/quantile_regression_vs_evt/main_quantile_regression.py b/projects/quantile_regression_vs_evt/main_quantile_regression.py
new file mode 100644
index 0000000000000000000000000000000000000000..c13d6da795093c3cbd45eebf6fa102d174227fae
--- /dev/null
+++ b/projects/quantile_regression_vs_evt/main_quantile_regression.py
@@ -0,0 +1,17 @@
+from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel, \
+    NonStationaryLocationTemporalModel
+from extreme_fit.model.quantile_model.quantile_regression_model import ConstantQuantileRegressionModel, \
+    TemporalCoordinatesQuantileRegressionModel
+from projects.quantile_regression_vs_evt.GevSimulation import StationarySimulation, NonStationaryLocationSimulation
+
+nb_time_series = 10
+quantile = 0.9
+time_series_lengths = [50, 100, 200]
+
+# simulation = StationarySimulation(nb_time_series=nb_time_series, quantile=quantile, time_series_lengths=time_series_lengths,
+#                                   model_classes=[StationaryTemporalModel, ConstantQuantileRegressionModel])
+# simulation.plot_error_for_last_year_quantile()
+
+simulation = NonStationaryLocationSimulation(nb_time_series=nb_time_series, quantile=quantile, time_series_lengths=time_series_lengths,
+                                  model_classes=[NonStationaryLocationTemporalModel, TemporalCoordinatesQuantileRegressionModel][:])
+simulation.plot_error_for_last_year_quantile()
diff --git a/spatio_temporal_dataset/coordinates/abstract_coordinates.py b/spatio_temporal_dataset/coordinates/abstract_coordinates.py
index 16cc04ad889777c65f04e166f8554f5bc621c66c..af07c1118f8186fde86fa61812b5c2c5614178b1 100644
--- a/spatio_temporal_dataset/coordinates/abstract_coordinates.py
+++ b/spatio_temporal_dataset/coordinates/abstract_coordinates.py
@@ -129,7 +129,7 @@ class AbstractCoordinates(object):
     @property
     def df_merged(self) -> pd.DataFrame:
         # Merged DataFrame of df_coord with s_split
-        return self.df_all_coordinates.join(self.df_split)
+        return self.df_coordinates().join(self.df_split)
 
     # Split
 
diff --git a/test/test_extreme_fit/test_function/test_param_function.py b/test/test_extreme_fit/test_function/test_param_function.py
index fba861ce6490d0bd8e91f6d297bab3f271fc2f7a..2604da08df8087481e8928b3af971809a39cd157 100644
--- a/test/test_extreme_fit/test_function/test_param_function.py
+++ b/test/test_extreme_fit/test_function/test_param_function.py
@@ -6,7 +6,7 @@ from extreme_fit.function.param_function.linear_coef import LinearCoef
 from extreme_fit.function.param_function.param_function import LinearParamFunction
 
 
-class ParamFunction(unittest.TestCase):
+class TestParamFunction(unittest.TestCase):
 
     def test_out_of_bounds(self):
         param_function = LinearParamFunction(dims=[0], coordinates=np.array([[0]]), linear_coef=LinearCoef())