--- imach096d/doc/imach.htm 2002/03/10 15:54:47 1.7 +++ imach096d/doc/imach.htm 2002/03/11 22:52:27 1.11 @@ -1,4 +1,4 @@ - + @@ -7,6 +7,13 @@ content="text/html; charset=iso-8859-1"> Computing Health Expectancies using IMaCh + + + + + + @@ -320,9 +327,7 @@ line
  • ...
  • -
  • ncov=2 Number of covariates in the datafile. The - intercept and the age parameter are counting for 2 - covariates.
  • +
  • ncov=2 Number of covariates in the datafile.
  • nlstate=2 Number of non-absorbing (alive) states. Here we have two alive states: disability-free is coded 1 and disability is coded 2.
  • @@ -348,7 +353,7 @@ line

    Covariates

    Intercept and age are systematically included in the model. -Additional covariates (actually two) can be included with the command:

    +Additional covariates can be included with the command:

    model=list of covariates
    @@ -368,6 +373,19 @@ Additional covariates (actually two) can the product covariate*age +

    In this example, we have two covariates in the data file +(fields 2 and 3). The number of covariates is defined with +statement ncov=2. If now you have 3 covariates in the datafile +(fields 2, 3 and 4), you have to set ncov=3. Then you can run the +programme with a new parametrisation taking into account the +third covariate. For example, model=V1+V3 estimates +a model with the first and third covariates. More complicated +models can be used, but it will takes more time to converge. With +a simple model (no covariates), the programme estimates 8 +parameters. Adding covariates increases the number of parameters +: 12 for model=V1, 16 for model=V1+V1*age +and 20 for model=V1+V2+V3.

    +

    Guess values for optimization

    @@ -397,7 +415,8 @@ aij bij

    23 -6.234642 0.022315 -

    or, to simplify (in most of cases it converges but there is no warranty!):

    +

    or, to simplify (in most of cases it converges but there is no +warranty!):

    12 0.0 0.0
    @@ -406,6 +425,45 @@ aij bij 

    23 0.0 0.0
    +

    In order to speed up the convergence you can make a first run with +a large stepm i.e stepm=12 or 24 and then decrease the stepm until +stepm=1 month. If newstepm is the new shorter stepm and stepm can be +expressed as a multiple of newstepm, like newstepm=n stepm, then the +following approximation holds: +

    aij(stepm) = aij(n . stepm) - ln(n)
    +
    and +
    bij(stepm) = bij(n . stepm) .
    + +

    For example if you already ran for a 6 months interval and +got:
    +

    # Parameters
    +12 -13.390179  0.126133 
    +13  -7.493460  0.048069 
    +21   0.575975 -0.041322 
    +23  -4.748678  0.030626 
    +
    +If you now want to get the monthly estimates, you can guess the aij by +substracting ln(6)= 1,7917
    and running
    +
    12 -15.18193847  0.126133 
    +13 -9.285219469  0.048069
    +21 -1.215784469 -0.041322
    +23 -6.540437469  0.030626
    +
    +and get
    +
    12 -15.029768 0.124347 
    +13 -8.472981 0.036599 
    +21 -1.472527 -0.038394 
    +23 -6.553602 0.029856 
    +
    +which is closer to the results. The approximation is probably useful +only for very small intervals and we don't have enough experience to +know if you will speed up the convergence or not. +
             -ln(12)= -2.484
    + -ln(6/1)=-ln(6)= -1.791
    + -ln(3/1)=-ln(3)= -1.0986
    +-ln(12/6)=-ln(2)= -0.693
    +
    +

    Guess values for computing variances

    This is an output if mle=1. But it can be @@ -419,20 +477,13 @@ matrix of the parameters, that is the in matrix, and the variances of health expectancies. Each line consists in indices "ij" followed by the initial scales (zero to simplify) associated with aij and bij.

    - - - -
    -
    # Scales (for hessian or gradient estimation)
    +
    • If mle=1 you can enter zeros:
    • +
      # Scales (for hessian or gradient estimation)
       12 0. 0. 
       13 0. 0. 
       21 0. 0. 
       23 0. 0. 
      - -
      • If mle=0 you must enter a covariance matrix (usually obtained from an earlier run).
      @@ -442,22 +493,16 @@ consists in indices "ij" follo

      This is an output if mle=1. But it can be used as an input to get the various output data files (Health expectancies, stationary prevalence etc.) and figures without -rerunning the rather long maximisation phase (mle=0).

      - -

      Each line starts with indices "ijk" followed by the -covariances between aij and bij:

      - +rerunning the rather long maximisation phase (mle=0).
      +Each line starts with indices "ijk" followed by the +covariances between aij and bij:
          121 Var(a12) 
          122 Cov(b12,a12)  Var(b12) 
                 ...
          232 Cov(b23,a12)  Cov(b23,b12) ... Var (b23) 
      -
      • If mle=1 you can enter zeros.
      • -
      - -
      # Covariance matrix
       121 0.
       122 0. 0.
      @@ -467,12 +512,8 @@ covariances between aij and bij: 

      212 0. 0. 0. 0. 0. 0. 231 0. 0. 0. 0. 0. 0. 0. 232 0. 0. 0. 0. 0. 0. 0. 0.
      -
      - -
      • If mle=0 you must enter a covariance matrix (usually - obtained from an earlier run).
        -
      • + obtained from an earlier run).

      Age range for calculation of stationary @@ -480,20 +521,19 @@ prevalences and health expectanciesagemin=70 agemax=100 bage=50 fage=100

    -

    Once we obtained the estimated parameters, the program is able +
    Once we obtained the estimated parameters, the program is able to calculated stationary prevalence, transitions probabilities and life expectancies at any age. Choice of age range is useful for extrapolation. In our data file, ages varies from age 70 to -102. It is possible to get extrapolated stationary -prevalence by age ranging from agemin to agemax.

    - - -

    Setting bage=50 (begin age) and fage=100 (final age), makes the program computing -life expectancy from age 'bage' to age 'fage'. As we use a model, we -can interessingly compute life expectancy on a wider age range than the age -range from the data. But the model can be rather wrong on much larger -intervals. Program is limited to around 120 for upper age!

    +102. It is possible to get extrapolated stationary prevalence by +age ranging from agemin to agemax. +
    Setting bage=50 (begin age) and fage=100 (final age), makes +the program computing life expectancy from age 'bage' to age +'fage'. As we use a model, we can interessingly compute life +expectancy on a wider age range than the age range from the data. +But the model can be rather wrong on much larger intervals. +Program is limited to around 120 for upper age!