Prev Next numeric_average

@(@\newcommand{\B}[1]{ {\bf #1} } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\W}[1]{ \; #1 \; }@)@ This is dismod_at-20221105 documentation: Here is a link to its current documentation .
Numerical Approximation of Average Integrands

Average Noise Effect
A
ODE
Initial Age
Rectangle
     a_L
     a_U
     t_L
     t_U
Average Integrand Time Step, Delta t
Extended Age Grid
Cohort Solution of ODE
Time Line
S_j
Lower Time Cohorts
     ODE
Upper Time Cohorts
     ODE
Refinement
     ODE Not Required
     ODE Required
w(a, t)
g(a, t)
Time Integration
Age Integration

Average Noise Effect
This technique is also used to compute the average noise effect .

A
We compute an average integrand over a rectangular region defined as
   [ 
age_lowerage_upper ] x [ time_lowertime_upper ]
by the data_table or the avgint_table . Given a data table index or avgint table index @(@ i @)@, this section describes the numerical method used to approximate the average integrand A_i is calculated. The index @(@ i @)@ is fixed and not included in the discussion below.

ODE
Some integrands require solution of the ordinary differential equation ; see ODE . The ODE is solved along cohort lines, i.e., lines where time minus age is constant.

Initial Age
We use the notation @(@ a_I @)@ for the age corresponding to initial prevalence pini .

Rectangle
We use the following notation for the lower and upper limits corresponding to one point in the data_table or avgint_table :

a_L
We use @(@ a_L @)@ to denote the corresponding age_lower value.

a_U
We use @(@ a_U @)@ to denote the corresponding age_upper value.

t_L
We use @(@ t_L @)@ to denote the corresponding time_lower value.

t_U
We use @(@ t_U @)@ to denote the corresponding time_upper value.

Average Integrand Time Step, Delta t
The average integrand time step @(@ \Delta t @)@ is specified by ode_step_size in the option table.

Extended Age Grid
The extended age grid is the union (as sets) of @(@ \{ a_L , a_U \} @)@ and the age average grid .

Cohort Solution of ODE
A cohort solution is identified by its initial time, corresponding to age @(@ a_I @)@, and final age, corresponding to the last point in the solution. The cohort is solved by approximating to rates in the ODE as constant between grid points in the extended age grid.

Time Line
We use @(@ \{ a_0 , \ldots , a_{J-1} \} @)@ be the set of ages in the extended age grid that satisfy @(@ a_L < a_j < a_U @)@. Furthermore, these ages are in order; i.e., @(@ a_j < a_{j+1} @)@. For each such age, there is a time line interval @(@ [ t_L , t_U ] @)@ which we refer to as the j-th time line.

S_j
The j-th time line has a set of times, @(@ S_j @)@, in the interval @(@ [ t_L , t_U ] @)@. We initialize this set as empty. The steps below specify which times get added to @(@ S_j @)@. If the ODE is required for this integrand, the steps also specify how the ODE is solved for age @(@ a_j @)@ and all the times in @(@ S_j @)@.

Lower Time Cohorts
For each time line index @(@ j @)@, the time point @(@ t_L @)@ is added to @(@ S_j @)@.

ODE
If the ODE is required for this integrand, it is solved for the cohort corresponding to initial time @(@ t_L - ( a_j - a_I) @)@.
  1. If @(@ t_L + a_U - a_j < t_U @)@, the final age for this cohort is @(@ b_j = a_U @)@. In this case the lower time cohort has not reached the upper time.
  2. If @(@ t_L + a_U - a_j \geq t_U @)@, the final age is @(@ b_j @)@ is the largest age in the extended age grid such that @(@ t_L + b_j - a_j \leq t_U @)@.
For each extended age grid @(@ a_k @)@ in the cohort, such that @(@ a_L \leq a_k \leq b_j @)@, the time @(@ t_L + a_k - a_j @)@ is added to @(@ S_k @)@ (because we have the corresponding ODE solution). It may happen by chance that @(@ t_L + b_j - a_j = t_U @)@ in which case @(@ t_U @)@ is in @(@ S_j @)@.

Upper Time Cohorts
These operations are only done when @(@ t_L < t_U @)@. For each time line index @(@ j @)@, the time point @(@ t_U @)@ is added to @(@ S_j @)@.

ODE
If the ODE is required for this integrand, and @(@ t_U @)@ is not in @(@ S_j @)@, the ODE is solved for the cohort corresponding to initial time @(@ t_U - ( a_j - a_I) @)@ and final age @(@ a_j @)@.
  1. For each extended age grid point @(@ a_k @)@ in the cohort, such that @(@ a_L \leq a_k \leq a_j @)@, and @(@ t_L \leq t_U - ( a_j - a_k ) @)@, the time @(@ t_U - ( a_j - a_k ) @)@ is added to @(@ S_k @)@.


Refinement

ODE Not Required
If the ODE is not required for this integrand, the smallest integer @(@ N \geq 1 @)@ is chosen so that @(@ (t_U - t_L) / N \leq \Delta t @)@. If @(@ N > 1 @)@, For @(@ j = J-1 , \ldots , 0 @)@, for @(@ n = 1 , \ldots , n-1 @)@, the point @(@ t_n = ( t_U - t_L ) / N @)@ is added to @(@ S_j @)@. If @(@ N > 1 @)@, each @(@ S_j @)@ ends up with @(@ N+2 @)@ time points.

ODE Required
If the ODE is required for this integrand, the following method is used for refinement of the time lines:
  1. Find the value of @(@ j @)@ such that @(@ t_n - t_{n-1} @)@ is maximal where @(@ t_0 < t_1 < \ldots t_{N-1} @)@ denote the set of times currently in @(@ S_j @)@.
  2. If @(@ t_n - t_{n-1} \leq \Delta t @)@ we are done with the refinement; i.e., exit this procedure.
  3. Let @(@ t_M = (t_{n+1} - t_n ) / 2 @)@ and choose @(@ k @)@ so that @(@ a_k @)@ is in the extended grid and @(@ a_k @)@ is as large as possible with @(@ t_M + a_k - a_j \leq t_U @)@. Solve the ODE for the cohort with initial time index @(@ t_M - ( a_j - a_I ) @)@ and final age @(@ a_k @)@.
  4. For each index @(@ \ell \leq k @)@ such that @(@ a_L \leq a_\ell @)@ and @(@ t_L \leq t_M + a_\ell - a_j @)@, the time @(@ t_M + a_\ell - a_j @)@ is added to @(@ S_\ell @)@.
  5. Go to Step 1.


w(a, t)
We use @(@ w(a, t) @)@ to denote a weighting function for this average and define @[@ \bar{w} = \int_{a(L)}^{a(U)} \int_{t(L)}^{t(U)} w( a , t) \; \B{d} t \; \B{d} a @]@ Note that if @(@ w(a, t) @)@ is one, @(@ \bar{w} = ( a_U - a_L ) ( t_U - t_L ) @)@.

g(a, t)
We use @(@ g(a, t) @)@ to denote the function that is averaged, with respect to age and time, in the definition of @(@ A @)@; i.e., @[@ A = \frac{1}{ \bar{w} } \int_{a(L)}^{a(U)} \int_{t(L)}^{t(U)} w(a, t) g( a , t) \; \B{d} t \; \B{d} a @]@

Time Integration
Define the notation @(@ w \cdot g(a, t) = w(a, t) g(a, t) @)@. Let @(@ t_0 < t_1 < \ldots t_{N-1} @)@ denote the set @(@ S_j @)@ at which we are given the function values @(@ g( a_j , t_i ) @)@. Note that @(@ t_0 = t_L @)@ and @(@ t_{N-1} = t_U @)@. If @(@ t_U = t_L @)@, define @(@ W( a_j ) = w( a_j , t_0 ) @)@ and @(@ G( a_j ) = w \cdot g( a_j , t_0 ) @)@. Otherwise we define the approximations @[@ W( a_j ) = \sum_{i=1}^{i=N-1} \frac{w( a_j , t_{i-1} ) + w( a_j , t_i )}{2} ( t_i - t_{i-1} ) \approx \int_{t(L)}^{t(U)} w( a_j , t) \; \B{d} t @]@ @[@ G( a_j ) = \sum_{i=1}^{i=N-1} \frac{w \cdot g( a_j , t_{i-1} ) + w \cdot g( a_j , t_i )}{2} ( t_i - t_{i-1} ) \approx \int_{t(L)}^{t(U)} w \cdot g ( a_j , t) \; \B{d} t @]@

Age Integration
We are given the values @(@ W( a_j ) @)@ and @(@ G( a_j ) @)@. If @(@ a_U = a_L @)@, we approximate @(@ A \approx G( a_0 ) / W( a_0 ) @)@. Otherwise we define the following approximation for @(@ A @)@ @[@ \bar{W} = \sum_{j=1}^{j=J-1} \frac{ W( a_{j-1} ) + W( a_j ) }{2} ( a_j - a_{j-1} ) @]@ @[@ A \approx \frac{1}{ \bar{W} } \sum_{j=1}^{j=J-1} \frac{ G( a_{j-1} ) + G( a_j ) }{2} ( a_j - a_{j-1} ) @]@
Input File: omh/model/numeric_average.omh