T = t0; CN = cn0 |
Function PSI_calc(T, CN) |
m0 = M(CN) |
si0 = SI(CN) |
psi0 = m0/si0 |
RETURN psi0 |
Function AIR_calc(T, CN) |
Len1 = 30; Len2 = 5 |
If COVID_Vaccine(T) ==0 |
train = COVID_Accumulation(T,T + Len1) |
test = COVID_Accumulation(T + Len1, T + Len1 + Len2) |
else |
train = COVID_Accumulation(T,T + Len1)-COVID_Vaccine(T,T + Len1) |
test = COVID_Accumulation(T + Len1,T + Len1 + Len2)- |
COVID_Vaccine(T + Len1, T + Len1 + Len2) |
Model = ARIMA(px, dx, qx, train) |
Forecast = Model(test) |
If Forecast(1) > k ==TRUE then |
coef = k-Forecast_data(1) |
Else |
coef = k-Forecast_data(1) |
Forecast = Forecast(2:Forecast_length) + coef |
Diff(j) = MSE(Forecast, test) |
AIR = Forecast(T,T + Len1 + Len2)/COVID_Accumulation(T, T + Len1 + Len2) |
RETURN AIR |
Function Turning_Point_Calc(T, CN, AIR, PSI) |
CI =0.9 |
psi_UK = PSI_calc(T_UK, UK) #Same for Belgium, France and Germany |
psi_TL = (MAX(psi_UK,...psi_Belgium)-MIN(psi_UK,...psi_Belgium))/2 |
Turning_Point = T; k =1 |
While k < =10 |
If (AIR(T + k)/PSI) - AVG(psi_UK, ... psi_Belgium) < =psi_TL |
Print (“Turning Point Found on kth date!”); |
Turning_Point = Turning_Point + k; |
Break; |
Else |
k = k +1; |
For k =1 : 10 |
AIR_upper[T + k] = AIR[T + k] + Delta |
AIR_lower[T + k] = AIR[T + k] -Delta |
Return Turning Point, AIR_upper, AIR, AIR_lower |