5Why IRENE_DLL? Need of reliable model estimates No standard theory on model evaluationNo standard “boxes of tools”Plethora of philosophical theories, statistical techniques, and software practicesIRENE_DLL: a set of tools all housedin a single, integrated component
6What IRENE_DLL can doDifference-based analysis: indices, test statisticsRegression-based analysis: parameters, test statisticsPatterns detection: “Pattern Index”Probability distributions: density functions, cumulative distributions (exceedence, non-exceedence)Aggregation: first level (“module”), second level (“indicator”)“Shift” analysis (Time mismatch)
8IRENE_DLL in a nutshell IRENE_DLL is a library of methods and functions to compute a variety of statistics and statistical testsIt consists of ten classes, containing data services, mathematical routines and some special data analysis proceduresAll IRENE_DLL classes can be accessed individually (no hierarchy)
9DistributionFunctions OverviewData objectsDataSelectionsDataSelectionComputing objectsPatternDistributionFunctionsRegressionObjectIndexObjectTestsAggregation objectsModuleIndicatorAccessory objectsGeneralRoutinesInfo-display routinesThey store data to be processed, and expose properties to handle them.Each object holds a group of related functions.They contain methods to perform statistics aggregation
11Handling data (1)To be accepted by any functions, data (estimated and measured) must be loaded into a DataSelection objectEMExternal dataDataSelectionestimatedmeasured(independent)
12Handling data (2)Whenever multiple series of data are to be processed, it is convenient to use a collective DataSelections object:External dataEMDataSelection 1DataSelection 2DataSelection 3DataSelectionsDataSelection 1DataSelection 2DataSelection 3
13Handling functionsTo use a particular function, you must call it from the parent object, then pass it the data (in the DataSelection format), and the necessary specifications:Computing objectFunction_1Function_2(….)Function_nDataSelectionRequired SpecsOutputsOutputs from functions are aggregated in a single, collective variable
15Handling outputsAll functions in IRENE_DLL return a package of outputsA special collective variable is designed for each type of functionExample: content of the Index_Variable:
16Example: computing regression Compute regression parameters for three arrays of estimated data against three corresponding arrays of measured dataArray MyEstimated(1 to 365, 1 to 3)Array MyMeasured(1 to 365, 1 to 3)
17Example: (1) load dataStart an instance of a DataSelection object, and transfer your data inside it through the Estimated and Measured propertiesDim Nitrates As New DataSelectionLoop through:Nitrates.Estimated(i, j) = MyEstimated(i, j)Nitrates.Measured(i, j) = MyMeasured(i, j)
18Example: (2) Compute Regression Start an instance of the RegressionObject, then call the function Regression_LS (least squares method)Dim RegrCalculator As New RegressionObjectDim RegrOutput As Regression_VariableRegrOutput = RegrCalculator.Regression_LS(Nitrates, Paired_Columns, Measured_Variable)
19Example: (3) Display results Outputs are returned as arrays of valuesLoop from j = 1 to 3 (the number of columns)Print RegrOutput.Intercept(j) Print RegrOutput.Intercept_StandError(j) Print RegrOutput.Intercept_Tvs0(j)Print RegrOutput.Intercept_Prob_Tvs0(j) Print RegrOutput.Slope(j) Print RegrOutput.Slope_StandError(j)Print RegrOutput.Slope_Tvs0(j) Print RegrOutput.Slope_Tvs1(j)Print RegrOutput.Slope_Prob_Tvs0(j)Print RegrOutput.Slope_Prob_Tvs1(j) Print RegrOutput.F(j)Print RegrOutput.Prob_F(j)
21Aggregation of indices: the problem The need to define synthetic measures of model performance is a major topic of interest in the field of model evaluation.Giving a solid judgement is often complicated by the need to balance, for instance, departure of estimates from measurements, modelling efficiency, correlation measures, presence/absence of systematic behavior in the residuals, etc.The user may want to combine all such aspects in only one aggregated index.
22IRENE’s approachIndex/test aggregation is set up by IRENE, based on an expert system using decision rules, according to fuzzy logicThis technique is robust when uncertain data are used (e.g. subjective judgements) and allows an aggregation of dissimilar statistics in a consistent and reproducible way.
23Aggregation levels hyerarchy IRENE_DLL supports two levels of statistics aggregation:First level: multiple indices/tests aggregated in one single index (Module)Second level: Multiple modules aggregated in one single index (Indicator)
24Module specifications Aggregation of statistics require the user to introduce specifications derived from his/her expert knowledge, and objectivesFor each index to aggregate, the user must specify:The DataSelectionThe Favourable and Unfavourable limit valuesThe relative weight
25How to build a Module Start an instance of the Module object Add indices to aggregate, with the required specificationsFinally, compute module value calling the function Module_ValueMyModuleModule_ValueRMSE, DataSelection, 0.1, 0.8, 1Add_Index:r_Pearson, DataSelection, 0.95, 0.90, 1Add_Index:Pattern, DataSelection, 0.2, 0.75, 0.5Add_Index:(a score between 0 and 1)RMSEr_PearsonPattern
26Time mismatch analysis There are no specific indices to investigate the uncertainty about possible displacements (delay or acceleration) registered in time series.Soil NH4 (mg kg-1)A time mismatch may be detected by an iterated procedure, “shifting” repeatedly the estimated points until optimal model performance values are found.
27Finding a time mismatch Starting from an observed model performance as initial condition, the procedure runs as follows:the simulated points are moved backward in time to the maximum anticipation chosen to evaluate the time mismatchthe desired evaluation indices are computed;the simulated points of one time history are moved of one selected time step forward;points 2 to 3 are reiterated until the maximum allowed time delay is reached.The time mismatch is identified by the time step (forward or backward) at which the best value of the evaluation indices are reached.
28Handling time mismatch in IRENE_DLL All functions exposed by IRENE_DLL have an optional ShiftN parameter:Ex., in the IndexObject object:Public Function RMSE(Sel As DataSelection, Mode As Mode, [ByVal ShiftN As Long = 0], [ByVal Prob_level As Double = 0.05]) As Index_VariableBy setting a ShiftN value <> 0, the index is computed shifting the estimated points.We can explore a range of ShiftN values by a loop
32In the next future: Integration in IRENE interface Integration in development frameworks (MODCOM)Introduction of robust statistics (median-based).Introduction of randomization procedures (“bootstrap”)(….)