Skip to content

Commit bb1b223

Browse files
committed
Use SSI disability criteria without SSA alias
1 parent a984266 commit bb1b223

10 files changed

Lines changed: 72 additions & 202 deletions

File tree

policyengine_us_data/calibration/source_impute.py

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,14 @@
4646
SIPP_TIP_AMOUNT_COLUMNS,
4747
SIPP_TIP_AMOUNT_TO_ALLOCATION_COLUMN,
4848
SIPP_VEHICLE_TARGET_ALLOCATION_COLUMNS,
49-
SSA_DISABILITY_SCREEN_VARIABLE,
50-
SSI_DISABILITY_COMPATIBILITY_VARIABLE,
49+
SSI_DISABILITY_CRITERIA_VARIABLE,
5150
SSI_DISABILITY_DIFFICULTY_PREDICTORS,
5251
SSI_DISABILITY_EXPORT_VARIABLES,
5352
VEHICLE_MODEL_PREDICTORS,
5453
build_vehicle_training_frame,
5554
get_ssi_disability_model,
56-
predict_ssa_disability_screen,
57-
preserve_under_65_ssa_disability_screen,
55+
predict_ssi_disability_criteria,
56+
preserve_under_65_ssi_disability_criteria,
5857
)
5958

6059
from policyengine_us_data.datasets.org import (
@@ -965,32 +964,25 @@ def _impute_sipp(
965964
)
966965

967966
ssi_disability_model = get_ssi_disability_model(time_period=time_period)
968-
would_pass_ssa_disability_screen = predict_ssa_disability_screen(
967+
meets_ssi_disability_criteria = predict_ssi_disability_criteria(
969968
ssi_disability_model,
970969
cps_ssi_df,
971970
)
972-
existing_ssa_disability_screen = data.get(
973-
SSA_DISABILITY_SCREEN_VARIABLE, {}
974-
).get(time_period)
975971
existing_meets_ssi_disability_criteria = data.get(
976-
SSI_DISABILITY_COMPATIBILITY_VARIABLE, {}
972+
SSI_DISABILITY_CRITERIA_VARIABLE, {}
977973
).get(time_period)
978974
ssi_reported = data.get("ssi_reported", {}).get(time_period)
979-
would_pass_ssa_disability_screen = preserve_under_65_ssa_disability_screen(
980-
would_pass_ssa_disability_screen,
975+
meets_ssi_disability_criteria = preserve_under_65_ssi_disability_criteria(
976+
meets_ssi_disability_criteria,
981977
age=data["age"][time_period],
982978
ssi_reported=ssi_reported,
983-
existing_ssa_disability_screen=existing_ssa_disability_screen,
984979
existing_meets_ssi_disability_criteria=existing_meets_ssi_disability_criteria,
985980
)
986-
data[SSA_DISABILITY_SCREEN_VARIABLE] = {
987-
time_period: would_pass_ssa_disability_screen
988-
}
989-
data[SSI_DISABILITY_COMPATIBILITY_VARIABLE] = {
990-
time_period: would_pass_ssa_disability_screen
981+
data[SSI_DISABILITY_CRITERIA_VARIABLE] = {
982+
time_period: meets_ssi_disability_criteria
991983
}
992984

993-
logger.info("SIPP SSA disability-screen imputation complete")
985+
logger.info("SIPP SSI disability criteria imputation complete")
994986

995987
vehicle_train = build_vehicle_training_frame()
996988

policyengine_us_data/datasets/cps/cps.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2731,12 +2731,11 @@ def add_tips(self, cps: h5py.File):
27312731
cps["bond_assets"] = asset_predictions.bond_assets.values
27322732

27332733
from policyengine_us_data.datasets.sipp import (
2734-
SSA_DISABILITY_SCREEN_VARIABLE,
2735-
SSI_DISABILITY_COMPATIBILITY_VARIABLE,
2734+
SSI_DISABILITY_CRITERIA_VARIABLE,
27362735
SSI_DISABILITY_DIFFICULTY_PREDICTORS,
27372736
get_ssi_disability_model,
2738-
predict_ssa_disability_screen,
2739-
preserve_under_65_ssa_disability_screen,
2737+
predict_ssi_disability_criteria,
2738+
preserve_under_65_ssi_disability_criteria,
27402739
)
27412740

27422741
n_persons = len(cps)
@@ -2752,23 +2751,19 @@ def add_tips(self, cps: h5py.File):
27522751
)
27532752
cps["has_disability_income"] = disability_benefits > 0
27542753
ssi_disability_model = get_ssi_disability_model()
2755-
would_pass_ssa_disability_screen = predict_ssa_disability_screen(
2754+
meets_ssi_disability_criteria = predict_ssi_disability_criteria(
27562755
ssi_disability_model,
27572756
cps,
27582757
)
2759-
would_pass_ssa_disability_screen = preserve_under_65_ssa_disability_screen(
2760-
would_pass_ssa_disability_screen,
2758+
meets_ssi_disability_criteria = preserve_under_65_ssi_disability_criteria(
2759+
meets_ssi_disability_criteria,
27612760
age=existing_data.get("age", np.full(n_persons, 65)),
27622761
ssi_reported=existing_data.get("ssi_reported"),
2763-
existing_ssa_disability_screen=existing_data.get(
2764-
SSA_DISABILITY_SCREEN_VARIABLE
2765-
),
27662762
existing_meets_ssi_disability_criteria=existing_data.get(
2767-
SSI_DISABILITY_COMPATIBILITY_VARIABLE
2763+
SSI_DISABILITY_CRITERIA_VARIABLE
27682764
),
27692765
)
2770-
cps[SSA_DISABILITY_SCREEN_VARIABLE] = would_pass_ssa_disability_screen
2771-
cps[SSI_DISABILITY_COMPATIBILITY_VARIABLE] = would_pass_ssa_disability_screen
2766+
cps[SSI_DISABILITY_CRITERIA_VARIABLE] = meets_ssi_disability_criteria
27722767

27732768
from policyengine_us_data.datasets.sipp import get_vehicle_model
27742769

policyengine_us_data/datasets/cps/extended_cps.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,10 @@
2828
apply_org_domain_constraints,
2929
)
3030
from policyengine_us_data.datasets.sipp import (
31-
SSA_DISABILITY_SCREEN_VARIABLE,
32-
SSI_DISABILITY_COMPATIBILITY_VARIABLE,
31+
SSI_DISABILITY_CRITERIA_VARIABLE,
3332
SSI_DISABILITY_MODEL_PREDICTORS,
3433
get_ssi_disability_model,
35-
predict_ssa_disability_screen,
34+
predict_ssi_disability_criteria,
3635
)
3736
from policyengine_us_data.pipeline_metadata import pipeline_node
3837
from policyengine_us_data.pipeline_schema import PipelineNode
@@ -192,8 +191,7 @@ def _supports_structural_mortgage_inputs() -> bool:
192191
"financial_assistance",
193192
"survivor_benefits",
194193
"disability_benefits",
195-
SSA_DISABILITY_SCREEN_VARIABLE,
196-
SSI_DISABILITY_COMPATIBILITY_VARIABLE,
194+
SSI_DISABILITY_CRITERIA_VARIABLE,
197195
"strike_benefits",
198196
"receives_wic",
199197
# SPM variables
@@ -981,27 +979,18 @@ def _apply_post_processing(predictions, X_test, time_period, data):
981979
"employer_sponsored_insurance_premiums",
982980
] = 0
983981

984-
disability_screen_columns = [
985-
column
986-
for column in (
987-
SSA_DISABILITY_SCREEN_VARIABLE,
988-
SSI_DISABILITY_COMPATIBILITY_VARIABLE,
989-
)
990-
if column in predictions.columns
991-
]
992-
if disability_screen_columns:
982+
if SSI_DISABILITY_CRITERIA_VARIABLE in predictions.columns:
993983
receiver = _build_ssi_disability_clone_receiver(
994984
predictions,
995985
X_test,
996986
data,
997987
time_period,
998988
)
999-
disability_screen = predict_ssa_disability_screen(
989+
disability_screen = predict_ssi_disability_criteria(
1000990
get_ssi_disability_model(time_period=time_period),
1001991
receiver,
1002992
)
1003-
predictions[SSA_DISABILITY_SCREEN_VARIABLE] = disability_screen
1004-
predictions[SSI_DISABILITY_COMPATIBILITY_VARIABLE] = disability_screen
993+
predictions[SSI_DISABILITY_CRITERIA_VARIABLE] = disability_screen
1005994

1006995
return predictions
1007996

policyengine_us_data/datasets/sipp/__init__.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,15 @@
55
get_tip_model,
66
train_asset_model,
77
get_asset_model,
8-
SSA_DISABILITY_SCREEN_VARIABLE,
9-
SSI_DISABILITY_COMPATIBILITY_VARIABLE,
8+
SSI_DISABILITY_CRITERIA_VARIABLE,
109
SSI_DISABILITY_DIFFICULTY_PREDICTORS,
1110
SSI_DISABILITY_EXPORT_VARIABLES,
1211
SSI_DISABILITY_MODEL_PREDICTORS,
1312
SSI_DISABILITY_MODEL_VARIABLE,
14-
apply_ssa_disability_signal_screen,
1513
apply_ssi_disability_signal_screen,
1614
build_ssi_disability_training_frame,
1715
coerce_ssi_disability_predictions,
18-
predict_ssa_disability_screen,
1916
predict_ssi_disability_criteria,
20-
preserve_under_65_ssa_disability_screen,
2117
preserve_under_65_ssi_disability_criteria,
2218
prepare_ssi_disability_receiver,
2319
train_ssi_disability_model,
@@ -34,19 +30,15 @@
3430
"get_tip_model",
3531
"train_asset_model",
3632
"get_asset_model",
37-
"SSA_DISABILITY_SCREEN_VARIABLE",
38-
"SSI_DISABILITY_COMPATIBILITY_VARIABLE",
33+
"SSI_DISABILITY_CRITERIA_VARIABLE",
3934
"SSI_DISABILITY_DIFFICULTY_PREDICTORS",
4035
"SSI_DISABILITY_EXPORT_VARIABLES",
4136
"SSI_DISABILITY_MODEL_PREDICTORS",
4237
"SSI_DISABILITY_MODEL_VARIABLE",
43-
"apply_ssa_disability_signal_screen",
4438
"apply_ssi_disability_signal_screen",
4539
"build_ssi_disability_training_frame",
4640
"coerce_ssi_disability_predictions",
47-
"predict_ssa_disability_screen",
4841
"predict_ssi_disability_criteria",
49-
"preserve_under_65_ssa_disability_screen",
5042
"preserve_under_65_ssi_disability_criteria",
5143
"prepare_ssi_disability_receiver",
5244
"train_ssi_disability_model",

0 commit comments

Comments
 (0)