13
13
import pandas as pd # type: ignore
14
14
15
15
from .parameters import Parameters
16
- from .utils import SimSirModelAttributes
17
16
18
17
class SimSirModel :
19
18
@@ -98,6 +97,9 @@ def __init__(self, p: Parameters):
98
97
self .admits_df = admits_df
99
98
self .census_df = census_df
100
99
100
+ #if p.n_days_since_first_hospitalized is None:
101
+ # continue
102
+
101
103
if p .n_days_since_first_hospitalized is not None and p .doubling_time is None :
102
104
# optimize doubling_time
103
105
argmin_dt = None
@@ -130,12 +132,13 @@ def __init__(self, p: Parameters):
130
132
recovered ,
131
133
beta ,
132
134
gamma ,
133
- p .n_days #+ p.n_days_since_first_hospitalized
135
+ p .n_days # + p.n_days_since_first_hospitalized
134
136
)
135
137
dispositions_df = build_dispositions_df (raw_df , rates , p .market_share )
136
138
admits_df = build_admits_df (dispositions_df , p .n_days_since_first_hospitalized )
137
139
census_df = build_census_df (admits_df , lengths_of_stay , p .n_days_since_first_hospitalized )
138
140
141
+ self .population = p .population
139
142
self .infected = current_infected
140
143
self .intrinsic_growth_rate = intrinsic_growth_rate
141
144
self .gamma = gamma
@@ -160,7 +163,7 @@ def run_projection(self, p: Parameters, doubling_time: float) -> Tuple[pd.DataFr
160
163
market_share = p .market_share
161
164
initial_i = 1 / p .hospitalized .rate / market_share
162
165
163
- S , I , R = self . susceptible , initial_i , self .recovered
166
+ S , I , R = p . population - initial_i , initial_i , self .recovered
164
167
165
168
# mean recovery rate (inv_recovery_days)
166
169
gamma = 1 / recovery_days
@@ -203,6 +206,9 @@ def loss_dt(self, p: Parameters) -> float:
203
206
# we shall optimize squared distance
204
207
return (p .current_hospitalized - predicted_current_hospitalized ) ** 2
205
208
209
+ def loss_ds (self , p : Parameters ) -> float :
210
+ pass
211
+
206
212
207
213
@staticmethod
208
214
def _intrinsic_growth_rate (doubling_time : Optional [float ]) -> float :
0 commit comments