version 1.94, 2003/06/27 13:00:02
|
version 1.95, 2003/07/08 07:54:34
|
Line 1
|
Line 1
|
/* $Id$ |
/* $Id$ |
$State$ |
$State$ |
$Log$ |
$Log$ |
|
Revision 1.95 2003/07/08 07:54:34 brouard |
|
* imach.c (Repository): |
|
(Repository): Using imachwizard code to output a more meaningful covariance |
|
matrix (cov(a12,c31) instead of numbers. |
|
|
Revision 1.94 2003/06/27 13:00:02 brouard |
Revision 1.94 2003/06/27 13:00:02 brouard |
Just cleaning |
Just cleaning |
|
|
Line 165
|
Line 170
|
#include <time.h> |
#include <time.h> |
#include "timeval.h" |
#include "timeval.h" |
|
|
|
/* #include <libintl.h> */ |
|
/* #define _(String) gettext (String) */ |
|
|
#define MAXLINE 256 |
#define MAXLINE 256 |
#define GNUPLOTPROGRAM "gnuplot" |
#define GNUPLOTPROGRAM "gnuplot" |
/*#define GNUPLOTPROGRAM "..\\gp37mgw\\wgnuplot"*/ |
/*#define GNUPLOTPROGRAM "..\\gp37mgw\\wgnuplot"*/ |
Line 2291 void evsij(char fileres[], double ***eij
|
Line 2299 void evsij(char fileres[], double ***eij
|
|
|
hf=hstepm*stepm/YEARM; /* Duration of hstepm expressed in year unit. */ |
hf=hstepm*stepm/YEARM; /* Duration of hstepm expressed in year unit. */ |
|
|
/* Computing Variances of health expectancies */ |
/* Computing Variances of health expectancies */ |
|
|
for(theta=1; theta <=npar; theta++){ |
for(theta=1; theta <=npar; theta++){ |
for(i=1; i<=npar; i++){ |
for(i=1; i<=npar; i++){ |
Line 2845 void varprob(char optionfilefiname[], do
|
Line 2853 void varprob(char optionfilefiname[], do
|
fprintf(fichtm,"\n<li><h4> Computing and drawing one step probabilities with their confidence intervals</h4></li>\n"); |
fprintf(fichtm,"\n<li><h4> Computing and drawing one step probabilities with their confidence intervals</h4></li>\n"); |
fprintf(fichtm,"\n"); |
fprintf(fichtm,"\n"); |
|
|
fprintf(fichtm,"\n<li><h4> <a href=\"%s\">Computing matrix of variance-covariance of step probabilities</a></h4></li>\n",optionfilehtmcov); |
fprintf(fichtm,"\n<li><h4> <a href=\"%s\">Matrix of variance-covariance of pairs of step probabilities (drawings)</a></h4></li>\n",optionfilehtmcov); |
fprintf(fichtmcov,"\n<h4>Computing matrix of variance-covariance of step probabilities</h4>\n\ |
fprintf(fichtmcov,"\n<h4>Matrix of variance-covariance of pairs of step probabilities</h4>\n\ |
file %s<br>\n",optionfilehtmcov); |
file %s<br>\n",optionfilehtmcov); |
fprintf(fichtmcov,"\nEllipsoids of confidence centered on point (p<inf>ij</inf>, p<inf>kl</inf>) are estimated\ |
fprintf(fichtmcov,"\nEllipsoids of confidence centered on point (p<inf>ij</inf>, p<inf>kl</inf>) are estimated\ |
and drawn. It helps understanding how is the covariance between two incidences.\ |
and drawn. It helps understanding how is the covariance between two incidences.\ |
Line 3184 fprintf(fichtm," <ul><li><b>Graphs</b></
|
Line 3192 fprintf(fichtm," <ul><li><b>Graphs</b></
|
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
} |
} |
for(cpt=1; cpt<=nlstate;cpt++) { |
for(cpt=1; cpt<=nlstate;cpt++) { |
fprintf(fichtm,"<br>- Observed and period prevalence (with confident\ |
fprintf(fichtm,"<br>- Observed (cross-sectional) and period (incidence based) \ |
interval) in state (%d): %s%d%d.png <br>\ |
prevalence (with 95%% confidence interval) in state (%d): %s%d%d.png <br>\ |
<img src=\"%s%d%d.png\">",cpt,subdirf2(optionfilefiname,"v"),cpt,jj1,subdirf2(optionfilefiname,"v"),cpt,jj1); |
<img src=\"%s%d%d.png\">",cpt,subdirf2(optionfilefiname,"v"),cpt,jj1,subdirf2(optionfilefiname,"v"),cpt,jj1); |
} |
} |
} /* end i1 */ |
} /* end i1 */ |
Line 3842 void prwizard(int ncovmodel, int nlstate
|
Line 3850 void prwizard(int ncovmodel, int nlstate
|
} /* end k*/ |
} /* end k*/ |
} /*end j */ |
} /*end j */ |
} /* end i */ |
} /* end i */ |
} |
} /* end itimes */ |
|
|
} /* end of prwizard */ |
} /* end of prwizard */ |
|
|
Line 3855 int main(int argc, char *argv[])
|
Line 3863 int main(int argc, char *argv[])
|
{ |
{ |
int movingaverage(double ***probs, double bage,double fage, double ***mobaverage, int mobilav); |
int movingaverage(double ***probs, double bage,double fage, double ***mobaverage, int mobilav); |
int i,j, k, n=MAXN,iter,m,size=100,cptcode, cptcod; |
int i,j, k, n=MAXN,iter,m,size=100,cptcode, cptcod; |
int jj, imk; |
int jj, ll, li, lj, lk, imk; |
int numlinepar=0; /* Current linenumber of parameter file */ |
int numlinepar=0; /* Current linenumber of parameter file */ |
|
int itimes; |
|
|
|
char ca[32], cb[32], cc[32]; |
/* FILE *fichtm; *//* Html File */ |
/* FILE *fichtm; *//* Html File */ |
/* FILE *ficgp;*/ /*Gnuplot File */ |
/* FILE *ficgp;*/ /*Gnuplot File */ |
double agedeb, agefin,hf; |
double agedeb, agefin,hf; |
Line 3911 int main(int argc, char *argv[])
|
Line 3922 int main(int argc, char *argv[])
|
|
|
long total_usecs; |
long total_usecs; |
|
|
|
/* setlocale (LC_ALL, ""); */ |
|
/* bindtextdomain (PACKAGE, LOCALEDIR); */ |
|
/* textdomain (PACKAGE); */ |
|
/* setlocale (LC_CTYPE, ""); */ |
|
/* setlocale (LC_MESSAGES, ""); */ |
|
|
/* gettimeofday(&start_time, (struct timezone*)0); */ /* at first time */ |
/* gettimeofday(&start_time, (struct timezone*)0); */ /* at first time */ |
(void) gettimeofday(&start_time,&tzp); |
(void) gettimeofday(&start_time,&tzp); |
curr_time=start_time; |
curr_time=start_time; |
Line 4602 Interval (in months) between two waves:
|
Line 4619 Interval (in months) between two waves:
|
fprintf(ficres,"title=%s datafile=%s lastobs=%d firstpass=%d lastpass=%d\nftol=%e stepm=%d ncovcol=%d nlstate=%d ndeath=%d maxwav=%d mle= 0 weight=%d\nmodel=%s\n", title, datafile, lastobs, firstpass,lastpass,ftol, stepm, ncovcol, nlstate, ndeath, maxwav, weightopt,model); |
fprintf(ficres,"title=%s datafile=%s lastobs=%d firstpass=%d lastpass=%d\nftol=%e stepm=%d ncovcol=%d nlstate=%d ndeath=%d maxwav=%d mle= 0 weight=%d\nmodel=%s\n", title, datafile, lastobs, firstpass,lastpass,ftol, stepm, ncovcol, nlstate, ndeath, maxwav, weightopt,model); |
|
|
|
|
jk=1; |
|
fprintf(ficres,"# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
fprintf(ficres,"# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
printf("# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
printf("# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
fprintf(ficlog,"# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
fprintf(ficlog,"# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
for(i=1,jk=1; i <=nlstate; i++){ |
for(i=1,jk=1; i <=nlstate; i++){ |
for(k=1; k <=(nlstate+ndeath); k++){ |
for(k=1; k <=(nlstate+ndeath); k++){ |
if (k != i) |
if (k != i) { |
{ |
printf("%d%d ",i,k); |
printf("%d%d ",i,k); |
fprintf(ficlog,"%d%d ",i,k); |
fprintf(ficlog,"%d%d ",i,k); |
fprintf(ficres,"%1d%1d ",i,k); |
fprintf(ficres,"%1d%1d ",i,k); |
for(j=1; j <=ncovmodel; j++){ |
for(j=1; j <=ncovmodel; j++){ |
printf("%f ",p[jk]); |
printf("%f ",p[jk]); |
fprintf(ficlog,"%f ",p[jk]); |
fprintf(ficlog,"%f ",p[jk]); |
fprintf(ficres,"%f ",p[jk]); |
fprintf(ficres,"%f ",p[jk]); |
jk++; |
jk++; |
|
} |
|
printf("\n"); |
|
fprintf(ficlog,"\n"); |
|
fprintf(ficres,"\n"); |
|
} |
} |
|
printf("\n"); |
|
fprintf(ficlog,"\n"); |
|
fprintf(ficres,"\n"); |
|
} |
} |
} |
} |
} |
if(mle!=0){ |
if(mle!=0){ |
Line 4653 Interval (in months) between two waves:
|
Line 4668 Interval (in months) between two waves:
|
} |
} |
|
|
fprintf(ficres,"# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n"); |
fprintf(ficres,"# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n"); |
if(mle==1) |
if(mle>=1) |
printf("# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n"); |
printf("# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n"); |
fprintf(ficlog,"# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n"); |
fprintf(ficlog,"# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n"); |
for(i=1,k=1;i<=npar;i++){ |
/* # 121 Var(a12)\n\ */ |
/* if (k>nlstate) k=1; |
/* # 122 Cov(b12,a12) Var(b12)\n\ */ |
i1=(i-1)/(ncovmodel*nlstate)+1; |
/* # 131 Cov(a13,a12) Cov(a13,b12, Var(a13)\n\ */ |
fprintf(ficres,"%s%d%d",alph[k],i1,tab[i]); |
/* # 132 Cov(b13,a12) Cov(b13,b12, Cov(b13,a13) Var(b13)\n\ */ |
printf("%s%d%d",alph[k],i1,tab[i]); |
/* # 212 Cov(a21,a12) Cov(a21,b12, Cov(a21,a13) Cov(a21,b13) Var(a21)\n\ */ |
*/ |
/* # 212 Cov(b21,a12) Cov(b21,b12, Cov(b21,a13) Cov(b21,b13) Cov(b21,a21) Var(b21)\n\ */ |
fprintf(ficres,"%3d",i); |
/* # 232 Cov(a23,a12) Cov(a23,b12, Cov(a23,a13) Cov(a23,b13) Cov(a23,a21) Cov(a23,b21) Var(a23)\n\ */ |
if(mle==1) |
/* # 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n" */ |
printf("%3d",i); |
|
fprintf(ficlog,"%3d",i); |
|
for(j=1; j<=i;j++){ |
/* Just to have a covariance matrix which will be more understandable |
fprintf(ficres," %.5e",matcov[i][j]); |
even is we still don't want to manage dictionary of variables |
if(mle==1) |
*/ |
printf(" %.5e",matcov[i][j]); |
for(itimes=1;itimes<=2;itimes++){ |
fprintf(ficlog," %.5e",matcov[i][j]); |
jj=0; |
} |
for(i=1; i <=nlstate; i++){ |
fprintf(ficres,"\n"); |
for(j=1; j <=nlstate+ndeath; j++){ |
if(mle==1) |
if(j==i) continue; |
printf("\n"); |
for(k=1; k<=ncovmodel;k++){ |
fprintf(ficlog,"\n"); |
jj++; |
k++; |
ca[0]= k+'a'-1;ca[1]='\0'; |
} |
if(itimes==1){ |
|
if(mle>=1) |
|
printf("#%1d%1d%d",i,j,k); |
|
fprintf(ficlog,"#%1d%1d%d",i,j,k); |
|
fprintf(ficres,"#%1d%1d%d",i,j,k); |
|
}else{ |
|
if(mle>=1) |
|
printf("%1d%1d%d",i,j,k); |
|
fprintf(ficlog,"%1d%1d%d",i,j,k); |
|
fprintf(ficres,"%1d%1d%d",i,j,k); |
|
} |
|
ll=0; |
|
for(li=1;li <=nlstate; li++){ |
|
for(lj=1;lj <=nlstate+ndeath; lj++){ |
|
if(lj==li) continue; |
|
for(lk=1;lk<=ncovmodel;lk++){ |
|
ll++; |
|
if(ll<=jj){ |
|
cb[0]= lk +'a'-1;cb[1]='\0'; |
|
if(ll<jj){ |
|
if(itimes==1){ |
|
if(mle>=1) |
|
printf(" Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
|
fprintf(ficlog," Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
|
fprintf(ficres," Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
|
}else{ |
|
if(mle>=1) |
|
printf(" %.5e",matcov[jj][ll]); |
|
fprintf(ficlog," %.5e",matcov[jj][ll]); |
|
fprintf(ficres," %.5e",matcov[jj][ll]); |
|
} |
|
}else{ |
|
if(itimes==1){ |
|
if(mle>=1) |
|
printf(" Var(%s%1d%1d)",ca,i,j); |
|
fprintf(ficlog," Var(%s%1d%1d)",ca,i,j); |
|
fprintf(ficres," Var(%s%1d%1d)",ca,i,j); |
|
}else{ |
|
if(mle>=1) |
|
printf(" %.5e",matcov[jj][ll]); |
|
fprintf(ficlog," %.5e",matcov[jj][ll]); |
|
fprintf(ficres," %.5e",matcov[jj][ll]); |
|
} |
|
} |
|
} |
|
} /* end lk */ |
|
} /* end lj */ |
|
} /* end li */ |
|
if(mle>=1) |
|
printf("\n"); |
|
fprintf(ficlog,"\n"); |
|
fprintf(ficres,"\n"); |
|
numlinepar++; |
|
} /* end k*/ |
|
} /*end j */ |
|
} /* end i */ |
|
} /* end itimes */ |
|
|
|
fflush(ficlog); |
|
fflush(ficres); |
|
|
while((c=getc(ficpar))=='#' && c!= EOF){ |
while((c=getc(ficpar))=='#' && c!= EOF){ |
ungetc(c,ficpar); |
ungetc(c,ficpar); |
fgets(line, MAXLINE, ficpar); |
fgets(line, MAXLINE, ficpar); |
Line 5089 ageminpar, agemax, s[lastpass][imx], age
|
Line 5163 ageminpar, agemax, s[lastpass][imx], age
|
|
|
|
|
if((nberr >0) || (nbwarn>0)){ |
if((nberr >0) || (nbwarn>0)){ |
printf("End of Imach with %d errors and/or warnings %d\n",nberr,nbwarn); |
printf("End of Imach with %d errors and/or %d warnings\n",nberr,nbwarn); |
fprintf(ficlog,"End of Imach with %d errors and/or warnings %d\n",nberr,nbwarn); |
fprintf(ficlog,"End of Imach with %d errors and/or warnings %d\n",nberr,nbwarn); |
}else{ |
}else{ |
printf("End of Imach\n"); |
printf("End of Imach\n"); |