diff --git a/config/default.yml b/config/default.yml index 93b7ee953..f4640ff9c 100644 --- a/config/default.yml +++ b/config/default.yml @@ -17,9 +17,9 @@ maxNumberOfRuns: 1 # number of sequential simulation runs executeWithGui: false # true = launch JAS-mine GUI; false = headless (required on servers/CI) randomSeed: 606 # seed for the first run; incremented automatically if randomSeedInnov is true -startYear: 2011 # first year of simulation (must have matching input/donor data) -endYear: 2024 # last year of simulation (inclusive) -popSize: 100000 # simulated population size (larger = more accurate, slower) +startYear: 2019 # first year of simulation (must have matching input/donor data) +endYear: 2022 # last year of simulation (inclusive) +popSize: 50000 # simulated population size (larger = more accurate, slower) # countryString: "United Kingdom" # Auto-detected from donor DB if omitted # integrationTest: false # true = write output to a fixed folder for comparison in CI tests diff --git a/documentation/SimPaths_Variable_Codebook.xlsx b/documentation/SimPaths_Variable_Codebook.xlsx index a14bd3544..f3bf171f5 100644 Binary files a/documentation/SimPaths_Variable_Codebook.xlsx and b/documentation/SimPaths_Variable_Codebook.xlsx differ diff --git a/input/EUROMODoutput/training/EUROMODpolicySchedule.xlsx b/input/EUROMODoutput/training/EUROMODpolicySchedule.xlsx index 72ca67946..c42cab06c 100644 Binary files a/input/EUROMODoutput/training/EUROMODpolicySchedule.xlsx and b/input/EUROMODoutput/training/EUROMODpolicySchedule.xlsx differ diff --git a/input/EUROMODpolicySchedule.xlsx b/input/EUROMODpolicySchedule.xlsx index 72ca67946..9788a1db2 100644 Binary files a/input/EUROMODpolicySchedule.xlsx and b/input/EUROMODpolicySchedule.xlsx differ diff --git a/src/main/java/simpaths/data/statistics/WealthIncomeStatistics.java b/src/main/java/simpaths/data/statistics/WealthIncomeStatistics.java index c935af77e..476d32184 100644 --- a/src/main/java/simpaths/data/statistics/WealthIncomeStatistics.java +++ b/src/main/java/simpaths/data/statistics/WealthIncomeStatistics.java @@ -47,13 +47,12 @@ public class WealthIncomeStatistics { @Column(name = "Gross_Labour_Income_p80") private double yLabP80; - //Equivalised disposable income - @Column(name = "EDI_p50") - private double edi_p50; + //Equivalised disposable income is reported as the income median yHhDispEquivP50; + //the legacy edi_p50 alias is intentionally removed to match the codebook naming rules. //Percentiles of SIndex: - @Column(name = "SIndex_p50") - private double sIndex_p50; + @Column(name = "statSIndexP50") + private double statSIndexP50; //employment income, averaged over workers rather than over population, weekly and not equivalised @Column(name = "labourIncome_perWorker_weekly_18_29") @@ -167,12 +166,12 @@ public void setYHhQuintilesC5P80(double yHhQuintilesC5P80) { this.yHhQuintilesC5P80 = yHhQuintilesC5P80; } - public double getSIndex_p50() { - return sIndex_p50; + public double getStatSIndexP50() { + return statSIndexP50; } - public void setSIndex_p50(double sIndex_p50) { - this.sIndex_p50 = sIndex_p50; + public void setStatSIndexP50(double statSIndexP50) { + this.statSIndexP50 = statSIndexP50; } public double getYLabP20() { @@ -207,14 +206,6 @@ public void setYLabP80(double yLabP80) { this.yLabP80 = yLabP80; } - public double getEdi_p50() { - return edi_p50; - } - - public void setEdi_p50(double edi_p50) { - this.edi_p50 = edi_p50; - } - public double getLabourIncomeWeeklyPerWorker18to29() { return statYLabWeeklyPerWorker18to29Avg; } diff --git a/src/main/java/simpaths/experiment/SimPathsCollector.java b/src/main/java/simpaths/experiment/SimPathsCollector.java index 322a3b3bb..4213fa394 100644 --- a/src/main/java/simpaths/experiment/SimPathsCollector.java +++ b/src/main/java/simpaths/experiment/SimPathsCollector.java @@ -121,8 +121,6 @@ public class SimPathsCollector extends AbstractSimulationCollectorManager implem private Ydses_c5 yHhQuintilesMonthC5; - private EDI edi; //Equivalised disposable income statistics - private GrossLabourIncome grossLabourIncome; private DataExport exportPersons; @@ -181,7 +179,6 @@ public void onEvent(Enum type) { calculateGrossIncome(); case CalculateEquivalisedHouseholdDisposableIncome: calculateEquivalisedHouseholdDisposableIncome(); - calculateEDI(); break; case CalculateGiniCoefficients: calculateGiniCoefficients(); @@ -309,7 +306,6 @@ public void buildObjects() { } yHhQuintilesMonthC5 = new Ydses_c5(); - edi = new EDI(); grossLabourIncome = new GrossLabourIncome(); @@ -456,17 +452,6 @@ public void update() { } } - private class EDI { - final SimPathsModel model = (SimPathsModel) getManager(); - - public void update() { - var hh_edi_cs = new CrossSection<>(model::getBenefitUnits, BenefitUnit::getEquivalisedDisposableIncomeYearly); - var hh_edi_stats = new Stats(hh_edi_cs.get()).descrStats(); - wealthIncomeStats.setEdi_p50(hh_edi_stats.getPercentile(50.0)); - } - } - - public class GiniPersonalGrossEarnings { //I calculate that the Gini coefficient for household-weights w_i and variables x_i: // G = [ sum_i sum_j w_i * w_j * abs( x_i - x_j) ] / [ 2 * (sum_i w_i) * (sum_j w_j * x_j) ] @@ -740,10 +725,6 @@ private void calculateGiniCoefficients() { //Called just before database dump } - private void calculateEDI() { - edi.update(); - } - private void calculateGrossIncome() { yHhQuintilesMonthC5.update(); grossLabourIncome.update(); diff --git a/src/main/java/simpaths/model/Person.java b/src/main/java/simpaths/model/Person.java index 208dac809..d37260fec 100644 --- a/src/main/java/simpaths/model/Person.java +++ b/src/main/java/simpaths/model/Person.java @@ -3414,9 +3414,7 @@ public enum DoublesVariables { eduHighestParentC3_1, eduHighestParentC3_2, eduHighestParentC3_3, - eduHighestPartnerC3, eduHighestPartnerC3HighL1, - eduHighestPartnerC3L1, eduHighestPartnerC3LowL1, eduHighestPartnerC3MediumL1, eduSampleFlag, diff --git a/src/test/java/simpaths/integrationtest/expected/WealthIncomeStatistics.csv b/src/test/java/simpaths/integrationtest/expected/WealthIncomeStatistics.csv index 9dec122e7..8c71f82c8 100644 --- a/src/test/java/simpaths/integrationtest/expected/WealthIncomeStatistics.csv +++ b/src/test/java/simpaths/integrationtest/expected/WealthIncomeStatistics.csv @@ -1,9 +1,9 @@ -run,time,id_WealthIncomeStatistics,edi_p50,sIndex_p50,statInvestLoss18to29Avg,statInvestLoss30to54Avg,statInvestLoss55to74Avg,statYDispGrossOfLosses18to29Avg,statYDispGrossOfLosses30to54Avg,statYDispGrossOfLosses55to74Avg,statYHhDispEquivNatGini,statYInvest18to29Avg,statYInvest30to54Avg,statYInvest55to74Avg,statYLabWeeklyPerWorker18to29Avg,statYLabWeeklyPerWorker30to54Avg,statYLabWeeklyPerWorker55to74Avg,statYMktNatGini,statYPens18to29Avg,statYPens30to54Avg,statYPens55to74Avg,wealth18to29Avg,wealth30to54Avg,wealth55to74Avg,yHhDispEquivP50,yHhQuintilesC5P20,yHhQuintilesC5P40,yHhQuintilesC5P60,yHhQuintilesC5P80,yLabP20,yLabP40,yLabP60,yLabP80 -1,2019.0,1,15462.037199999999,0.0,0.0,0.0,0.0,1031.2494710491426,1657.7406238267768,1562.9547541500126,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15751.617600000001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -1,2020.0,1,16262.495660525805,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16283.058028118841,5.977584300385669,7.396355354574935,8.108897415752347,8.665867672167579,624.6825800939089,1486.1130942772668,2471.8220406055743,4151.642488756834 -1,2021.0,1,16364.101131236677,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16379.967347473626,6.177813108214614,7.45310922629252,8.1410107648745,8.694185148382058,762.3502620718175,1572.2382052866676,2544.74016172959,4210.789651944029 -1,2022.0,1,16678.95857695898,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16679.467668613863,6.268615570294203,7.504785946786127,8.16541164625361,8.707906611672232,759.7176689744649,1590.5858294412774,2573.544415714072,4269.280704865495 -2,2019.0,1,15471.2418,0.0,0.0,0.0,0.0,1031.0741948715065,1656.383215316451,1567.405011984656,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15755.1816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -2,2020.0,1,16915.319193668918,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16941.95449495689,5.913483264109271,7.4432276502538866,8.209969239951125,8.793580531823213,655.1606771183261,1695.724672045708,2872.7218327604787,4823.908522203283 -2,2021.0,1,17143.689727643847,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17144.59786664643,6.200487790558318,7.5221100308260915,8.249982108239418,8.81767529803498,817.8211845767195,1819.8519291966963,2979.2435430051496,4927.364252821702 -2,2022.0,1,17213.779257599344,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17213.779257599344,6.298369699763875,7.533738907132372,8.256738801983554,8.849786460591709,849.0814770119758,1856.641966032503,3018.7928994020353,4957.024082264723 \ No newline at end of file +run,time,id_WealthIncomeStatistics,statInvestLoss18to29Avg,statInvestLoss30to54Avg,statInvestLoss55to74Avg,statSIndexP50,statYDispGrossOfLosses18to29Avg,statYDispGrossOfLosses30to54Avg,statYDispGrossOfLosses55to74Avg,statYHhDispEquivNatGini,statYInvest18to29Avg,statYInvest30to54Avg,statYInvest55to74Avg,statYLabWeeklyPerWorker18to29Avg,statYLabWeeklyPerWorker30to54Avg,statYLabWeeklyPerWorker55to74Avg,statYMktNatGini,statYPens18to29Avg,statYPens30to54Avg,statYPens55to74Avg,wealth18to29Avg,wealth30to54Avg,wealth55to74Avg,yHhDispEquivP50,yHhQuintilesC5P20,yHhQuintilesC5P40,yHhQuintilesC5P60,yHhQuintilesC5P80,yLabP20,yLabP40,yLabP60,yLabP80 +1,2019.0,1,0.0,0.0,0.0,0.0,1031.2494710491426,1657.7406238267768,1562.9547541500126,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15751.617600000001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +1,2020.0,1,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16283.058028118841,5.977584300385669,7.396355354574935,8.108897415752347,8.665867672167579,624.6825800939089,1486.1130942772668,2471.8220406055743,4151.642488756834 +1,2021.0,1,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16379.967347473626,6.177813108214614,7.45310922629252,8.1410107648745,8.694185148382058,762.3502620718175,1572.2382052866676,2544.74016172959,4210.789651944029 +1,2022.0,1,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16679.467668613863,6.268615570294203,7.504785946786127,8.16541164625361,8.707906611672232,759.7176689744649,1590.5858294412774,2573.544415714072,4269.280704865495 +2,2019.0,1,0.0,0.0,0.0,0.0,1031.0741948715065,1656.383215316451,1567.405011984656,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15755.1816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +2,2020.0,1,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16941.95449495689,5.913483264109271,7.4432276502538866,8.209969239951125,8.793580531823213,655.1606771183261,1695.724672045708,2872.7218327604787,4823.908522203283 +2,2021.0,1,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17144.59786664643,6.200487790558318,7.5221100308260915,8.249982108239418,8.81767529803498,817.8211845767195,1819.8519291966963,2979.2435430051496,4927.364252821702 +2,2022.0,1,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,NaN,NaN,NaN,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17213.779257599344,6.298369699763875,7.533738907132372,8.256738801983554,8.849786460591709,849.0814770119758,1856.641966032503,3018.7928994020353,4957.024082264723 \ No newline at end of file