diff --git a/src/main/java/simpaths/data/statistics/EmploymentStatistics.java b/src/main/java/simpaths/data/statistics/EmploymentStatistics.java index 86a5a614c..aa6f7d67a 100644 --- a/src/main/java/simpaths/data/statistics/EmploymentStatistics.java +++ b/src/main/java/simpaths/data/statistics/EmploymentStatistics.java @@ -8,6 +8,7 @@ import microsim.statistics.CrossSection; import microsim.statistics.IDoubleSource; import microsim.statistics.functions.MeanArrayFunction; +import simpaths.data.filters.AgeGroupCSfilter; import simpaths.data.filters.EmploymentHistoryFilter; import simpaths.model.SimPathsModel; import simpaths.model.enums.Les_c4; @@ -25,6 +26,12 @@ public class EmploymentStatistics { @Column(name= "NotEmpToEmp") private double NotEmpToEmp; // Proportion of unemployed people becoming employed + @Column(name = "PropEmployed") + private double PropEmployed; + + @Column(name = "PropUnemployed") + private double PropUnemployed; + public double getEmpToNotEmp() { return EmpToNotEmp; @@ -42,6 +49,22 @@ public void setNotEmpToEmp(double notEmpToEmp) { NotEmpToEmp = notEmpToEmp; } + public double getPropEmployed() { + return PropEmployed; + } + + public void setPropEmployed(double propEmployed) { + PropEmployed = propEmployed; + } + + public double getPropUnemployed() { + return PropUnemployed; + } + + public void setPropUnemployed(double propUnemployed) { + PropUnemployed = propUnemployed; + } + public void update(SimPathsModel model) { EmploymentHistoryFilter employmentHistoryEmployed = new EmploymentHistoryFilter(Les_c4.EmployedOrSelfEmployed); @@ -64,6 +87,22 @@ public void update(SimPathsModel model) { isEmpToNotEmp.applyFunction(); setEmpToNotEmp(isEmpToNotEmp.getDoubleValue(IDoubleSource.Variables.Default)); + // Employment and unemployment, working age adults 16-64 + AgeGroupCSfilter ageGroupCSfilter = new AgeGroupCSfilter(16, 64); + + CrossSection.Integer personsEmployed = new CrossSection.Integer(model.getPersons(), Person.class, "getEmployed", true); + CrossSection.Integer personsUnemployed = new CrossSection.Integer(model.getPersons(), Person.class, "getNonwork", true); + + personsEmployed.setFilter(ageGroupCSfilter); + personsUnemployed.setFilter(ageGroupCSfilter); + + MeanArrayFunction isEmployed = new MeanArrayFunction(personsEmployed); + isEmployed.applyFunction(); + setPropEmployed(isEmployed.getDoubleValue(IDoubleSource.Variables.Default)); + + MeanArrayFunction isUnemployed = new MeanArrayFunction(personsUnemployed); + isUnemployed.applyFunction(); + setPropUnemployed(isUnemployed.getDoubleValue(IDoubleSource.Variables.Default)); }