https://github.com/ababino/babino2020masks
Code for https://www.nature.com/articles/s41598-021-84679-8#MOESM1
https://github.com/ababino/babino2020masks
causality coronavirus covid covid-19 covid19 masks
Last synced: about 1 month ago
JSON representation
Code for https://www.nature.com/articles/s41598-021-84679-8#MOESM1
- Host: GitHub
- URL: https://github.com/ababino/babino2020masks
- Owner: ababino
- License: apache-2.0
- Created: 2020-11-14T15:09:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-04-12T06:09:44.000Z (about 2 years ago)
- Last Synced: 2025-04-13T09:07:16.770Z (about 1 month ago)
- Topics: causality, coronavirus, covid, covid-19, covid19, masks
- Language: Jupyter Notebook
- Homepage: https://ababino.github.io/babino2020masks/
- Size: 43.8 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Masks and COVID-19: a causal framework for imputing value to public-health interventions
> Code to reproduce Masks and COVID-19.This is a refactored version of the original [code](https://github.com/ababino/corona).
## Install
`pip install babino2020masks`
## How to use
### Gather data
```python
ny = API(api_settings['NYS'][:2], **api_settings['NYS'][2])
df = ny.get_all_data_statewide()
```/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:63: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
for o in self.iter_data(): df = df.append(o)
/home/runner/work/babino2020masks/babino2020masks/babino2020masks/core.py:78: FutureWarning: Dropping invalid columns in DataFrameGroupBy.add is deprecated. In a future version, a TypeError will be raised. Before calling .add, select only columns which should be valid for the function.
df = df.groupby('date').sum()```python
ax = plot_data_and_fit(df, 'Date', 'Odds', None, None, None, figsize=(10, 7))
ax.set_title(f'{df.tail(1).Date[0]:%B %d, %Y}, Positivity Odds:{df.tail(1).Odds[0]:2.3}');
```

### Fit the model
```python
sdf = df.loc[df.Date<='15-05-2020'].copy()
lics = LassoICSelector(sdf['Odds'], 'bic')
lics.fit_best_alpha()
```/opt/hostedtoolcache/Python/3.8.13/x64/lib/python3.8/site-packages/pandas/core/arraylike.py:52: UserWarning: Parsing '15-05-2020' in DD/MM/YYYY format. Provide format or specify infer_datetime_format=True for consistent parsing.
return self._cmp_method(other, operator.le)
/opt/hostedtoolcache/Python/3.8.13/x64/lib/python3.8/site-packages/sklearn/linear_model/_base.py:133: FutureWarning: The default of 'normalize' will be set to False in version 1.2 and deprecated in version 1.4.
If you wish to scale the data, use Pipeline with a StandardScaler in a preprocessing stage. To reproduce the previous behavior:
from sklearn.pipeline import make_pipeline
model = make_pipeline(StandardScaler(with_mean=False), LassoLars())
If you wish to pass a sample_weight parameter, you need to pass it as a fit parameter to each step of the pipeline as follows:
kwargs = {s[0] + '__sample_weight': sample_weight for s in model.steps}
model.fit(X, y, **kwargs)
Set parameter alpha to: original_alpha * np.sqrt(n_samples).
warnings.warn(### Positivity Odds in NYS
```python
sdf['Fit'], sdf['Odds_l'], sdf['Odds_u'] = lics.odds_hat_l_u()
ax = plot_data_and_fit(sdf, 'Date', 'Odds', 'Fit', 'Odds_l', 'Odds_u', figsize=(10, 7))
```

### Instantaneous reproduction number, $R_t$
```python
sdf['R'], sdf['Rl'], sdf['Ru'] = lics.rt()
ax = plot_data_and_fit(sdf, 'Date', None, 'R', 'Rl', 'Ru', figsize=(10, 7), logy=False, palette=[colorblind[1],colorblind[1]])
```

### Counterfactual Scenario without Masks
```python
sdf['Cf. Odds'], sdf['cf_odds_l'], sdf['cf_odds_u'] = lics.counterfactual()
``````python
ax = plot_data_and_fit(sdf, 'Date', 'Odds', 'Fit', 'Odds_l', 'Odds_u', figsize=(10, 7))
plot_data_and_fit(sdf, 'Date', None, 'Cf. Odds', 'cf_odds_l', 'cf_odds_u', palette=[colorblind[2],colorblind[2]], ax=ax);
```

Last updated on 07/26/2022 13:48:33