Skip to content

Commit 7b73f9a

Browse files
authored
Albrja/mic-5878/Use RR data to get age intervals for LBWSGRiskEffect (#511)
Albrja/mic-5878/Use RR data to get age intervals for LBWSGRiskEffect Use relative risk data to get age intervals. - *Category*: Bugfix - *JIRA issue*: https://jira.ihme.washington.edu/browse/MIC-5878 Changes and notes -uses RR data to get age intervals so there is not a data dependency on exposure and relative risk data. ### Testing <!-- Details on how code was verified, any unit tests local for the repo, regression testing, etc. At a minimum, this should include an integration test for a framework change. Consider: plots, images, (small) csv file. -->
1 parent 6f336e5 commit 7b73f9a

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

CHANGELOG.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
**3.2.2 - 2/21/25**
2+
3+
- Bugfix: Use relative risk data to get age intervals for LBWSGRiskEffect
4+
15
**3.2.1 - 1/30/25**
26

37
- Get python versions from python_versions.json

src/vivarium_public_health/risks/implementations/low_birth_weight_and_short_gestation.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,11 +371,9 @@ def register_target_modifier(self, builder: Builder) -> None:
371371

372372
def get_age_intervals(self, builder: Builder) -> dict[str, pd.Interval]:
373373
age_bins = builder.data.load("population.age_bins").set_index("age_start")
374-
exposure = builder.data.load(f"{self.risk}.exposure")
375-
exposure = exposure[exposure["age_end"] > 0]
376-
374+
relative_risks = builder.data.load(f"{self.risk}.relative_risk")
377375
exposed_age_group_starts = (
378-
exposure.groupby("age_start")["value"].any().reset_index()["age_start"]
376+
relative_risks.groupby("age_start")["value"].any().reset_index()["age_start"]
379377
)
380378

381379
return {

tests/risks/test_low_birth_weight_and_short_gestation.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,15 @@ def test_lbwsg_risk_effect_rr_pipeline(
5656
# Create exposure with matching demograph index as age_bins
5757
age_bins = make_age_bins()
5858
agees = age_bins.drop(columns="age_group_name")
59-
exposure_data = make_categorical_exposure_data(agees)
59+
# Have to match age bins and rr data to make age intervals
60+
rr_data = make_categorical_data(agees)
61+
# Exposure data used for risk component
62+
exposure = make_categorical_data(agees)
6063

6164
# Add data dict to add to artifact
6265
data = {
63-
f"{risk.name}.exposure": exposure_data,
66+
f"{risk.name}.exposure": exposure,
67+
f"{risk.name}.relative_risk": rr_data,
6468
f"{risk.name}.population_attributable_fraction": 0,
6569
f"{risk.name}.categories": categories,
6670
f"{risk.name}.relative_risk_interpolator": mock_rr_interpolators,
@@ -118,9 +122,9 @@ def map_age_groups(value):
118122
assert (actual_rr == 1.0).all()
119123

120124

121-
def make_categorical_exposure_data(data: pd.DataFrame) -> pd.DataFrame:
125+
def make_categorical_data(data: pd.DataFrame) -> pd.DataFrame:
122126
# Takes age gropus and adds sex, years, categories, and values
123-
exposure_dfs = []
127+
dfs = []
124128
for year in range(1990, 2017):
125129
tmp = data.copy()
126130
tmp["year_start"] = year
@@ -137,6 +141,6 @@ def make_categorical_exposure_data(data: pd.DataFrame) -> pd.DataFrame:
137141
female_tmp = categories_df.copy()
138142
female_tmp["sex"] = "Female"
139143
age_sex_df = pd.concat([male_tmp, female_tmp])
140-
exposure_dfs.append(age_sex_df)
144+
dfs.append(age_sex_df)
141145

142-
return pd.concat(exposure_dfs)
146+
return pd.concat(dfs)

0 commit comments

Comments
 (0)