+++++++++++++++++++***************************+++++++++++++++++++++++++++

It is now 512 days since the first COVID-19 case was reported in Nigeria. As at July 24, 2021 the confirmed cases are 173,783 with 2,132 (1.25%) fatalities, however, 164,798 (96.43%) have recovered leaving 3,965 (2.32%) active cases.

Based on equal days forecast, by December 18, 2022, Nigeria’s aggregate confirmed COVID-19 cases are forecast to be:

Model Confirmed cases Recoveries Fatalities Active RMSE
With knots 3,720,198 3,587,387 46,502 86,309 175
Smooth Spline 1,795,168 1,731,080 22,440 41,648 163
Upper ARIMA 1,158,663 1,117,298 14,483 26,881 181
Essembled based on summed weight 909,601 877,128 11,370 21,103 162
Essembled based on weight 200,247 193,099 2,503 4,646 158
Essembled with equal weight 122,200 117,838 1,528 2,835 213
Essembled based on weight of fit 46,623 44,959 583 1,082 272
Quadratic Polynomial -650,984 -627,744 -8,137 -15,103 368
Lower ARIMA -877,851 -846,511 -10,973 -20,366 181
Without knots -1,123,786 -1,083,667 -14,047 -26,072 365

However, the actual forecast made by the various models on the last day i.e. December 18, 2022 is shown below:

Refer to Table 2 and Table 3 as well as Fig. 18-20 for more details on how the estimates and forecasts were obtained.

+++++++++++++++++++***************************+++++++++++++++++++++++++++

The visuals below supports this facts, take a look!

Fig. 1a Daily observed cases of COVID-19 in Nigeria

Fig. 2 Perecentages and previous days differences of COVID-19 in Nigeria Starting from February 29, 2020 to July 24, 2021

Fig. 3 Cases recorded in percentages Starting from February 29, 2020 to July 24, 2021 (legend as Fig. 2)

Fig. 4 Cumulative cases and Forecast of COVID-19 cases in Nigeria Starting from July 25, 2021 to December 18, 2022

Fig. 4a Components of COVID-19 cases in Nigeria between February 29, 2020 and July 24, 2021

Fig. 5 Number of days since average recorded cases exceeded one in each State

Fig. 6 Daily confirmed Coronavirus cases, by number of the days since 1 first daily case recorded

Fig. 7 Number of days from February 29, 2020 to July 24, 2021 that cases were recorded in the States

Fig. 8 Number of days the last COVID19 case was recorded as at July 24, 2021

Fig. 9 Diverging Bars of COVID-19 cases in the States (normalised)

Fig. 10 Monthly summary of COVID19 cases in the States

Fig. 11 Daily recorded cases of COVID19 in the States

Fig. 12 Number of days since average recorded cases exceeded one in each geo-political zone

Fig. 13 Number of days from February 29, 2020 to July 24, 2021 that cases were recorded in the Zones

Fig. 14 Monthly summary of COVID19 cases in the Zones

Table 1 Regression estimates of factors that might have stressed Nigeria’s economy within the period of the COVID-19 pandemic

COVID19PMSInflationTeledensityBirth ratePopulation
(Intercept)-655.522    -649.459    -1206.302 *** 1199.650    -46.541 ****15.820 ****
(821.163)   (4422.565)   (318.206)    (741.551)   (4.356)    (0.160)    
PMSprice-0.126 ***        0.057 **  0.141 ***0.000     0.000     
(0.041)           (0.026)    (0.035)   (0.001)    (0.000)    
Inflation0.446    5.019 **          -0.114    -0.024 ****0.007 *** 
(0.499)   (2.289)            (0.500)   (0.005)    (0.002)    
Teledensity0.785 ***4.120 ***-0.038             0.006     -0.002     
(0.192)   (1.011)   (0.166)            (0.005)    (0.001)    
`Birth rate`-5.563    22.685    -26.759 ****19.253             0.310 ****
(17.148)   (90.235)   (5.769)    (15.777)            (0.027)    
Population36.706    15.421    77.870 *** -70.850    2.962 ****         
(52.170)   (279.603)   (19.563)    (47.485)   (0.255)             
COVID19        -3.477 ***0.140     0.740 ***-0.002     0.001     
        (1.137)   (0.156)    (0.181)   (0.005)    (0.002)    
nobs18        18        18         18        18         18         
r.squared0.664    0.859    0.895     0.830    0.937     0.939     
adj.r.squared0.524    0.800    0.851     0.759    0.911     0.913     
sigma1.576    8.280    0.882     1.531    0.026     0.009     
statistic4.746    14.631    20.445     11.726    35.733     36.846     
p.value0.013    0.000    0.000     0.000    0.000     0.000     
df5.000    5.000    5.000     5.000    5.000     5.000     
logLik-30.083    -59.941    -19.639     -29.557    43.514     63.826     
AIC74.166    133.882    53.278     73.114    -73.028     -113.652     
BIC80.398    140.114    59.511     79.347    -66.796     -107.420     
deviance29.816    822.704    9.343     28.124    0.008     0.001     
df.residual12.000    12.000    12.000     12.000    12.000     12.000     
nobs.118.000    18.000    18.000     18.000    18.000     18.000     
**** p < 0.001; *** p < 0.01; ** p < 0.05; * p < 0.1.

Fig. 15 COVID-19, inflation, PMS price, Teledensity and birth rate in Nigeria

Fig. 15 Relationship between COVID-19, inflation, PMS price, Teledensity and birth rate in Nigeria

Table 2 The coefficient estimates of the various models for forecasting of COVID-19 for Nigeria1

Spline without knotsSpline with knotsARIMAQuardratic polynomialEssembled based on weightEssembled based on summed weight
(Intercept)32.215     -3.244          -104.240 **  15.030  -0.228     
(64.311)    (67.608)         (49.190)    (57.510) (14.924)    
bs(niz[, 1], knots = NULL)1317.461 *                                         
(185.833)                                          
bs(niz[, 1], knots = NULL)21128.020 ****                                      
(117.961)                                          
bs(niz[, 1], knots = NULL)3-213.417 **                                        
(101.537)                                          
bs(niz[, 1], knots = BREAKS)1         4.761                                  
         (130.702)                                 
bs(niz[, 1], knots = BREAKS)2         13.410                                  
         (84.670)                                 
bs(niz[, 1], knots = BREAKS)3         843.219 ****                             
         (97.071)                                 
bs(niz[, 1], knots = BREAKS)4         171.272 **                               
         (82.486)                                 
bs(niz[, 1], knots = BREAKS)5         199.711 **                               
         (90.459)                                 
bs(niz[, 1], knots = BREAKS)6         -76.728                                  
         (85.384)                                 
bs(niz[, 1], knots = BREAKS)7         2151.186 ****                             
         (86.078)                                 
bs(niz[, 1], knots = BREAKS)8         -521.450 ****                             
         (90.888)                                 
bs(niz[, 1], knots = BREAKS)9         419.049 ****                             
         (102.580)                                 
bs(niz[, 1], knots = BREAKS)10         -156.681                                  
         (97.156)                                 
bs(niz[, 1], knots = BREAKS)11         325.899 ***                              
         (99.695)                                 
ar1                  -0.219                         
                  (0.098)                        
ar2                  0.639                         
                  (0.092)                        
ma1                  -0.422                         
                  (0.098)                        
ma2                  -0.994                         
                  (0.086)                        
ma3                  0.363                         
                  (0.073)                        
ma4                  0.266                         
                  (0.042)                        
Day                       4.986 ****               
                       (0.443)                   
I(Day^2)                       -0.010 ****               
                       (0.001)                   
fitf                                -2.780  -0.379 **  
                                (2.316) (0.150)    
fit0f                                -0.075  0.001     
                                (0.740) (0.145)    
fit1f                                1.619  1.416 ****
                                (2.698) (0.184)    
fitpif                                0.238  -0.003     
                                (0.516) (0.148)    
fitaf                                1.020  -0.034     
                                (2.510) (0.092)    
fitf:fit0f                                -0.009           
                                (0.012)          
fitf:fit1f                                0.010           
                                (0.011)          
fit0f:fit1f                                0.006           
                                (0.018)          
fitf:fitpif                                0.032 *         
                                (0.019)          
fit0f:fitpif                                -0.001           
                                (0.001)          
fit1f:fitpif                                -0.015           
                                (0.026)          
fitf:fitaf                                0.002           
                                (0.015)          
fit0f:fitaf                                0.002           
                                (0.011)          
fit1f:fitaf                                -0.003           
                                (0.016)          
fitpif:fitaf                                -0.015           
                                (0.016)          
fitf:fit0f:fit1f                                -0.000           
                                (0.000)          
fitf:fit0f:fitpif                                -0.000 *         
                                (0.000)          
fitf:fit1f:fitpif                                -0.000           
                                (0.000)          
fit0f:fit1f:fitpif                                0.000           
                                (0.000)          
fitf:fit0f:fitaf                                -0.000           
                                (0.000)          
fitf:fit1f:fitaf                                -0.000           
                                (0.000)          
fit0f:fit1f:fitaf                                0.000           
                                (0.000)          
fitf:fitpif:fitaf                                -0.000           
                                (0.000)          
fit0f:fitpif:fitaf                                0.000           
                                (0.000)          
fit1f:fitpif:fitaf                                0.000           
                                (0.000)          
fitf:fit0f:fit1f:fitpif                                0.000           
                                (0.000)          
fitf:fit0f:fit1f:fitaf                                0.000           
                                (0.000)          
fitf:fit0f:fitpif:fitaf                                0.000           
                                (0.000)          
fitf:fit1f:fitpif:fitaf                                0.000           
                                (0.000)          
fit0f:fit1f:fitpif:fitaf                                -0.000           
                                (0.000)          
fitf:fit0f:fit1f:fitpif:fitaf                                -0.000           
                                (0.000)          
nobs512         512         511     512         512      512         
r.squared0.219     0.820          0.204     0.853  0.847     
adj.r.squared0.215     0.816          0.201     0.844  0.845     
sigma366.468     177.215     182.157 369.564     163.340  162.637     
statistic47.531     207.469          65.367     90.157  559.453     
p.value0.000     0.000          0.000     0.000  0.000     
df3.000     11.000          2.000     31.000  5.000     
logLik-3747.291     -3371.234     -3382.324 -3752.103     -3319.042  -3330.336     
AIC7504.582     6768.468     6778.649 7512.205     6704.084  6674.673     
BIC7525.774     6823.566     6808.303 7529.158     6843.948  6704.341     
deviance68223734.310     15702496.243          69518122.668     12806385.355  13384047.189     
df.residual508.000     500.000          509.000     480.000  506.000     
nobs.1512.000     512.000     511.000 512.000     512.000  512.000     
**** p < 0.001; *** p < 0.01; ** p < 0.05; * p < 0.1.

Table 3 Various selection criteria for the estimated models2
Spline with knots Spline without knots Smooth spline ARIMA Quardratic polynomial Essembled equal weight Essembled on weight Essembled summed weight Essembled weight of fit
Absolute Error 134986 46250 39749 45465 130674 67396 40263 40350 85954
Absolute Percent Error Inf Inf Inf Inf Inf Inf Inf Inf Inf
Accuracy 0 0 0 0 0 0 0 0 0
Adjusted R Square 0.21 0.82 0 0 0.2 0 0.84 0.85 0
Akaike’s Information Criterion AIC 7505 6768 0 6779 7512 0 6704 6675 0
Allen’s Prediction Sum-Of-Squares (PRESS, P-Square) 0 0 0 0 0.2 0 0 0 0
Area under the ROC curve (AUC) 0.07 0.01 0.01 0.02 0.01 0.01 0.06 0.01 0.01
Average Precision at k 0 0 0 0 0 0 0 0 0
Bias 0 0 0 1.5 0 0.29 0 0 43
Brier score 133249 30669 26485 32727 135778 45169 25012 26141 73845
Classification Error 1 1 1 1 1 1 1 1 1
F1 Score 0 0 0 0 0 0 0 0 0
fScore 0 0 0 0 0 0 0 0 0
GINI Coefficient 1 1 1 1 0 1 1 1 1
kappa statistic 0 0 0 0 0 NaN 0 0 NaN
Log Loss Inf Inf Inf Inf Inf Inf Inf Inf Inf
Mallow’s cp 4 12 0 0 3 0 0 6 0
Matthews Correlation Coefficient 0 0 0 0 0 NaN 0 0 NaN
Mean Log Loss Inf Inf Inf Inf Inf NaN Inf Inf NaN
Mean Absolute Error 264 90 78 89 255 132 79 79 168
Mean Absolute Percent Error Inf Inf Inf Inf Inf Inf Inf Inf Inf
Mean Average Precision at k 0 0 0 0 0 0 0 0 0
Mean Absolute Scaled Error 2.5 0.87 0.75 0.86 2.5 1.3 0.76 0.76 1.6
Median Absolute Error 231 48 33 40 196 94 35 35 115
Mean Squared Error 133249 30669 26485 32727 135778 286765 25012 26141 285792
Mean Squared Log Error NaN NaN 0.24 0.29 NaN NaN NaN 0.25 NaN
Model turning point error 260 249 241 324 259 290 234 229 287
Negative Predictive Value 0 0 0 0 0 0 0 0 0
Percent Bias -Inf NaN NaN NaN NaN NaN -Inf -Inf NaN
Positive Predictive Value 0 0 0 0 0 0 0 0 0
Precision NaN NaN NaN NaN NaN 0 NaN NaN 0
R Square 0.22 0.82 0 0 0.2 0 0.85 0.85 0
Relative Absolute Error 0.89 0.31 0.26 0.3 0.86 0.44 0.27 0.27 0.57
Recall 42 -1.9 -0.16 0.51 -75 0 7.6 0.55 0
Root Mean Squared Error 365 175 163 181 368 536 158 162 535
Root Mean Squared Log Error NaN NaN 0.49 0.54 NaN NaN NaN 0.5 NaN
Root Relative Squared Error 0.88 0.42 0.39 0.44 0.89 0.51 0.38 0.39 0.66
Relative Squared Error 0.78 0.18 0.16 0.19 0.8 0.26 0.15 0.15 0.43
Schwarz’s Bayesian criterion BIC 7526 6824 0 6808 7529 0 6844 6704 0
Sensitivity 0 0 0 0 0 0 0 0 0
specificity 0 0 0 0 0 0 0 0 0
Squared Error 68223734 15702496 13560266 16756437 69518123 23126419 12806385 13384047 37808479
Squared Log Error NaN NaN 125 147 NaN NaN NaN 127 NaN
Symmetric Mean Absolute Percentage Error 0.94 0.5 0.36 0.41 0.88 0.6 0.4 0.37 0.7
Sum of Squared Errors 68223734 15702496 13560266 16756437 69518123 23126419 12806385 13384047 37808479
True negative rate 0 0 0 0 0 0 0 0 0
True positive rate 0 0 0 0 0 0 0 0 0

Fig. 18 Models of COVID-19 Cases using ensemble technology

Fig. 19 Equal duration forecast of COVID-19 Cases from the ensemble models using a native plotting method

Fig. 20 Forecast of COVID-19 cases in Nigeria Starting from July 25, 2021 to December 18, 2022 using a more advaced plotting method

Fig. 20a Lagged forecasts (1-14 days) of COVID-19 cases in Nigeria

Table 4 Summary of the dynamic COVID-19 forecasts
Model Jul 12, 21 - Nov 21, 22 Jul 19, 21 - Dec 05, 22 Jul 22, 21 - Dec 11, 22 Jul 23, 21 - Dec 13, 22 Jul 24, 21 - Dec 15, 22 Jul 25, 21 - Dec 17, 22
Without knots -1297456 -1239859 -1198406 -1180698 -1167143 -1143670
Smooth Spline 3176655 2980101 3213253 3356952 3354516 3607152
With knots 1022539 615592 1009371 1257776 1184951 1660967
Quadratic Polynomial -627971 -650712 -654062 -653706 -654787 -652277
Lower ARIMA -916500 -932967 -914774 -903421 -905143 -882895
Upper ARIMA 1055985 1065493 1098260 1113182 1115661 1149243
Essembled with equal weight 61215 39774 59760 76296 85364 97921
Essembled based on weight 291768 304226 254075 264726 269543 273172
Essembled based on summed weight 107297 115359 116862 117366 118706 118103
Essembled based on weight of fit 7915 -5952 6809 17398 23427 31192
Table 3 RMSE of the models in the dynamic forecasts
Model Jul 12, 21 - Nov 21, 22 Jul 19, 21 - Dec 05, 22 Jul 22, 21 - Dec 11, 22 Jul 23, 21 - Dec 13, 22 Jul 24, 21 - Dec 15, 22 Jul 25, 21 - Dec 17, 22
Without knots 364.3 364.03 364.26 364.43 364.47 364.82
Smooth Spline 176.93 176.18 175.73 175.56 175.45 175.28
With knots 165.07 164.01 163.27 163.17 163.25 162.92
Quadratic Polynomial 371.58 369.53 368.9 368.77 368.56 368.56
Lower ARIMA 183.08 181.94 181.46 181.31 181.13 181.08
Upper ARIMA 183.08 181.94 181.46 181.31 181.13 181.08
Essembled with equal weight 213.9 213.06 212.72 212.67 212.62 212.59
Essembled based on weight 439.11 438.13 437.22 436.81 436.54 436.09
Essembled based on summed weight 420.77 419.2 418.2 417.79 417.46 416.97
Essembled based on weight of fit 246.22 247.96 247.94 247.74 247.76 247.29

Fig. 21 Percentage of COVID19 cases that resulted into casualty per State as at July 24, 2021

Fig. 22 Percentage of COVID19 cases that recovered per State as at July 24, 2021

Fig. 23 Percentage of recoveries and deaths from COVID19 cases per Zone as at July 24, 2021

Fig. 24 Distribution of COVID19 in the States as at July 24, 2021


  1. Note that Smooth spline does not estimate coefficients and other model-characteristic statistics↩︎

  2. Multiclass Area Under the Curve (MAUC) is the mean of the various AUC estimated from the same data↩︎