version 1.47, 2002/06/10 13:12:01
|
version 1.49, 2002/06/20 14:03:39
|
Line 81
|
Line 81
|
#define DIRSEPARATOR '/'
|
#define DIRSEPARATOR '/'
|
#endif
|
#endif
|
|
|
char version[80]="Imach version 0.8g, May 2002, INED-EUROREVES ";
|
char version[80]="Imach version 0.8h, May 2002, INED-EUROREVES ";
|
int erreur; /* Error number */
|
int erreur; /* Error number */
|
int nvar;
|
int nvar;
|
int cptcovn, cptcovage=0, cptcoveff=0,cptcov;
|
int cptcovn=0, cptcovage=0, cptcoveff=0,cptcov;
|
int npar=NPARMAX;
|
int npar=NPARMAX;
|
int nlstate=2; /* Number of live states */
|
int nlstate=2; /* Number of live states */
|
int ndeath=1; /* Number of dead states */
|
int ndeath=1; /* Number of dead states */
|
Line 1939 void varprevlim(char fileres[], double *
|
Line 1939 void varprevlim(char fileres[], double *
|
/************ Variance of one-step probabilities ******************/
|
/************ Variance of one-step probabilities ******************/
|
void varprob(char optionfilefiname[], double **matcov, double x[], double delti[], int nlstate, double bage, double fage, int ij, int *Tvar, int **nbcode, int *ncodemax)
|
void varprob(char optionfilefiname[], double **matcov, double x[], double delti[], int nlstate, double bage, double fage, int ij, int *Tvar, int **nbcode, int *ncodemax)
|
{
|
{
|
int i, j, i1, k1, l1;
|
int i, j=0, i1, k1, l1, t, tj;
|
int k2, l2, j1, z1;
|
int k2, l2, j1, z1;
|
int k=0,l, cptcode;
|
int k=0,l, cptcode;
|
int first=1;
|
int first=1;
|
Line 2012 void varprob(char optionfilefiname[], do
|
Line 2012 void varprob(char optionfilefiname[], do
|
exit(0);
|
exit(0);
|
}
|
}
|
else{
|
else{
|
fprintf(fichtm,"\n<H2> Computing matrix of variance-covariance of step probabilities</h2>\n");
|
fprintf(fichtm,"\n<li><h4> Computing matrix of variance-covariance of step probabilities</h4></li>\n");
|
fprintf(fichtm,"\n<br> We have drawn ellipsoids of confidence around the p<inf>ij</inf>, p<inf>kl</inf> to understand the covariance between two incidences. They are expressed in year<sup>-1</sup> in order to be less dependent of stepm.<br>\n");
|
fprintf(fichtm,"\nWe have drawn ellipsoids of confidence around the p<inf>ij</inf>, p<inf>kl</inf> to understand the covariance between two incidences. They are expressed in year<sup>-1</sup> in order to be less dependent of stepm.<br>\n");
|
fprintf(fichtm,"\n<br> We have drawn x'cov<sup>-1</sup>x = 4 where x is the column vector (pij,pkl). It means that if pij and pkl where uncorrelated the (2X2) matrix would have been (1/(var pij), 0 , 0, 1/(var pkl)), and the confidence interval would be 2 standard deviations wide on each axis. <br> When both incidences are correlated we diagonalised the inverse of the covariance matrix and made the appropriate rotation.<br> \n");
|
fprintf(fichtm,"\n<br> We have drawn x'cov<sup>-1</sup>x = 4 where x is the column vector (pij,pkl). It means that if pij and pkl where uncorrelated the (2X2) matrix would have been (1/(var pij), 0 , 0, 1/(var pkl)), and the confidence interval would be 2 standard deviations wide on each axis. <br> When both incidences are correlated we diagonalised the inverse of the covariance matrix and made the appropriate rotation.<br> \n");
|
|
|
}
|
}
|
|
|
|
|
cov[1]=1;
|
cov[1]=1;
|
j=cptcoveff;
|
tj=cptcoveff;
|
if (cptcovn<1) {j=1;ncodemax[1]=1;}
|
if (cptcovn<1) {tj=1;ncodemax[1]=1;}
|
j1=0;
|
j1=0;
|
for(k1=1; k1<=1;k1++){
|
for(t=1; t<=tj;t++){
|
for(i1=1; i1<=ncodemax[k1];i1++){
|
for(i1=1; i1<=ncodemax[t];i1++){
|
j1++;
|
j1++;
|
|
|
if (cptcovn>0) {
|
if (cptcovn>0) {
|
fprintf(ficresprob, "\n#********** Variable ");
|
fprintf(ficresprob, "\n#********** Variable ");
|
fprintf(ficresprobcov, "\n#********** Variable ");
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprob, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
fprintf(ficgp, "\n#********** Variable ");
|
fprintf(ficresprob, "**********\n#");
|
fprintf(fichtm, "\n<h4>********** Variable</h4>\n ");
|
fprintf(ficresprobcov, "\n#********** Variable ");
|
fprintf(ficresprobcor, "\n#********** Variable ");
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcov, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprob, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
fprintf(ficresprobcov, "**********\n#");
|
fprintf(ficresprob, "**********\n#");
|
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcov, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
fprintf(ficgp, "\n#********** Variable ");
|
fprintf(ficresprobcov, "**********\n#");
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficgp, "# V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcor, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
fprintf(ficgp, "**********\n#");
|
fprintf(ficgp, "**********\n#");
|
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficgp, "# V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
|
fprintf(ficgp, "**********\n#");
|
fprintf(fichtm, "\n<hr size=\"2\" color=\"#EC5E5E\">********** Variable ");
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(fichtm, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(fichtm, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
fprintf(fichtm, "**********\n#");
|
fprintf(fichtm, "**********\n<hr size=\"2\" color=\"#EC5E5E\">");
|
}
|
|
|
fprintf(ficresprobcor, "\n#********** Variable ");
|
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcor, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtab[j1][z1]]);
|
|
fprintf(ficgp, "**********\n#");
|
|
}
|
|
|
for (age=bage; age<=fage; age ++){
|
for (age=bage; age<=fage; age ++){
|
cov[2]=age;
|
cov[2]=age;
|
for (k=1; k<=cptcovn;k++) {
|
for (k=1; k<=cptcovn;k++) {
|
Line 2169 void varprob(char optionfilefiname[], do
|
Line 2175 void varprob(char optionfilefiname[], do
|
fprintf(ficgp,"\nset parametric;set nolabel");
|
fprintf(ficgp,"\nset parametric;set nolabel");
|
fprintf(ficgp,"\nset log y;set log x; set xlabel \"p%1d%1d (year-1)\";set ylabel \"p%1d%1d (year-1)\"",k2,l2,k1,l1);
|
fprintf(ficgp,"\nset log y;set log x; set xlabel \"p%1d%1d (year-1)\";set ylabel \"p%1d%1d (year-1)\"",k2,l2,k1,l1);
|
fprintf(ficgp,"\nset ter png small\nset size 0.65,0.65");
|
fprintf(ficgp,"\nset ter png small\nset size 0.65,0.65");
|
fprintf(fichtm,"\n<br>Ellipsoids of confidence cov(p%1d%1d,p%1d%1d) expressed in year<sup>-1</sup> :<a href=\"varpijgr%s%1d%1d-%1d%1d.png\">varpijgr%s%1d%1d-%1d%1d.png</A>, ",k2,l2,k1,l1,optionfilefiname,k2,l2,k1,l1,optionfilefiname,k2,l2,k1,l1);
|
fprintf(fichtm,"\n<br>Ellipsoids of confidence cov(p%1d%1d,p%1d%1d) expressed in year<sup>-1</sup> :<a href=\"varpijgr%s%d%1d%1d-%1d%1d.png\">varpijgr%s%d%1d%1d-%1d%1d.png</A>, ",k2,l2,k1,l1,optionfilefiname, j1,k2,l2,k1,l1,optionfilefiname, j1,k2,l2,k1,l1);
|
fprintf(fichtm,"\n<br><img src=\"varpijgr%s%1d%1d-%1d%1d.png\">, ",optionfilefiname,k2,l2,k1,l1);
|
fprintf(fichtm,"\n<br><img src=\"varpijgr%s%d%1d%1d-%1d%1d.png\"> ",optionfilefiname, j1,k2,l2,k1,l1);
|
fprintf(ficgp,"\nset out \"varpijgr%s%1d%1d-%1d%1d.png\"",optionfilefiname,k2,l2,k1,l1);
|
fprintf(ficgp,"\nset out \"varpijgr%s%d%1d%1d-%1d%1d.png\"",optionfilefiname, j1,k2,l2,k1,l1);
|
fprintf(ficgp,"\nset label \"%d\" at %11.3e,%11.3e center",(int) age, mu2,mu1);
|
fprintf(ficgp,"\nset label \"%d\" at %11.3e,%11.3e center",(int) age, mu2,mu1);
|
fprintf(ficgp,"\n# Age %d, p%1d%1d - p%1d%1d",(int) age, k2,l2,k1,l1);
|
fprintf(ficgp,"\n# Age %d, p%1d%1d - p%1d%1d",(int) age, k2,l2,k1,l1);
|
fprintf(ficgp,"\nplot [-pi:pi] %11.3e+ %.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)), %11.3e +%.3f*(-%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)) t \"%d\"",\
|
fprintf(ficgp,"\nplot [-pi:pi] %11.3e+ %.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)), %11.3e +%.3f*(-%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)) t \"%d\"",\
|
Line 2187 void varprob(char optionfilefiname[], do
|
Line 2193 void varprob(char optionfilefiname[], do
|
}/* if first */
|
}/* if first */
|
} /* age mod 5 */
|
} /* age mod 5 */
|
} /* end loop age */
|
} /* end loop age */
|
fprintf(ficgp,"\nset out \"varpijgr%s%1d%1d-%1d%1d.png\";replot;",optionfilefiname,k2,l2,k1,l1);
|
fprintf(ficgp,"\nset out \"varpijgr%s%d%1d%1d-%1d%1d.png\";replot;",optionfilefiname, j1,k2,l2,k1,l1);
|
first=1;
|
first=1;
|
} /*l12 */
|
} /*l12 */
|
} /* k12 */
|
} /* k12 */
|
Line 2223 void printinghtml(char fileres[], char t
|
Line 2229 void printinghtml(char fileres[], char t
|
printf("Problem with %s \n",optionfilehtm), exit(0);
|
printf("Problem with %s \n",optionfilehtm), exit(0);
|
}
|
}
|
|
|
fprintf(fichtm,"<ul><li>Result files (first order: no variance)<br>\n
|
fprintf(fichtm,"<ul><li><h4>Result files (first order: no variance)</h4>\n
|
- Observed prevalence in each state (during the period defined between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf): <a href=\"p%s\">p%s</a> <br>\n
|
- Observed prevalence in each state (during the period defined between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf): <a href=\"p%s\">p%s</a> <br>\n
|
- Estimated transition probabilities over %d (stepm) months: <a href=\"pij%s\">pij%s</a><br>\n
|
- Estimated transition probabilities over %d (stepm) months: <a href=\"pij%s\">pij%s</a><br>\n
|
- Stable prevalence in each health state: <a href=\"pl%s\">pl%s</a> <br>\n
|
- Stable prevalence in each health state: <a href=\"pl%s\">pl%s</a> <br>\n
|
Line 2231 void printinghtml(char fileres[], char t
|
Line 2237 void printinghtml(char fileres[], char t
|
<a href=\"e%s\">e%s</a> <br>\n</li>", \
|
<a href=\"e%s\">e%s</a> <br>\n</li>", \
|
jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,fileres,fileres,stepm,fileres,fileres,fileres,fileres,estepm,fileres,fileres);
|
jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,fileres,fileres,stepm,fileres,fileres,fileres,fileres,estepm,fileres,fileres);
|
|
|
fprintf(fichtm,"\n<li> Result files (second order: variances)<br>\n
|
fprintf(fichtm,"\n<br><li><h4> Result files (second order: variances)</h4>\n
|
- Parameter file with estimated parameters and covariance matrix: <a href=\"%s\">%s</a> <br>\n
|
- Parameter file with estimated parameters and covariance matrix: <a href=\"%s\">%s</a> <br>\n
|
- Variance of one-step probabilities: <a href=\"prob%s\">prob%s</a> <br>\n
|
- Variance of one-step probabilities: <a href=\"prob%s\">prob%s</a> <br>\n
|
- Variance-covariance of one-step probabilities: <a href=\"probcov%s\">probcov%s</a> <br>\n
|
- Variance-covariance of one-step probabilities: <a href=\"probcov%s\">probcov%s</a> <br>\n
|
Line 2246 void printinghtml(char fileres[], char t
|
Line 2252 void printinghtml(char fileres[], char t
|
<br>",fileres,fileres,fileres,fileres);
|
<br>",fileres,fileres,fileres,fileres);
|
else
|
else
|
fprintf(fichtm,"\n No population forecast: popforecast = %d (instead of 1) or stepm = %d (instead of 1) or model=%s (instead of .)<br><br></li>\n",popforecast, stepm, model);
|
fprintf(fichtm,"\n No population forecast: popforecast = %d (instead of 1) or stepm = %d (instead of 1) or model=%s (instead of .)<br><br></li>\n",popforecast, stepm, model);
|
fprintf(fichtm," <li>Graphs</li><p>");
|
fprintf(fichtm," <li><b>Graphs</b></li><p>");
|
|
|
m=cptcoveff;
|
m=cptcoveff;
|
if (cptcovn < 1) {m=1;ncodemax[1]=1;}
|
if (cptcovn < 1) {m=1;ncodemax[1]=1;}
|
Line 3415 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 3421 Title=%s <br>Datafile=%s Firstpass=%d La
|
Total number of observations=%d <br>\n
|
Total number of observations=%d <br>\n
|
Interval (in months) between two waves: Min=%d Max=%d Mean=%.2lf<br>\n
|
Interval (in months) between two waves: Min=%d Max=%d Mean=%.2lf<br>\n
|
<hr size=\"2\" color=\"#EC5E5E\">
|
<hr size=\"2\" color=\"#EC5E5E\">
|
<ul><li>Parameter files<br>\n
|
<ul><li><h4>Parameter files</h4>\n
|
- Copy of the parameter file: <a href=\"o%s\">o%s</a><br>\n
|
- Copy of the parameter file: <a href=\"o%s\">o%s</a><br>\n
|
- Gnuplot file name: <a href=\"%s\">%s</a><br></ul>\n",version,title,datafile,firstpass,lastpass,stepm, weightopt,model,imx,jmin,jmax,jmean,fileres,fileres,optionfilegnuplot,optionfilegnuplot);
|
- Gnuplot file name: <a href=\"%s\">%s</a></ul>\n",version,title,datafile,firstpass,lastpass,stepm, weightopt,model,imx,jmin,jmax,jmean,fileres,fileres,optionfilegnuplot,optionfilegnuplot);
|
fclose(fichtm);
|
fclose(fichtm);
|
|
|
printinghtml(fileres,title,datafile, firstpass, lastpass, stepm, weightopt,model,imx,jmin,jmax,jmean,rfileres,popforecast,estepm,jprev1,mprev1,anprev1,jprev2,mprev2,anprev2);
|
printinghtml(fileres,title,datafile, firstpass, lastpass, stepm, weightopt,model,imx,jmin,jmax,jmean,rfileres,popforecast,estepm,jprev1,mprev1,anprev1,jprev2,mprev2,anprev2);
|
Line 3495 Interval (in months) between two waves:
|
Line 3501 Interval (in months) between two waves:
|
agelim=AGESUP;
|
agelim=AGESUP;
|
hstepm=stepsize*YEARM; /* Every year of age */
|
hstepm=stepsize*YEARM; /* Every year of age */
|
hstepm=hstepm/stepm; /* Typically 2 years, = 2/6 months = 4 */
|
hstepm=hstepm/stepm; /* Typically 2 years, = 2/6 months = 4 */
|
|
|
|
/* hstepm=1; aff par mois*/
|
|
|
k=0;
|
k=0;
|
for(cptcov=1;cptcov<=i1;cptcov++){
|
for(cptcov=1;cptcov<=i1;cptcov++){
|
for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){
|
for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){
|
Line 3508 Interval (in months) between two waves:
|
Line 3516 Interval (in months) between two waves:
|
for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */
|
for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */
|
nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */
|
nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */
|
nhstepm = nhstepm/hstepm; /* Typically 40/4=10 */
|
nhstepm = nhstepm/hstepm; /* Typically 40/4=10 */
|
|
|
|
/* nhstepm=nhstepm*YEARM; aff par mois*/
|
|
|
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
|
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
|
oldm=oldms;savm=savms;
|
oldm=oldms;savm=savms;
|
hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k);
|
hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k);
|
Line 3517 Interval (in months) between two waves:
|
Line 3528 Interval (in months) between two waves:
|
fprintf(ficrespij," %1d-%1d",i,j);
|
fprintf(ficrespij," %1d-%1d",i,j);
|
fprintf(ficrespij,"\n");
|
fprintf(ficrespij,"\n");
|
for (h=0; h<=nhstepm; h++){
|
for (h=0; h<=nhstepm; h++){
|
fprintf(ficrespij,"%d %.0f %.0f",k,agedeb, agedeb+ h*hstepm/YEARM*stepm );
|
fprintf(ficrespij,"%d %f %f",k,agedeb, agedeb+ h*hstepm/YEARM*stepm );
|
for(i=1; i<=nlstate;i++)
|
for(i=1; i<=nlstate;i++)
|
for(j=1; j<=nlstate+ndeath;j++)
|
for(j=1; j<=nlstate+ndeath;j++)
|
fprintf(ficrespij," %.5f", p3mat[i][j][h]);
|
fprintf(ficrespij," %.5f", p3mat[i][j][h]);
|