| metric | value | |
|---|---|---|
| 0 | Test accuracy | 0.562 |
| 1 | Baseline accuracy | 0.518 |
| 2 | Majority-class baseline | Not symptom-free |
| 3 | Test-set symptom-free rate | 0.482 |
| 4 | Train-set symptom-free rate | 0.482 |
| 5 | Test sample size | 9309 |
Model
Model setup
This page fits a logistic regression for the symptom-free outcome after combining the daily survey and vaccination tables at the participant level.
- The daily survey rows are collapsed to one row per participant using
VSAFE_SYSTEM_ID. symptom_freeis created from the daily survey history and equals 1 only when the participant has noyessymptom responses in the available daily rows.- The participant-level daily table is joined to the vaccination table on
VSAFE_SYSTEM_ID. - Rows with invalid age values or missing key fields are removed.
- Fourth and Fifth dose records are excluded from the modeling sample because they are extremely sparse.
Reference categories in the model:
- Age band:
0.5-04 - Dose number:
First - Current health state:
Excellent
Equation
The fitted model uses the form
\[ \log\left(\frac{P(\mathrm{symptom\_free}=1)}{1 - P(\mathrm{symptom\_free}=1)}\right) = \beta_0 + \beta_{\mathrm{age}} + \beta_{\mathrm{dose}} + \beta_{\mathrm{health}}. \]
This means the model estimates how the log-odds of being symptom-free change with age band, dose number, and current health state.
Model performance
The model is only modestly better than a simple majority-class baseline (about 56.2% test accuracy vs 51.8% baseline), so it should be treated as a descriptive model rather than a strong predictor.
| Predicted symptom-free | Predicted not symptom-free | |
|---|---|---|
| Actual symptom-free | 3408 | 1411 |
| Actual not symptom-free | 2669 | 1821 |
Age effects
The table below reports adjusted odds ratios for age bands from the full cleaned analysis set. The reference categories are age band 0.5-04, dose First, and current health state Excellent.
The age pattern is uneven rather than monotonic. Confidence intervals overlap for many bands, so the safest conclusion is that the data do not show strong evidence that one age band is clearly best.
| age_band | odds_ratio | ci_low | ci_high | p.value | predicted_symptom_free_pct | |
|---|---|---|---|---|---|---|
| 0 | 0.5-04 | 1.000 | 1.000 | 1.000 | reference | 52.5 |
| 1 | 05-11 | 0.677 | 0.404 | 1.134 | 0.1380 | 42.8 |
| 2 | 12-19 | 0.859 | 0.509 | 1.449 | 0.5695 | 48.7 |
| 3 | 20-29 | 0.574 | 0.389 | 0.845 | 0.0050 | 38.8 |
| 4 | 30-39 | 0.789 | 0.547 | 1.138 | 0.2043 | 46.6 |
| 5 | 40-49 | 0.914 | 0.636 | 1.313 | 0.6268 | 50.2 |
| 6 | 50-59 | 1.142 | 0.797 | 1.637 | 0.4693 | 55.8 |
| 7 | 60-69 | 1.227 | 0.858 | 1.754 | 0.2622 | 57.5 |
| 8 | 70-79 | 1.406 | 0.984 | 2.010 | 0.0616 | 60.8 |
| 9 | 80+ | 1.858 | 1.283 | 2.691 | 0.0010 | 67.2 |
Interpretation
- Odds ratios above 1 mean higher odds of being symptom-free than the
0.5-04reference age band, after adjusting for dose number and current health state. - The predicted percentages are adjusted predictions at the reference dose and reference current health state.
- The model is better than a majority-class baseline, but only by a small margin.
- Because the age effects are mixed and not consistently significant, this project should not claim that one exact age is best.