1: <html>
2:
3: <head>
4: <meta http-equiv="Content-Type"
5: content="text/html; charset=iso-8859-1">
6: <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
7: <title>Computing Health Expectancies using IMaCh</title>
8: <!-- Changed by: Agnes Lievre, 12-Oct-2000 -->
9: </head>
10:
11: <body bgcolor="#FFFFFF">
12:
13: <hr size="3" color="#EC5E5E">
14:
15: <h1 align="center"><font color="#00006A">Computing Health
16: Expectancies using IMaCh</font></h1>
17:
18: <h1 align="center"><font color="#00006A" size="5">(a Maximum
19: Likelihood Computer Program using Interpolation of Markov Chains)</font></h1>
20:
21: <p align="center"> </p>
22:
23: <p align="center"><a href="http://www.ined.fr/"><img
24: src="logo-ined.gif" border="0" width="151" height="76"></a><img
25: src="euroreves2.gif" width="151" height="75"></p>
26:
27: <h3 align="center"><a href="http://www.ined.fr/"><font
28: color="#00006A">INED</font></a><font color="#00006A"> and </font><a
29: href="http://euroreves.ined.fr"><font color="#00006A">EUROREVES</font></a></h3>
30:
31: <p align="center"><font color="#00006A" size="4"><strong>March
32: 2000</strong></font></p>
33:
34: <hr size="3" color="#EC5E5E">
35:
36: <p align="center"><font color="#00006A"><strong>Authors of the
37: program: </strong></font><a href="http://sauvy.ined.fr/brouard"><font
38: color="#00006A"><strong>Nicolas Brouard</strong></font></a><font
39: color="#00006A"><strong>, senior researcher at the </strong></font><a
40: href="http://www.ined.fr"><font color="#00006A"><strong>Institut
41: National d'Etudes Démographiques</strong></font></a><font
42: color="#00006A"><strong> (INED, Paris) in the "Mortality,
43: Health and Epidemiology" Research Unit </strong></font></p>
44:
45: <p align="center"><font color="#00006A"><strong>and Agnès
46: Lièvre<br clear="left">
47: </strong></font></p>
48:
49: <h4><font color="#00006A">Contribution to the mathematics: C. R.
50: Heathcote </font><font color="#00006A" size="2">(Australian
51: National University, Canberra).</font></h4>
52:
53: <h4><font color="#00006A">Contact: Agnès Lièvre (</font><a
54: href="mailto:lievre@ined.fr"><font color="#00006A"><i>lievre@ined.fr</i></font></a><font
55: color="#00006A">) </font></h4>
56:
57: <hr>
58:
59: <ul>
60: <li><a href="#intro">Introduction</a> </li>
61: <li>The detailed statistical model (<a href="docmath.pdf">PDF
62: version</a>),(<a href="docmath.ps">ps version</a>) </li>
63: <li><a href="#data">On what kind of data can it be used?</a></li>
64: <li><a href="#datafile">The data file</a> </li>
65: <li><a href="#biaspar">The parameter file</a> </li>
66: <li><a href="#running">Running Imach</a> </li>
67: <li><a href="#output">Output files and graphs</a> </li>
68: <li><a href="#example">Exemple</a> </li>
69: </ul>
70:
71: <hr>
72:
73: <h2><a name="intro"><font color="#00006A">Introduction</font></a></h2>
74:
75: <p>This program computes <b>Healthy Life Expectancies</b> from <b>cross-longitudinal
76: data</b> using the methodology pioneered by Laditka and Wolf (1).
77: Within the family of Health Expectancies (HE), Disability-free
78: life expectancy (DFLE) is probably the most important index to
79: monitor. In low mortality countries, there is a fear that when
80: mortality declines, the increase in DFLE is not proportionate to
81: the increase in total Life expectancy. This case is called the <em>Expansion
82: of morbidity</em>. Most of the data collected today, in
83: particular by the international <a href="http://euroreves/reves">REVES</a>
84: network on Health expectancy, and most HE indices based on these
85: data, are <em>cross-sectional</em>. It means that the information
86: collected comes from a single cross-sectional survey: people from
87: various ages (but mostly old people) are surveyed on their health
88: status at a single date. Proportion of people disabled at each
89: age, can then be measured at that date. This age-specific
90: prevalence curve is then used to distinguish, within the
91: stationary population (which, by definition, is the life table
92: estimated from the vital statistics on mortality at the same
93: date), the disable population from the disability-free
94: population. Life expectancy (LE) (or total population divided by
95: the yearly number of births or deaths of this stationary
96: population) is then decomposed into DFLE and DLE. This method of
97: computing HE is usually called the Sullivan method (from the name
98: of the author who first described it).</p>
99:
100: <p>Age-specific proportions of people disable are very difficult
101: to forecast because each proportion corresponds to historical
102: conditions of the cohort and it is the result of the historical
103: flows from entering disability and recovering in the past until
104: today. The age-specific intensities (or incidence rates) of
105: entering disability or recovering a good health, are reflecting
106: actual conditions and therefore can be used at each age to
107: forecast the future of this cohort. For example if a country is
108: improving its technology of prosthesis, the incidence of
109: recovering the ability to walk will be higher at each (old) age,
110: but the prevalence of disability will only slightly reflect an
111: improve because the prevalence is mostly affected by the history
112: of the cohort and not by recent period effects. To measure the
113: period improvement we have to simulate the future of a cohort of
114: new-borns entering or leaving at each age the disability state or
115: dying according to the incidence rates measured today on
116: different cohorts. The proportion of people disabled at each age
117: in this simulated cohort will be much lower (using the exemple of
118: an improvement) that the proportions observed at each age in a
119: cross-sectional survey. This new prevalence curve introduced in a
120: life table will give a much more actual and realistic HE level
121: than the Sullivan method which mostly measured the History of
122: health conditions in this country.</p>
123:
124: <p>Therefore, the main question is how to measure incidence rates
125: from cross-longitudinal surveys? This is the goal of the IMaCH
126: program. From your data and using IMaCH you can estimate period
127: HE and not only Sullivan's HE. Also the standard errors of the HE
128: are computed.</p>
129:
130: <p>A cross-longitudinal survey consists in a first survey
131: ("cross") where individuals from different ages are
132: interviewed on their health status or degree of disability. At
133: least a second wave of interviews ("longitudinal")
134: should measure each new individual health status. Health
135: expectancies are computed from the transitions observed between
136: waves and are computed for each degree of severity of disability
137: (number of life states). More degrees you consider, more time is
138: necessary to reach the Maximum Likelihood of the parameters
139: involved in the model. Considering only two states of disability
140: (disable and healthy) is generally enough but the computer
141: program works also with more health statuses.<br>
142: <br>
143: The simplest model is the multinomial logistic model where <i>pij</i>
144: is the probability to be observed in state <i>j</i> at the second
145: wave conditional to be observed in state <em>i</em> at the first
146: wave. Therefore a simple model is: log<em>(pij/pii)= aij +
147: bij*age+ cij*sex,</em> where '<i>age</i>' is age and '<i>sex</i>'
148: is a covariate. The advantage that this computer program claims,
149: comes from that if the delay between waves is not identical for
150: each individual, or if some individual missed an interview, the
151: information is not rounded or lost, but taken into account using
152: an interpolation or extrapolation. <i>hPijx</i> is the
153: probability to be observed in state <i>i</i> at age <i>x+h</i>
154: conditional to the observed state <i>i</i> at age <i>x</i>. The
155: delay '<i>h</i>' can be split into an exact number (<i>nh*stepm</i>)
156: of unobserved intermediate states. This elementary transition (by
157: month or quarter trimester, semester or year) is modeled as a
158: multinomial logistic. The <i>hPx</i> matrix is simply the matrix
159: product of <i>nh*stepm</i> elementary matrices and the
160: contribution of each individual to the likelihood is simply <i>hPijx</i>.
161: <br>
162: </p>
163:
164: <p>The program presented in this manual is a quite general
165: program named <strong>IMaCh</strong> (for <strong>I</strong>nterpolated
166: <strong>MA</strong>rkov <strong>CH</strong>ain), designed to
167: analyse transition data from longitudinal surveys. The first step
168: is the parameters estimation of a transition probabilities model
169: between an initial status and a final status. From there, the
170: computer program produces some indicators such as observed and
171: stationary prevalence, life expectancies and their variances and
172: graphs. Our transition model consists in absorbing and
173: non-absorbing states with the possibility of return across the
174: non-absorbing states. The main advantage of this package,
175: compared to other programs for the analysis of transition data
176: (For example: Proc Catmod of SAS<sup>®</sup>) is that the whole
177: individual information is used even if an interview is missing, a
178: status or a date is unknown or when the delay between waves is
179: not identical for each individual. The program can be executed
180: according to parameters: selection of a sub-sample, number of
181: absorbing and non-absorbing states, number of waves taken in
182: account (the user inputs the first and the last interview), a
183: tolerance level for the maximization function, the periodicity of
184: the transitions (we can compute annual, quaterly or monthly
185: transitions), covariates in the model. It works on Windows or on
186: Unix.<br>
187: </p>
188:
189: <hr>
190:
191: <p>(1) Laditka, Sarah B. and Wolf, Douglas A. (1998), "New
192: Methods for Analyzing Active Life Expectancy". <i>Journal of
193: Aging and Health</i>. Vol 10, No. 2. </p>
194:
195: <hr>
196:
197: <h2><a name="data"><font color="#00006A">On what kind of data can
198: it be used?</font></a></h2>
199:
200: <p>The minimum data required for a transition model is the
201: recording of a set of individuals interviewed at a first date and
202: interviewed again at least one another time. From the
203: observations of an individual, we obtain a follow-up over time of
204: the occurrence of a specific event. In this documentation, the
205: event is related to health status at older ages, but the program
206: can be applied on a lot of longitudinal studies in different
207: contexts. To build the data file explained into the next section,
208: you must have the month and year of each interview and the
209: corresponding health status. But in order to get age, date of
210: birth (month and year) is required (missing values is allowed for
211: month). Date of death (month and year) is an important
212: information also required if the individual is dead. Shorter
213: steps (i.e. a month) will more closely take into account the
214: survival time after the last interview.</p>
215:
216: <hr>
217:
218: <h2><a name="datafile"><font color="#00006A">The data file</font></a></h2>
219:
220: <p>In this example, 8,000 people have been interviewed in a
221: cross-longitudinal survey of 4 waves (1984, 1986, 1988, 1990).
222: Some people missed 1, 2 or 3 interviews. Health statuses are
223: healthy (1) and disable (2). The survey is not a real one. It is
224: a simulation of the American Longitudinal Survey on Aging. The
225: disability state is defined if the individual missed one of four
226: ADL (Activity of daily living, like bathing, eating, walking).
227: Therefore, even is the individuals interviewed in the sample are
228: virtual, the information brought with this sample is close to the
229: situation of the United States. Sex is not recorded is this
230: sample.</p>
231:
232: <p>Each line of the data set (named <a href="data1.txt">data1.txt</a>
233: in this first example) is an individual record which fields are: </p>
234:
235: <ul>
236: <li><b>Index number</b>: positive number (field 1) </li>
237: <li><b>First covariate</b> positive number (field 2) </li>
238: <li><b>Second covariate</b> positive number (field 3) </li>
239: <li><a name="Weight"><b>Weight</b></a>: positive number
240: (field 4) . In most surveys individuals are weighted
241: according to the stratification of the sample.</li>
242: <li><b>Date of birth</b>: coded as mm/yyyy. Missing dates are
243: coded as 99/9999 (field 5) </li>
244: <li><b>Date of death</b>: coded as mm/yyyy. Missing dates are
245: coded as 99/9999 (field 6) </li>
246: <li><b>Date of first interview</b>: coded as mm/yyyy. Missing
247: dates are coded as 99/9999 (field 7) </li>
248: <li><b>Status at first interview</b>: positive number.
249: Missing values ar coded -1. (field 8) </li>
250: <li><b>Date of second interview</b>: coded as mm/yyyy.
251: Missing dates are coded as 99/9999 (field 9) </li>
252: <li><strong>Status at second interview</strong> positive
253: number. Missing values ar coded -1. (field 10) </li>
254: <li><b>Date of third interview</b>: coded as mm/yyyy. Missing
255: dates are coded as 99/9999 (field 11) </li>
256: <li><strong>Status at third interview</strong> positive
257: number. Missing values ar coded -1. (field 12) </li>
258: <li><b>Date of fourth interview</b>: coded as mm/yyyy.
259: Missing dates are coded as 99/9999 (field 13) </li>
260: <li><strong>Status at fourth interview</strong> positive
261: number. Missing values are coded -1. (field 14) </li>
262: <li>etc</li>
263: </ul>
264:
265: <p> </p>
266:
267: <p>If your longitudinal survey do not include information about
268: weights or covariates, you must fill the column with a number
269: (e.g. 1) because a missing field is not allowed.</p>
270:
271: <hr>
272:
273: <h2><font color="#00006A">Your first example parameter file</font><a
274: href="http://euroreves.ined.fr/imach"></a><a name="uio"></a></h2>
275:
276: <h2><a name="biaspar"></a>#Imach version 0.63, February 2000,
277: INED-EUROREVES </h2>
278:
279: <p>This is a comment. Comments start with a '#'.</p>
280:
281: <h4><font color="#FF0000">First uncommented line</font></h4>
282:
283: <pre>title=1st_example datafile=data1.txt lastobs=8600 firstpass=1 lastpass=4</pre>
284:
285: <ul>
286: <li><b>title=</b> 1st_example is title of the run. </li>
287: <li><b>datafile=</b>data1.txt is the name of the data set.
288: Our example is a six years follow-up survey. It consists
289: in a baseline followed by 3 reinterviews. </li>
290: <li><b>lastobs=</b> 8600 the program is able to run on a
291: subsample where the last observation number is lastobs.
292: It can be set a bigger number than the real number of
293: observations (e.g. 100000). In this example, maximisation
294: will be done on the 8600 first records. </li>
295: <li><b>firstpass=1</b> , <b>lastpass=4 </b>In case of more
296: than two interviews in the survey, the program can be run
297: on selected transitions periods. firstpass=1 means the
298: first interview included in the calculation is the
299: baseline survey. lastpass=4 means that the information
300: brought by the 4th interview is taken into account.</li>
301: </ul>
302:
303: <p> </p>
304:
305: <h4><a name="biaspar-2"><font color="#FF0000">Second uncommented
306: line</font></a></h4>
307:
308: <pre>ftol=1.e-08 stepm=1 ncov=2 nlstate=2 ndeath=1 maxwav=4 mle=1 weight=0</pre>
309:
310: <ul>
311: <li><b>ftol=1e-8</b> Convergence tolerance on the function
312: value in the maximisation of the likelihood. Choosing a
313: correct value for ftol is difficult. 1e-8 is a correct
314: value for a 32 bits computer.</li>
315: <li><b>stepm=1</b> Time unit in months for interpolation.
316: Examples:<ul>
317: <li>If stepm=1, the unit is a month </li>
318: <li>If stepm=4, the unit is a trimester</li>
319: <li>If stepm=12, the unit is a year </li>
320: <li>If stepm=24, the unit is two years</li>
321: <li>... </li>
322: </ul>
323: </li>
324: <li><b>ncov=2</b> Number of covariates in the datafile. The
325: intercept and the age parameter are counting for 2
326: covariates.</li>
327: <li><b>nlstate=2</b> Number of non-absorbing (alive) states.
328: Here we have two alive states: disability-free is coded 1
329: and disability is coded 2. </li>
330: <li><b>ndeath=1</b> Number of absorbing states. The absorbing
331: state death is coded 3. </li>
332: <li><b>maxwav=4</b> Number of waves in the datafile.</li>
333: <li><a name="mle"><b>mle</b></a><b>=1</b> Option for the
334: Maximisation Likelihood Estimation. <ul>
335: <li>If mle=1 the program does the maximisation and
336: the calculation of health expectancies </li>
337: <li>If mle=0 the program only does the calculation of
338: the health expectancies. </li>
339: </ul>
340: </li>
341: <li><b>weight=0</b> Possibility to add weights. <ul>
342: <li>If weight=0 no weights are included </li>
343: <li>If weight=1 the maximisation integrates the
344: weights which are in field <a href="#Weight">4</a></li>
345: </ul>
346: </li>
347: </ul>
348:
349: <h4><font color="#FF0000">Covariates</font></h4>
350:
351: <p>Intercept and age are systematically included in the model.
352: Additional covariates can be included with the command </p>
353:
354: <pre>model=<em>list of covariates</em></pre>
355:
356: <ul>
357: <li>if<strong> model=. </strong>then no covariates are
358: included</li>
359: <li>if <strong>model=V1</strong> the model includes the first
360: covariate (field 2)</li>
361: <li>if <strong>model=V2 </strong>the model includes the
362: second covariate (field 3)</li>
363: <li>if <strong>model=V1+V2 </strong>the model includes the
364: first and the second covariate (fields 2 and 3)</li>
365: <li>if <strong>model=V1*V2 </strong>the model includes the
366: product of the first and the second covariate (fields 2
367: and 3)</li>
368: </ul>
369:
370: <h4><font color="#FF0000">Guess values for optimization</font><font
371: color="#00006A"> </font></h4>
372:
373: <p>You must write the initial guess values of the parameters for
374: optimization. The number of parameters, <em>N</em> depends on the
375: number of absorbing states and non-absorbing states and on the
376: number of covariates. <br>
377: <em>N</em> is given by the formula <em>N</em>=(<em>nlstate</em> +
378: <em>ndeath</em>-1)*<em>nlstate</em>*<em>ncov</em> . <br>
379: <br>
380: Thus in the simple case with 2 covariates (the model is log
381: (pij/pii) = aij + bij * age where intercept and age are the two
382: covariates), and 2 health degrees (1 for disability-free and 2
383: for disability) and 1 absorbing state (3), you must enter 8
384: initials values, a12, b12, a13, b13, a21, b21, a23, b23. You can
385: start with zeros as in this example, but if you have a more
386: precise set (for example from an earlier run) you can enter it
387: and it will speed up them<br>
388: Each of the four lines starts with indices "ij": <br>
389: <br>
390: <b>ij aij bij</b> </p>
391:
392: <blockquote>
393: <pre># Guess values of aij and bij in log (pij/pii) = aij + bij * age
394: 12 -14.155633 0.110794
395: 13 -7.925360 0.032091
396: 21 -1.890135 -0.029473
397: 23 -6.234642 0.022315 </pre>
398: </blockquote>
399:
400: <p>or, to simplify: </p>
401:
402: <blockquote>
403: <pre>12 0.0 0.0
404: 13 0.0 0.0
405: 21 0.0 0.0
406: 23 0.0 0.0</pre>
407: </blockquote>
408:
409: <h4><font color="#FF0000">Guess values for computing variances</font></h4>
410:
411: <p>This is an output if <a href="#mle">mle</a>=1. But it can be
412: used as an input to get the vairous output data files (Health
413: expectancies, stationary prevalence etc.) and figures without
414: rerunning the rather long maximisation phase (mle=0). </p>
415:
416: <p>The scales are small values for the evaluation of numerical
417: derivatives. These derivatives are used to compute the hessian
418: matrix of the parameters, that is the inverse of the covariance
419: matrix, and the variances of health expectancies. Each line
420: consists in indices "ij" followed by the initial scales
421: (zero to simplify) associated with aij and bij. </p>
422:
423: <ul>
424: <li>If mle=1 you can enter zeros:</li>
425: </ul>
426:
427: <blockquote>
428: <pre># Scales (for hessian or gradient estimation)
429: 12 0. 0.
430: 13 0. 0.
431: 21 0. 0.
432: 23 0. 0. </pre>
433: </blockquote>
434:
435: <ul>
436: <li>If mle=0 you must enter a covariance matrix (usually
437: obtained from an earlier run).</li>
438: </ul>
439:
440: <h4><font color="#FF0000">Covariance matrix of parameters</font></h4>
441:
442: <p>This is an output if <a href="#mle">mle</a>=1. But it can be
443: used as an input to get the vairous output data files (Health
444: expectancies, stationary prevalence etc.) and figures without
445: rerunning the rather long maximisation phase (mle=0). </p>
446:
447: <p>Each line starts with indices "ijk" followed by the
448: covariances between aij and bij: </p>
449:
450: <pre>
451: 121 Var(a12)
452: 122 Cov(b12,a12) Var(b12)
453: ...
454: 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23) </pre>
455:
456: <ul>
457: <li>If mle=1 you can enter zeros. </li>
458: </ul>
459:
460: <blockquote>
461: <pre># Covariance matrix
462: 121 0.
463: 122 0. 0.
464: 131 0. 0. 0.
465: 132 0. 0. 0. 0.
466: 211 0. 0. 0. 0. 0.
467: 212 0. 0. 0. 0. 0. 0.
468: 231 0. 0. 0. 0. 0. 0. 0.
469: 232 0. 0. 0. 0. 0. 0. 0. 0.</pre>
470: </blockquote>
471:
472: <ul>
473: <li>If mle=0 you must enter a covariance matrix (usually
474: obtained from an earlier run).<br>
475: </li>
476: </ul>
477:
478: <h4><a name="biaspar-l"></a><font color="#FF0000">last
479: uncommented line</font></h4>
480:
481: <pre>agemin=70 agemax=100 bage=50 fage=100</pre>
482:
483: <p>Once we obtained the estimated parameters, the program is able
484: to calculated stationary prevalence, transitions probabilities
485: and life expectancies at any age. Choice of age ranges is useful
486: for extrapolation. In our data file, ages varies from age 70 to
487: 102. Setting bage=50 and fage=100, makes the program computing
488: life expectancy from age bage to age fage. As we use a model, we
489: can compute life expectancy on a wider age range than the age
490: range from the data. But the model can be rather wrong on big
491: intervals.</p>
492:
493: <p>Similarly, it is possible to get extrapolated stationary
494: prevalence by age raning from agemin to agemax. </p>
495:
496: <ul>
497: <li><b>agemin=</b> Minimum age for calculation of the
498: stationary prevalence </li>
499: <li><b>agemax=</b> Maximum age for calculation of the
500: stationary prevalence </li>
501: <li><b>bage=</b> Minimum age for calculation of the health
502: expectancies </li>
503: <li><b>fage=</b> Maximum ages for calculation of the health
504: expectancies </li>
505: </ul>
506:
507: <hr>
508:
509: <h2><a name="running"></a><font color="#00006A">Running Imach
510: with this example</font></h2>
511:
512: <p>We assume that you entered your <a href="biaspar.txt">1st_example
513: parameter file</a> as explained <a href="#biaspar">above</a>. To
514: run the program you should click on the imach.exe icon and enter
515: the name of the parameter file which is for example <a
516: href="C:\usr\imach\mle\biaspar.txt">C:\usr\imach\mle\biaspar.txt</a>
517: (you also can click on the biaspar.txt icon located in <br>
518: <a href="C:\usr\imach\mle">C:\usr\imach\mle</a> and put it with
519: the mouse on the imach window).<br>
520: </p>
521:
522: <p>The time to converge depends on the step unit that you used (1
523: month is cpu consuming), on the number of cases, and on the
524: number of variables.</p>
525:
526: <p>The program outputs many files. Most of them are files which
527: will be plotted for better understanding.</p>
528:
529: <hr>
530:
531: <h2><a name="output"><font color="#00006A">Output of the program
532: and graphs</font> </a></h2>
533:
534: <p>Once the optimization is finished, some graphics can be made
535: with a grapher. We use Gnuplot which is an interactive plotting
536: program copyrighted but freely distributed. Imach outputs the
537: source of a gnuplot file, named 'graph.gp', which can be directly
538: input into gnuplot.<br>
539: When the running is finished, the user should enter a caracter
540: for plotting and output editing. </p>
541:
542: <p>These caracters are:</p>
543:
544: <ul>
545: <li>'c' to start again the program from the beginning.</li>
546: <li>'g' to made graphics. The output graphs are in GIF format
547: and you have no control over which is produced. If you
548: want to modify the graphics or make another one, you
549: should modify the parameters in the file <b>graph.gp</b>
550: located in imach\bin. A gnuplot reference manual is
551: available <a
552: href="http://www.cs.dartmouth.edu/gnuplot/gnuplot.html">here</a>.
553: </li>
554: <li>'e' opens the <strong>index.htm</strong> file to edit the
555: output files and graphs. </li>
556: <li>'q' for exiting.</li>
557: </ul>
558:
559: <h5><font size="4"><strong>Results files </strong></font><br>
560: <br>
561: <font color="#EC5E5E" size="3"><strong>- </strong></font><a
562: name="Observed prevalence in each state"><font color="#EC5E5E"
563: size="3"><strong>Observed prevalence in each state</strong></font></a><font
564: color="#EC5E5E" size="3"><strong> (and at first pass)</strong></font><b>:
565: </b><a href="prbiaspar.txt"><b>prbiaspar.txt</b></a><br>
566: </h5>
567:
568: <p>The first line is the title and displays each field of the
569: file. The first column is age. The fields 2 and 6 are the
570: proportion of individuals in states 1 and 2 respectively as
571: observed during the first exam. Others fields are the numbers of
572: people in states 1, 2 or more. The number of columns increases if
573: the number of states is higher than 2.<br>
574: The header of the file is </p>
575:
576: <pre># Age Prev(1) N(1) N Age Prev(2) N(2) N
577: 70 1.00000 631 631 70 0.00000 0 631
578: 71 0.99681 625 627 71 0.00319 2 627
579: 72 0.97125 1115 1148 72 0.02875 33 1148 </pre>
580:
581: <pre># Age Prev(1) N(1) N Age Prev(2) N(2) N
582: 70 0.95721 604 631 70 0.04279 27 631</pre>
583:
584: <p>It means that at age 70, the prevalence in state 1 is 1.000
585: and in state 2 is 0.00 . At age 71 the number of individuals in
586: state 1 is 625 and in state 2 is 2, hence the total number of
587: people aged 71 is 625+2=627. <br>
588: </p>
589:
590: <h5><font color="#EC5E5E" size="3"><b>- Estimated parameters and
591: covariance matrix</b></font><b>: </b><a href="rbiaspar.txt"><b>rbiaspar.txt</b></a></h5>
592:
593: <p>This file contains all the maximisation results: </p>
594:
595: <pre> Number of iterations=47
596: -2 log likelihood=46553.005854373667
597: Estimated parameters: a12 = -12.691743 b12 = 0.095819
598: a13 = -7.815392 b13 = 0.031851
599: a21 = -1.809895 b21 = -0.030470
600: a23 = -7.838248 b23 = 0.039490
601: Covariance matrix: Var(a12) = 1.03611e-001
602: Var(b12) = 1.51173e-005
603: Var(a13) = 1.08952e-001
604: Var(b13) = 1.68520e-005
605: Var(a21) = 4.82801e-001
606: Var(b21) = 6.86392e-005
607: Var(a23) = 2.27587e-001
608: Var(b23) = 3.04465e-005
609: </pre>
610:
611: <h5><font color="#EC5E5E" size="3"><b>- Transition probabilities</b></font><b>:
612: </b><a href="pijrbiaspar.txt"><b>pijrbiaspar.txt</b></a></h5>
613:
614: <p>Here are the transitions probabilities Pij(x, x+nh) where nh
615: is a multiple of 2 years. The first column is the starting age x
616: (from age 50 to 100), the second is age (x+nh) and the others are
617: the transition probabilities p11, p12, p13, p21, p22, p23. For
618: example, line 5 of the file is: </p>
619:
620: <pre> 100 106 0.03286 0.23512 0.73202 0.02330 0.19210 0.78460 </pre>
621:
622: <p>and this means: </p>
623:
624: <pre>p11(100,106)=0.03286
625: p12(100,106)=0.23512
626: p13(100,106)=0.73202
627: p21(100,106)=0.02330
628: p22(100,106)=0.19210
629: p22(100,106)=0.78460 </pre>
630:
631: <h5><font color="#EC5E5E" size="3"><b>- </b></font><a
632: name="Stationary prevalence in each state"><font color="#EC5E5E"
633: size="3"><b>Stationary prevalence in each state</b></font></a><b>:
634: </b><a href="plrbiaspar.txt"><b>plrbiaspar.txt</b></a></h5>
635:
636: <pre>#Age 1-1 2-2
637: 70 0.92274 0.07726
638: 71 0.91420 0.08580
639: 72 0.90481 0.09519
640: 73 0.89453 0.10547</pre>
641:
642: <p>At age 70 the stationary prevalence is 0.92274 in state 1 and
643: 0.07726 in state 2. This stationary prevalence differs from
644: observed prevalence. Here is the point. The observed prevalence
645: at age 70 results from the incidence of disability, incidence of
646: recovery and mortality which occurred in the past of the cohort.
647: Stationary prevalence results from a simulation with actual
648: incidences and mortality (estimated from this cross-longitudinal
649: survey). It is the best predictive value of the prevalence in the
650: future if "nothing changes in the future". This is
651: exactly what demographers do with a Life table. Life expectancy
652: is the expected mean time to survive if observed mortality rates
653: (incidence of mortality) "remains constant" in the
654: future. </p>
655:
656: <h5><font color="#EC5E5E" size="3"><b>- Standard deviation of
657: stationary prevalence</b></font><b>: </b><a
658: href="vplrbiaspar.txt"><b>vplrbiaspar.txt</b></a></h5>
659:
660: <p>The stationary prevalence has to be compared with the observed
661: prevalence by age. But both are statistical estimates and
662: subjected to stochastic errors due to the size of the sample, the
663: design of the survey, and, for the stationary prevalence to the
664: model used and fitted. It is possible to compute the standard
665: deviation of the stationary prevalence at each age.</p>
666:
667: <h6><font color="#EC5E5E" size="3">Observed and stationary
668: prevalence in state (2=disable) with the confident interval</font>:<b>
669: vbiaspar2.gif</b></h6>
670:
671: <p><br>
672: This graph exhibits the stationary prevalence in state (2) with
673: the confidence interval in red. The green curve is the observed
674: prevalence (or proportion of individuals in state (2)). Without
675: discussing the results (it is not the purpose here), we observe
676: that the green curve is rather below the stationary prevalence.
677: It suggests an increase of the disability prevalence in the
678: future.</p>
679:
680: <p><img src="vbiaspar2.gif" width="400" height="300"></p>
681:
682: <h6><font color="#EC5E5E" size="3"><b>Convergence to the
683: stationary prevalence of disability</b></font><b>: pbiaspar1.gif</b><br>
684: <img src="pbiaspar1.gif" width="400" height="300"> </h6>
685:
686: <p>This graph plots the conditional transition probabilities from
687: an initial state (1=healthy in red at the bottom, or 2=disable in
688: green on top) at age <em>x </em>to the final state 2=disable<em> </em>at
689: age <em>x+h. </em>Conditional means at the condition to be alive
690: at age <em>x+h </em>which is <i>hP12x</i> + <em>hP22x</em>. The
691: curves <i>hP12x/(hP12x</i> + <em>hP22x) </em>and <i>hP22x/(hP12x</i>
692: + <em>hP22x) </em>converge with <em>h, </em>to the <em>stationary
693: prevalence of disability</em>. In order to get the stationary
694: prevalence at age 70 we should start the process at an earlier
695: age, i.e.50. If the disability state is defined by severe
696: disability criteria with only a few chance to recover, then the
697: incidence of recovery is low and the time to convergence is
698: probably longer. But we don't have experience yet.</p>
699:
700: <h5><font color="#EC5E5E" size="3"><b>- Life expectancies by age
701: and initial health status</b></font><b>: </b><a
702: href="erbiaspar.txt"><b>erbiaspar.txt</b></a></h5>
703:
704: <pre># Health expectancies
705: # Age 1-1 1-2 2-1 2-2
706: 70 10.7297 2.7809 6.3440 5.9813
707: 71 10.3078 2.8233 5.9295 5.9959
708: 72 9.8927 2.8643 5.5305 6.0033
709: 73 9.4848 2.9036 5.1474 6.0035 </pre>
710:
711: <pre>For example 70 10.7297 2.7809 6.3440 5.9813 means:
712: e11=10.7297 e12=2.7809 e21=6.3440 e22=5.9813</pre>
713:
714: <pre><img src="exbiaspar1.gif" width="400" height="300"><img
715: src="exbiaspar2.gif" width="400" height="300"></pre>
716:
717: <p>For example, life expectancy of a healthy individual at age 70
718: is 10.73 in the healthy state and 2.78 in the disability state
719: (=13.51 years). If he was disable at age 70, his life expectancy
720: will be shorter, 6.34 in the healthy state and 5.98 in the
721: disability state (=12.32 years). The total life expectancy is a
722: weighted mean of both, 13.51 and 12.32; weight is the proportion
723: of people disabled at age 70. In order to get a pure period index
724: (i.e. based only on incidences) we use the <a
725: href="#Stationary prevalence in each state">computed or
726: stationary prevalence</a> at age 70 (i.e. computed from
727: incidences at earlier ages) instead of the <a
728: href="#Observed prevalence in each state">observed prevalence</a>
729: (for example at first exam) (<a href="#Health expectancies">see
730: below</a>).</p>
731:
732: <h5><font color="#EC5E5E" size="3"><b>- Variances of life
733: expectancies by age and initial health status</b></font><b>: </b><a
734: href="vrbiaspar.txt"><b>vrbiaspar.txt</b></a></h5>
735:
736: <p>For example, the covariances of life expectancies Cov(ei,ej)
737: at age 50 are (line 3) </p>
738:
739: <pre> Cov(e1,e1)=0.4667 Cov(e1,e2)=0.0605=Cov(e2,e1) Cov(e2,e2)=0.0183</pre>
740:
741: <h5><font color="#EC5E5E" size="3"><b>- </b></font><a
742: name="Health expectancies"><font color="#EC5E5E" size="3"><b>Health
743: expectancies</b></font></a><font color="#EC5E5E" size="3"><b>
744: with standard errors in parentheses</b></font><b>: </b><a
745: href="trbiaspar.txt"><font face="Courier New"><b>trbiaspar.txt</b></font></a></h5>
746:
747: <pre>#Total LEs with variances: e.. (std) e.1 (std) e.2 (std) </pre>
748:
749: <pre>70 13.42 (0.18) 10.39 (0.15) 3.03 (0.10)70 13.81 (0.18) 11.28 (0.14) 2.53 (0.09) </pre>
750:
751: <p>Thus, at age 70 the total life expectancy, e..=13.42 years is
752: the weighted mean of e1.=13.51 and e2.=12.32 by the stationary
753: prevalence at age 70 which are 0.92274 in state 1 and 0.07726 in
754: state 2, respectively (the sum is equal to one). e.1=10.39 is the
755: Disability-free life expectancy at age 70 (it is again a weighted
756: mean of e11 and e21). e.2=3.03 is also the life expectancy at age
757: 70 to be spent in the disability state.</p>
758:
759: <h6><font color="#EC5E5E" size="3"><b>Total life expectancy by
760: age and health expectancies in states (1=healthy) and (2=disable)</b></font><b>:
761: ebiaspar.gif</b></h6>
762:
763: <p>This figure represents the health expectancies and the total
764: life expectancy with the confident interval in dashed curve. </p>
765:
766: <pre> <img src="ebiaspar.gif" width="400" height="300"></pre>
767:
768: <p>Standard deviations (obtained from the information matrix of
769: the model) of these quantities are very useful.
770: Cross-longitudinal surveys are costly and do not involve huge
771: samples, generally a few thousands; therefore it is very
772: important to have an idea of the standard deviation of our
773: estimates. It has been a big challenge to compute the Health
774: Expectancy standard deviations. Don't be confuse: life expectancy
775: is, as any expected value, the mean of a distribution; but here
776: we are not computing the standard deviation of the distribution,
777: but the standard deviation of the estimate of the mean.</p>
778:
779: <p>Our health expectancies estimates vary according to the sample
780: size (and the standard deviations give confidence intervals of
781: the estimate) but also according to the model fitted. Let us
782: explain it in more details.</p>
783:
784: <p>Choosing a model means ar least two kind of choices. First we
785: have to decide the number of disability states. Second we have to
786: design, within the logit model family, the model: variables,
787: covariables, confonding factors etc. to be included.</p>
788:
789: <p>More disability states we have, better is our demographical
790: approach of the disability process, but smaller are the number of
791: transitions between each state and higher is the noise in the
792: measurement. We do not have enough experiments of the various
793: models to summarize the advantages and disadvantages, but it is
794: important to say that even if we had huge and unbiased samples,
795: the total life expectancy computed from a cross-longitudinal
796: survey, varies with the number of states. If we define only two
797: states, alive or dead, we find the usual life expectancy where it
798: is assumed that at each age, people are at the same risk to die.
799: If we are differentiating the alive state into healthy and
800: disable, and as the mortality from the disability state is higher
801: than the mortality from the healthy state, we are introducing
802: heterogeneity in the risk of dying. The total mortality at each
803: age is the weighted mean of the mortality in each state by the
804: prevalence in each state. Therefore if the proportion of people
805: at each age and in each state is different from the stationary
806: equilibrium, there is no reason to find the same total mortality
807: at a particular age. Life expectancy, even if it is a very useful
808: tool, has a very strong hypothesis of homogeneity of the
809: population. Our main purpose is not to measure differential
810: mortality but to measure the expected time in a healthy or
811: disability state in order to maximise the former and minimize the
812: latter. But the differential in mortality complexifies the
813: measurement.</p>
814:
815: <p>Incidences of disability or recovery are not affected by the
816: number of states if these states are independant. But incidences
817: estimates are dependant on the specification of the model. More
818: covariates we added in the logit model better is the model, but
819: some covariates are not well measured, some are confounding
820: factors like in any statistical model. The procedure to "fit
821: the best model' is similar to logistic regression which itself is
822: similar to regression analysis. We haven't yet been sofar because
823: we also have a severe limitation which is the speed of the
824: convergence. On a Pentium III, 500 MHz, even the simplest model,
825: estimated by month on 8,000 people may take 4 hours to converge.
826: Also, the program is not yet a statistical package, which permits
827: a simple writing of the variables and the model to take into
828: account in the maximisation. The actual program allows only to
829: add simple variables without covariations, like age+sex but
830: without age+sex+ age*sex . This can be done from the source code
831: (you have to change three lines in the source code) but will
832: never be general enough. But what is to remember, is that
833: incidences or probability of change from one state to another is
834: affected by the variables specified into the model.</p>
835:
836: <p>Also, the age range of the people interviewed has a link with
837: the age range of the life expectancy which can be estimated by
838: extrapolation. If your sample ranges from age 70 to 95, you can
839: clearly estimate a life expectancy at age 70 and trust your
840: confidence interval which is mostly based on your sample size,
841: but if you want to estimate the life expectancy at age 50, you
842: should rely in your model, but fitting a logistic model on a age
843: range of 70-95 and estimating probabilties of transition out of
844: this age range, say at age 50 is very dangerous. At least you
845: should remember that the confidence interval given by the
846: standard deviation of the health expectancies, are under the
847: strong assumption that your model is the 'true model', which is
848: probably not the case.</p>
849:
850: <h5><font color="#EC5E5E" size="3"><b>- Copy of the parameter
851: file</b></font><b>: </b><a href="orbiaspar.txt"><b>orbiaspar.txt</b></a></h5>
852:
853: <p>This copy of the parameter file can be useful to re-run the
854: program while saving the old output files. </p>
855:
856: <hr>
857:
858: <h2><a name="example" </a><font color="#00006A">Trying an example</font></a></h2>
859:
860: <p>Since you know how to run the program, it is time to test it
861: on your own computer. Try for example on a parameter file named <a
862: href="file://../mytry/imachpar.txt">imachpar.txt</a> which is a
863: copy of <font size="2" face="Courier New">mypar.txt</font>
864: included in the subdirectory of imach, <font size="2"
865: face="Courier New">mytry</font>. Edit it to change the name of
866: the data file to <font size="2" face="Courier New">..\data\mydata.txt</font>
867: if you don't want to copy it on the same directory. The file <font
868: face="Courier New">mydata.txt</font> is a smaller file of 3,000
869: people but still with 4 waves. </p>
870:
871: <p>Click on the imach.exe icon to open a window. Answer to the
872: question:'<strong>Enter the parameter file name:'</strong></p>
873:
874: <table border="1">
875: <tr>
876: <td width="100%"><strong>IMACH, Version 0.63</strong><p><strong>Enter
877: the parameter file name: ..\mytry\imachpar.txt</strong></p>
878: </td>
879: </tr>
880: </table>
881:
882: <p>Most of the data files or image files generated, will use the
883: 'imachpar' string into their name. The running time is about 2-3
884: minutes on a Pentium III. If the execution worked correctly, the
885: outputs files are created in the current directory, and should be
886: the same as the mypar files initially included in the directory <font
887: size="2" face="Courier New">mytry</font>.</p>
888:
889: <ul>
890: <li><pre><u>Output on the screen</u> The output screen looks like <a
891: href="imachrun.LOG">this Log file</a>
892: #
893:
894: title=MLE datafile=..\data\mydata.txt lastobs=3000 firstpass=1 lastpass=3
895: ftol=1.000000e-008 stepm=24 ncov=2 nlstate=2 ndeath=1 maxwav=4 mle=1 weight=0</pre>
896: </li>
897: <li><pre>Total number of individuals= 2965, Agemin = 70.00, Agemax= 100.92
898:
899: Warning, no any valid information for:126 line=126
900: Warning, no any valid information for:2307 line=2307
901: Delay (in months) between two waves Min=21 Max=51 Mean=24.495826
902: <font face="Times New Roman">These lines give some warnings on the data file and also some raw statistics on frequencies of transitions.</font>
903: Age 70 1.=230 loss[1]=3.5% 2.=16 loss[2]=12.5% 1.=222 prev[1]=94.1% 2.=14
904: prev[2]=5.9% 1-1=8 11=200 12=7 13=15 2-1=2 21=6 22=7 23=1
905: Age 102 1.=0 loss[1]=NaNQ% 2.=0 loss[2]=NaNQ% 1.=0 prev[1]=NaNQ% 2.=0 </pre>
906: </li>
907: </ul>
908:
909: <p> </p>
910:
911: <ul>
912: <li>Maximisation with the Powell algorithm. 8 directions are
913: given corresponding to the 8 parameters. this can be
914: rather long to get convergence.<br>
915: <font size="1" face="Courier New"><br>
916: Powell iter=1 -2*LL=11531.405658264877 1 0.000000000000 2
917: 0.000000000000 3<br>
918: 0.000000000000 4 0.000000000000 5 0.000000000000 6
919: 0.000000000000 7 <br>
920: 0.000000000000 8 0.000000000000<br>
921: 1..........2.................3..........4.................5.........<br>
922: 6................7........8...............<br>
923: Powell iter=23 -2*LL=6744.954108371555 1 -12.967632334283
924: <br>
925: 2 0.135136681033 3 -7.402109728262 4 0.067844593326 <br>
926: 5 -0.673601538129 6 -0.006615504377 7 -5.051341616718 <br>
927: 8 0.051272038506<br>
928: 1..............2...........3..............4...........<br>
929: 5..........6................7...........8.........<br>
930: #Number of iterations = 23, -2 Log likelihood =
931: 6744.954042573691<br>
932: # Parameters<br>
933: 12 -12.966061 0.135117 <br>
934: 13 -7.401109 0.067831 <br>
935: 21 -0.672648 -0.006627 <br>
936: 23 -5.051297 0.051271 </font><br>
937: </li>
938: <li><pre><font size="2">Calculation of the hessian matrix. Wait...
939: 12345678.12.13.14.15.16.17.18.23.24.25.26.27.28.34.35.36.37.38.45.46.47.48.56.57.58.67.68.78
940:
941: Inverting the hessian to get the covariance matrix. Wait...
942:
943: #Hessian matrix#
944: 3.344e+002 2.708e+004 -4.586e+001 -3.806e+003 -1.577e+000 -1.313e+002 3.914e-001 3.166e+001
945: 2.708e+004 2.204e+006 -3.805e+003 -3.174e+005 -1.303e+002 -1.091e+004 2.967e+001 2.399e+003
946: -4.586e+001 -3.805e+003 4.044e+002 3.197e+004 2.431e-002 1.995e+000 1.783e-001 1.486e+001
947: -3.806e+003 -3.174e+005 3.197e+004 2.541e+006 2.436e+000 2.051e+002 1.483e+001 1.244e+003
948: -1.577e+000 -1.303e+002 2.431e-002 2.436e+000 1.093e+002 8.979e+003 -3.402e+001 -2.843e+003
949: -1.313e+002 -1.091e+004 1.995e+000 2.051e+002 8.979e+003 7.420e+005 -2.842e+003 -2.388e+005
950: 3.914e-001 2.967e+001 1.783e-001 1.483e+001 -3.402e+001 -2.842e+003 1.494e+002 1.251e+004
951: 3.166e+001 2.399e+003 1.486e+001 1.244e+003 -2.843e+003 -2.388e+005 1.251e+004 1.053e+006
952: # Scales
953: 12 1.00000e-004 1.00000e-006
954: 13 1.00000e-004 1.00000e-006
955: 21 1.00000e-003 1.00000e-005
956: 23 1.00000e-004 1.00000e-005
957: # Covariance
958: 1 5.90661e-001
959: 2 -7.26732e-003 8.98810e-005
960: 3 8.80177e-002 -1.12706e-003 5.15824e-001
961: 4 -1.13082e-003 1.45267e-005 -6.50070e-003 8.23270e-005
962: 5 9.31265e-003 -1.16106e-004 6.00210e-004 -8.04151e-006 1.75753e+000
963: 6 -1.15664e-004 1.44850e-006 -7.79995e-006 1.04770e-007 -2.12929e-002 2.59422e-004
964: 7 1.35103e-003 -1.75392e-005 -6.38237e-004 7.85424e-006 4.02601e-001 -4.86776e-003 1.32682e+000
965: 8 -1.82421e-005 2.35811e-007 7.75503e-006 -9.58687e-008 -4.86589e-003 5.91641e-005 -1.57767e-002 1.88622e-004
966: # agemin agemax for lifexpectancy, bage fage (if mle==0 ie no data nor Max likelihood).
967:
968:
969: agemin=70 agemax=100 bage=50 fage=100
970: Computing prevalence limit: result on file 'plrmypar.txt'
971: Computing pij: result on file 'pijrmypar.txt'
972: Computing Health Expectancies: result on file 'ermypar.txt'
973: Computing Variance-covariance of DFLEs: file 'vrmypar.txt'
974: Computing Total LEs with variances: file 'trmypar.txt'
975: Computing Variance-covariance of Prevalence limit: file 'vplrmypar.txt'
976: End of Imach
977: </font></pre>
978: </li>
979: </ul>
980:
981: <p><font size="3">Once the running is finished, the program
982: requires a caracter:</font></p>
983:
984: <table border="1">
985: <tr>
986: <td width="100%"><strong>Type g for plotting (available
987: if mle=1), e to edit output files, c to start again,</strong><p><strong>and
988: q for exiting:</strong></p>
989: </td>
990: </tr>
991: </table>
992:
993: <p><font size="3">First you should enter <strong>g</strong> to
994: make the figures and then you can edit all the results by typing <strong>e</strong>.
995: </font></p>
996:
997: <ul>
998: <li><u>Outputs files</u> <br>
999: - index.htm, this file is the master file on which you
1000: should click first.<br>
1001: - Observed prevalence in each state: <a
1002: href="..\mytry\prmypar.txt">mypar.txt</a> <br>
1003: - Estimated parameters and the covariance matrix: <a
1004: href="..\mytry\rmypar.txt">rmypar.txt</a> <br>
1005: - Stationary prevalence in each state: <a
1006: href="..\mytry\plrmypar.txt">plrmypar.txt</a> <br>
1007: - Transition probabilities: <a
1008: href="..\mytry\pijrmypar.txt">pijrmypar.txt</a> <br>
1009: - Copy of the parameter file: <a
1010: href="..\mytry\ormypar.txt">ormypar.txt</a> <br>
1011: - Life expectancies by age and initial health status: <a
1012: href="..\mytry\ermypar.txt">ermypar.txt</a> <br>
1013: - Variances of life expectancies by age and initial
1014: health status: <a href="..\mytry\vrmypar.txt">vrmypar.txt</a>
1015: <br>
1016: - Health expectancies with their variances: <a
1017: href="..\mytry\trmypar.txt">trmypar.txt</a> <br>
1018: - Standard deviation of stationary prevalence: <a
1019: href="..\mytry\vplrmypar.txt">vplrmypar.txt</a> <br>
1020: <br>
1021: </li>
1022: <li><u>Graphs</u> <br>
1023: <br>
1024: -<a href="..\mytry\vmypar1.gif">Observed and stationary
1025: prevalence in state (1) with the confident interval</a> <br>
1026: -<a href="..\mytry\vmypar2.gif">Observed and stationary
1027: prevalence in state (2) with the confident interval</a> <br>
1028: -<a href="..\mytry\exmypar1.gif">Health life expectancies
1029: by age and initial health state (1)</a> <br>
1030: -<a href="..\mytry\exmypar2.gif">Health life expectancies
1031: by age and initial health state (2)</a> <br>
1032: -<a href="..\mytry\emypar.gif">Total life expectancy by
1033: age and health expectancies in states (1) and (2).</a> </li>
1034: </ul>
1035:
1036: <p>This software have been partly granted by <a
1037: href="http://euroreves.ined.fr">Euro-REVES</a>, a concerted
1038: action from the European Union. It will be copyrighted
1039: identically to a GNU software product, i.e. program and software
1040: can be distributed freely for non commercial use. Sources are not
1041: widely distributed today. You can get them by asking us with a
1042: simple justification (name, email, institute) <a
1043: href="mailto:brouard@ined.fr">mailto:brouard@ined.fr</a> and <a
1044: href="mailto:lievre@ined.fr">mailto:lievre@ined.fr</a> .</p>
1045:
1046: <p>Latest version (0.63 of 16 march 2000) can be accessed at <a
1047: href="http://euroeves.ined.fr/imach">http://euroreves.ined.fr/imach</a><br>
1048: </p>
1049: </body>
1050: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>