Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions src/main/java/simpaths/data/statistics/EmploymentStatistics.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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);
Expand All @@ -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));


}
Expand Down