@@ -69,10 +69,10 @@ def __init__(self, p: Parameters):
69
69
self .beta_t = get_beta (intrinsic_growth_rate , self .gamma , self .susceptible , p .relative_contact_rate )
70
70
71
71
self .i_day = 0 # seed to the full length
72
- self .run_projection (p , [(self .beta , p .n_days )])
73
- self .i_day = i_day = int (get_argmin_ds (self . raw ["census_hospitalized" ], p .current_hospitalized ))
72
+ raw = self .run_projection (p , [(self .beta , p .n_days )])
73
+ self .i_day = i_day = int (get_argmin_ds (raw ["census_hospitalized" ], p .current_hospitalized ))
74
74
75
- self .run_projection (p , self .gen_policy (p ))
75
+ self .raw = self . run_projection (p , self .gen_policy (p ))
76
76
77
77
logger .info ('Set i_day = %s' , i_day )
78
78
p .date_first_hospitalized = p .current_date - timedelta (days = i_day )
@@ -109,7 +109,7 @@ def __init__(self, p: Parameters):
109
109
intrinsic_growth_rate = get_growth_rate (p .doubling_time )
110
110
self .beta = get_beta (intrinsic_growth_rate , self .gamma , self .susceptible , 0.0 )
111
111
self .beta_t = get_beta (intrinsic_growth_rate , self .gamma , self .susceptible , p .relative_contact_rate )
112
- self .run_projection (p , self .gen_policy (p ))
112
+ self .raw = self . run_projection (p , self .gen_policy (p ))
113
113
114
114
self .population = p .population
115
115
else :
@@ -160,14 +160,14 @@ def get_argmin_doubling_time(self, p: Parameters, dts):
160
160
self .beta = get_beta (intrinsic_growth_rate , self .gamma , self .susceptible , 0.0 )
161
161
self .beta_t = get_beta (intrinsic_growth_rate , self .gamma , self .susceptible , p .relative_contact_rate )
162
162
163
- self .run_projection (p , self .gen_policy (p ))
163
+ raw = self .run_projection (p , self .gen_policy (p ))
164
164
165
165
# Skip values the would put the fit past peak
166
- peak_admits_day = self . raw ["admits_hospitalized" ].argmax ()
166
+ peak_admits_day = raw ["admits_hospitalized" ].argmax ()
167
167
if peak_admits_day < 0 :
168
168
continue
169
169
170
- loss = self .get_loss ()
170
+ loss = self .get_loss (raw )
171
171
losses [i ] = loss
172
172
173
173
min_loss = pd .Series (losses ).argmin ()
@@ -206,11 +206,11 @@ def run_projection(self, p: Parameters, policy: Sequence[Tuple[float, int]]):
206
206
calculate_admits (raw , self .rates )
207
207
calculate_census (raw , self .days )
208
208
209
- self . raw = raw
209
+ return raw
210
210
211
- def get_loss (self ) -> float :
211
+ def get_loss (self , raw ) -> float :
212
212
"""Squared error: predicted vs. actual current hospitalized."""
213
- predicted = self . raw ["census_hospitalized" ][self .i_day ]
213
+ predicted = raw ["census_hospitalized" ][self .i_day ]
214
214
return (self .current_hospitalized - predicted ) ** 2.0
215
215
216
216
0 commit comments