|
|
| version 1.255, 2017/03/08 16:02:28 | version 1.265, 2017/04/26 16:22:11 |
|---|---|
| Line 1 | Line 1 |
| /* $Id$ | /* $Id$ |
| $State$ | $State$ |
| $Log$ | $Log$ |
| Revision 1.265 2017/04/26 16:22:11 brouard | |
| Summary: imach 0.99r13 Some bugs fixed | |
| Revision 1.264 2017/04/26 06:01:29 brouard | |
| Summary: Labels in graphs | |
| Revision 1.263 2017/04/24 15:23:15 brouard | |
| Summary: to save | |
| Revision 1.262 2017/04/18 16:48:12 brouard | |
| *** empty log message *** | |
| Revision 1.261 2017/04/05 10:14:09 brouard | |
| Summary: Bug in E_ as well as in T_ fixed nres-1 vs k1-1 | |
| Revision 1.260 2017/04/04 17:46:59 brouard | |
| Summary: Gnuplot indexations fixed (humm) | |
| Revision 1.259 2017/04/04 13:01:16 brouard | |
| Summary: Some errors to warnings only if date of death is unknown but status is death we could set to pi3 | |
| Revision 1.258 2017/04/03 10:17:47 brouard | |
| Summary: Version 0.99r12 | |
| Some cleanings, conformed with updated documentation. | |
| Revision 1.257 2017/03/29 16:53:30 brouard | |
| Summary: Temp | |
| Revision 1.256 2017/03/27 05:50:23 brouard | |
| Summary: Temporary | |
| Revision 1.255 2017/03/08 16:02:28 brouard | Revision 1.255 2017/03/08 16:02:28 brouard |
| Summary: IMaCh version 0.99r10 bugs in gnuplot fixed | Summary: IMaCh version 0.99r10 bugs in gnuplot fixed |
| Line 1171 int *TvarsQind; | Line 1203 int *TvarsQind; |
| #define MAXRESULTLINES 10 | #define MAXRESULTLINES 10 |
| int nresult=0; | int nresult=0; |
| int parameterline=0; /* # of the parameter (type) line */ | |
| int TKresult[MAXRESULTLINES]; | int TKresult[MAXRESULTLINES]; |
| int Tresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ | int Tresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ |
| int Tinvresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ | int Tinvresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ |
| Line 2588 Earliest age to start was %d-%d=%d, ncvl | Line 2621 Earliest age to start was %d-%d=%d, ncvl |
| /* double **bprevalim(double **bprlim, double ***prevacurrent, int nlstate, double x[], double age, double **oldm, double **savm, double **dnewm, double **doldm, double **dsavm, double ftolpl, int *ncvyear, int ij) */ | /* double **bprevalim(double **bprlim, double ***prevacurrent, int nlstate, double x[], double age, double **oldm, double **savm, double **dnewm, double **doldm, double **dsavm, double ftolpl, int *ncvyear, int ij) */ |
| double **bprevalim(double **bprlim, double ***prevacurrent, int nlstate, double x[], double age, double ftolpl, int *ncvyear, int ij, int nres) | double **bprevalim(double **bprlim, double ***prevacurrent, int nlstate, double x[], double age, double ftolpl, int *ncvyear, int ij, int nres) |
| { | { |
| /* Computes the prevalence limit in each live state at age x and covariate ij by left multiplying the unit | /* Computes the prevalence limit in each live state at age x and for covariate combination ij (<=2**cptcoveff) by left multiplying the unit |
| matrix by transitions matrix until convergence is reached with precision ftolpl */ | matrix by transitions matrix until convergence is reached with precision ftolpl */ |
| /* Wx= Wx-1 Px-1= Wx-2 Px-2 Px-1 = Wx-n Px-n ... Px-2 Px-1 I */ | /* Wx= Wx-1 Px-1= Wx-2 Px-2 Px-1 = Wx-n Px-n ... Px-2 Px-1 I */ |
| /* Wx is row vector: population in state 1, population in state 2, population dead */ | /* Wx is row vector: population in state 1, population in state 2, population dead */ |
| Line 2649 Earliest age to start was %d-%d=%d, ncvl | Line 2682 Earliest age to start was %d-%d=%d, ncvl |
| for (k=1; k<=nsd;k++) { /* For single dummy covariates only */ | for (k=1; k<=nsd;k++) { /* For single dummy covariates only */ |
| /* Here comes the value of the covariate 'ij' after renumbering k with single dummy covariates */ | /* Here comes the value of the covariate 'ij' after renumbering k with single dummy covariates */ |
| cov[2+nagesqr+TvarsDind[k]]=nbcode[TvarsD[k]][codtabm(ij,k)]; | cov[2+nagesqr+TvarsDind[k]]=nbcode[TvarsD[k]][codtabm(ij,k)]; |
| /* printf("bprevalim Dummy combi=%d k=%d TvarsD[%d]=V%d TvarsDind[%d]=%d nbcode=%d cov=%lf codtabm(%d,Tvar[%d])=%d \n",ij,k, k, TvarsD[k],k,TvarsDind[k],nbcode[TvarsD[k]][codtabm(ij,k)],cov[2+nagesqr+TvarsDind[k]], ij, k, codtabm(ij,k)); */ | /* printf("bprevalim Dummy agefin=%.0f combi=%d k=%d TvarsD[%d]=V%d TvarsDind[%d]=%d nbcode=%d cov[%d]=%lf codtabm(%d,Tvar[%d])=%d \n",agefin,ij,k, k, TvarsD[k],k,TvarsDind[k],nbcode[TvarsD[k]][codtabm(ij,k)],2+nagesqr+TvarsDind[k],cov[2+nagesqr+TvarsDind[k]], ij, k, codtabm(ij,k)); */ |
| } | } |
| /* for (k=1; k<=cptcovn;k++) { */ | /* for (k=1; k<=cptcovn;k++) { */ |
| /* /\* cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(ij,Tvar[k])]; *\/ */ | /* /\* cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(ij,Tvar[k])]; *\/ */ |
| Line 4132 void ludcmp(double **a, int n, int *indx | Line 4165 void ludcmp(double **a, int n, int *indx |
| big=0.0; | big=0.0; |
| for (j=1;j<=n;j++) | for (j=1;j<=n;j++) |
| if ((temp=fabs(a[i][j])) > big) big=temp; | if ((temp=fabs(a[i][j])) > big) big=temp; |
| if (big == 0.0) nrerror("Singular matrix in routine ludcmp"); | if (big == 0.0){ |
| printf(" Singular Hessian matrix at row %d:\n",i); | |
| for (j=1;j<=n;j++) { | |
| printf(" a[%d][%d]=%f,",i,j,a[i][j]); | |
| fprintf(ficlog," a[%d][%d]=%f,",i,j,a[i][j]); | |
| } | |
| fflush(ficlog); | |
| fclose(ficlog); | |
| nrerror("Singular matrix in routine ludcmp"); | |
| } | |
| vv[i]=1.0/big; | vv[i]=1.0/big; |
| } | } |
| for (j=1;j<=n;j++) { | for (j=1;j<=n;j++) { |
| Line 4269 void freqsummary(char fileres[], double | Line 4311 void freqsummary(char fileres[], double |
| int firstpass, int lastpass, int stepm, int weightopt, char model[]) | int firstpass, int lastpass, int stepm, int weightopt, char model[]) |
| { /* Some frequencies as well as proposing some starting values */ | { /* Some frequencies as well as proposing some starting values */ |
| int i, m, jk, j1, bool, z1,j, nj, nl, k, iv, jj=0; | int i, m, jk, j1, bool, z1,j, nj, nl, k, iv, jj=0, s1=1, s2=1; |
| int iind=0, iage=0; | int iind=0, iage=0; |
| int mi; /* Effective wave */ | int mi; /* Effective wave */ |
| int first; | int first; |
| Line 4348 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4390 Title=%s <br>Datafile=%s Firstpass=%d La |
| k2cpt=0; | k2cpt=0; |
| if(cptcoveff == 0 ) | if(cptcoveff == 0 ) |
| nl=1; /* Constant model only */ | nl=1; /* Constant and age model only */ |
| else | else |
| nl=2; | nl=2; |
| /* if a constant only model, one pass to compute frequency tables and to write it on ficresp */ | |
| /* Loop on nj=1 or 2 if dummy covariates j!=0 | |
| * Loop on j1(1 to 2**cptcoveff) covariate combination | |
| * freq[s1][s2][iage] =0. | |
| * Loop on iind | |
| * ++freq[s1][s2][iage] weighted | |
| * end iind | |
| * if covariate and j!0 | |
| * headers Variable on one line | |
| * endif cov j!=0 | |
| * header of frequency table by age | |
| * Loop on age | |
| * pp[s1]+=freq[s1][s2][iage] weighted | |
| * pos+=freq[s1][s2][iage] weighted | |
| * Loop on s1 initial state | |
| * fprintf(ficresp | |
| * end s1 | |
| * end age | |
| * if j!=0 computes starting values | |
| * end compute starting values | |
| * end j1 | |
| * end nl | |
| */ | |
| for (nj = 1; nj <= nl; nj++){ /* nj= 1 constant model, nl number of loops. */ | for (nj = 1; nj <= nl; nj++){ /* nj= 1 constant model, nl number of loops. */ |
| if(nj==1) | if(nj==1) |
| j=0; /* First pass for the constant */ | j=0; /* First pass for the constant */ |
| else | else{ |
| j=cptcoveff; /* Other passes for the covariate values */ | j=cptcoveff; /* Other passes for the covariate values */ |
| } | |
| first=1; | first=1; |
| for (j1 = 1; j1 <= (int) pow(2,j); j1++){ /* Loop on covariates combination in order of model, excluding quantitatives, V4=0, V3=0 for example, fixed or varying covariates */ | for (j1 = 1; j1 <= (int) pow(2,j); j1++){ /* Loop on all covariates combination of the model, excluding quantitatives, V4=0, V3=0 for example, fixed or varying covariates */ |
| posproptt=0.; | posproptt=0.; |
| /*printf("cptcoveff=%d Tvaraff=%d", cptcoveff,Tvaraff[1]); | /*printf("cptcoveff=%d Tvaraff=%d", cptcoveff,Tvaraff[1]); |
| scanf("%d", i);*/ | scanf("%d", i);*/ |
| for (i=-5; i<=nlstate+ndeath; i++) | for (i=-5; i<=nlstate+ndeath; i++) |
| for (jk=-5; jk<=nlstate+ndeath; jk++) | for (s2=-5; s2<=nlstate+ndeath; s2++) |
| for(m=iagemin; m <= iagemax+3; m++) | for(m=iagemin; m <= iagemax+3; m++) |
| freq[i][jk][m]=0; | freq[i][s2][m]=0; |
| for (i=1; i<=nlstate; i++) { | for (i=1; i<=nlstate; i++) { |
| for(m=iagemin; m <= iagemax+3; m++) | for(m=iagemin; m <= iagemax+3; m++) |
| Line 4382 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4449 Title=%s <br>Datafile=%s Firstpass=%d La |
| /* dateintsum=0; */ | /* dateintsum=0; */ |
| /* k2cpt=0; */ | /* k2cpt=0; */ |
| /* For that combination of covariate j1, we count and print the frequencies in one pass */ | /* For that combination of covariates j1 (V4=1 V3=0 for example), we count and print the frequencies in one pass */ |
| for (iind=1; iind<=imx; iind++) { /* For each individual iind */ | for (iind=1; iind<=imx; iind++) { /* For each individual iind */ |
| bool=1; | bool=1; |
| if(j !=0){ | if(j !=0){ |
| Line 4398 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4465 Title=%s <br>Datafile=%s Firstpass=%d La |
| /* /\* sumnew+=coqvar[z1][iind]; *\/ */ | /* /\* sumnew+=coqvar[z1][iind]; *\/ */ |
| /* }else */ | /* }else */ |
| if (covar[Tvaraff[z1]][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,z1)]){ /* for combination j1 of covariates */ | if (covar[Tvaraff[z1]][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,z1)]){ /* for combination j1 of covariates */ |
| /* Tests if this individual iind responded to combination j1 (V4=1 V3=0) */ | /* Tests if the value of the covariate z1 for this individual iind responded to combination j1 (V4=1 V3=0) */ |
| bool=0; /* bool should be equal to 1 to be selected, one covariate value failed */ | bool=0; /* bool should be equal to 1 to be selected, one covariate value failed */ |
| /* printf("bool=%d i=%d, z1=%d, Tvaraff[%d]=%d, covar[Tvarff][%d]=%2f, codtabm(%d,%d)=%d, nbcode[Tvaraff][codtabm(%d,%d)=%d, j1=%d\n", | /* printf("bool=%d i=%d, z1=%d, Tvaraff[%d]=%d, covar[Tvarff][%d]=%2f, codtabm(%d,%d)=%d, nbcode[Tvaraff][codtabm(%d,%d)=%d, j1=%d\n", |
| bool,i,z1, z1, Tvaraff[z1],i,covar[Tvaraff[z1]][i],j1,z1,codtabm(j1,z1), | bool,i,z1, z1, Tvaraff[z1],i,covar[Tvaraff[z1]][i],j1,z1,codtabm(j1,z1), |
| Line 4409 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4476 Title=%s <br>Datafile=%s Firstpass=%d La |
| } /* cptcovn > 0 */ | } /* cptcovn > 0 */ |
| } /* end any */ | } /* end any */ |
| }/* end j==0 */ | }/* end j==0 */ |
| if (bool==1){ /* We selected an individual iind satisfying combination j1 or all fixed */ | if (bool==1){ /* We selected an individual iind satisfying combination j1 (V4=1 V3=0) or all fixed covariates */ |
| /* for(m=firstpass; m<=lastpass; m++){ */ | /* for(m=firstpass; m<=lastpass; m++){ */ |
| for(mi=1; mi<wav[iind];mi++){ /* For that wave */ | for(mi=1; mi<wav[iind];mi++){ /* For that wave */ |
| m=mw[mi][iind]; | m=mw[mi][iind]; |
| Line 4471 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4538 Title=%s <br>Datafile=%s Firstpass=%d La |
| /* fprintf(ficresp, "#Count between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2);*/ | /* fprintf(ficresp, "#Count between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2);*/ |
| pstamp(ficresp); | if(cptcoveff==0 && nj==1) /* no covariate and first pass */ |
| pstamp(ficresp); | |
| if (cptcoveff>0 && j!=0){ | if (cptcoveff>0 && j!=0){ |
| pstamp(ficresp); | |
| printf( "\n#********** Variable "); | printf( "\n#********** Variable "); |
| fprintf(ficresp, "\n#********** Variable "); | fprintf(ficresp, "\n#********** Variable "); |
| fprintf(ficresphtm, "\n<br/><br/><h3>********** Variable "); | fprintf(ficresphtm, "\n<br/><br/><h3>********** Variable "); |
| Line 4500 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4569 Title=%s <br>Datafile=%s Firstpass=%d La |
| fprintf(ficlog, "**********\n"); | fprintf(ficlog, "**********\n"); |
| } | } |
| fprintf(ficresphtm,"<table style=\"text-align:center; border: 1px solid\">"); | fprintf(ficresphtm,"<table style=\"text-align:center; border: 1px solid\">"); |
| if((cptcoveff==0 && nj==1)|| nj==2 ) /* no covariate and first pass */ | |
| fprintf(ficresp, " Age"); | |
| if(nj==2) for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresp, " V%d=%d",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); | |
| for(i=1; i<=nlstate;i++) { | for(i=1; i<=nlstate;i++) { |
| fprintf(ficresp, " Age Prev(%d) N(%d) N ",i,i); | if((cptcoveff==0 && nj==1)|| nj==2 ) fprintf(ficresp," Prev(%d) N(%d) N ",i,i); |
| fprintf(ficresphtm, "<th>Age</th><th>Prev(%d)</th><th>N(%d)</th><th>N</th>",i,i); | fprintf(ficresphtm, "<th>Age</th><th>Prev(%d)</th><th>N(%d)</th><th>N</th>",i,i); |
| } | } |
| fprintf(ficresp, "\n"); | if((cptcoveff==0 && nj==1)|| nj==2 ) fprintf(ficresp, "\n"); |
| fprintf(ficresphtm, "\n"); | fprintf(ficresphtm, "\n"); |
| /* Header of frequency table by age */ | /* Header of frequency table by age */ |
| fprintf(ficresphtmfr,"<table style=\"text-align:center; border: 1px solid\">"); | fprintf(ficresphtmfr,"<table style=\"text-align:center; border: 1px solid\">"); |
| fprintf(ficresphtmfr,"<th>Age</th> "); | fprintf(ficresphtmfr,"<th>Age</th> "); |
| for(jk=-1; jk <=nlstate+ndeath; jk++){ | for(s2=-1; s2 <=nlstate+ndeath; s2++){ |
| for(m=-1; m <=nlstate+ndeath; m++){ | for(m=-1; m <=nlstate+ndeath; m++){ |
| if(jk!=0 && m!=0) | if(s2!=0 && m!=0) |
| fprintf(ficresphtmfr,"<th>%d%d</th> ",jk,m); | fprintf(ficresphtmfr,"<th>%d%d</th> ",s2,m); |
| } | } |
| } | } |
| fprintf(ficresphtmfr, "\n"); | fprintf(ficresphtmfr, "\n"); |
| Line 4538 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4610 Title=%s <br>Datafile=%s Firstpass=%d La |
| fprintf(ficresphtmfr,"<tr><th>%d</th> ",iage); | fprintf(ficresphtmfr,"<tr><th>%d</th> ",iage); |
| fprintf(ficlog,"Age %d", iage); | fprintf(ficlog,"Age %d", iage); |
| } | } |
| for(jk=1; jk <=nlstate ; jk++){ | for(s1=1; s1 <=nlstate ; s1++){ |
| for(m=-1, pp[jk]=0; m <=nlstate+ndeath ; m++) | for(m=-1, pp[s1]=0; m <=nlstate+ndeath ; m++) |
| pp[jk] += freq[jk][m][iage]; | pp[s1] += freq[s1][m][iage]; |
| } | } |
| for(jk=1; jk <=nlstate ; jk++){ | for(s1=1; s1 <=nlstate ; s1++){ |
| for(m=-1, pos=0; m <=0 ; m++) | for(m=-1, pos=0; m <=0 ; m++) |
| pos += freq[jk][m][iage]; | pos += freq[s1][m][iage]; |
| if(pp[jk]>=1.e-10){ | if(pp[s1]>=1.e-10){ |
| if(first==1){ | if(first==1){ |
| printf(" %d.=%.0f loss[%d]=%.1f%%",jk,pp[jk],jk,100*pos/pp[jk]); | printf(" %d.=%.0f loss[%d]=%.1f%%",s1,pp[s1],s1,100*pos/pp[s1]); |
| } | } |
| fprintf(ficlog," %d.=%.0f loss[%d]=%.1f%%",jk,pp[jk],jk,100*pos/pp[jk]); | fprintf(ficlog," %d.=%.0f loss[%d]=%.1f%%",s1,pp[s1],s1,100*pos/pp[s1]); |
| }else{ | }else{ |
| if(first==1) | if(first==1) |
| printf(" %d.=%.0f loss[%d]=NaNQ%%",jk,pp[jk],jk); | printf(" %d.=%.0f loss[%d]=NaNQ%%",s1,pp[s1],s1); |
| fprintf(ficlog," %d.=%.0f loss[%d]=NaNQ%%",jk,pp[jk],jk); | fprintf(ficlog," %d.=%.0f loss[%d]=NaNQ%%",s1,pp[s1],s1); |
| } | } |
| } | } |
| for(jk=1; jk <=nlstate ; jk++){ | for(s1=1; s1 <=nlstate ; s1++){ |
| /* posprop[jk]=0; */ | /* posprop[s1]=0; */ |
| for(m=0, pp[jk]=0; m <=nlstate+ndeath; m++)/* Summing on all ages */ | for(m=0, pp[s1]=0; m <=nlstate+ndeath; m++)/* Summing on all ages */ |
| pp[jk] += freq[jk][m][iage]; | pp[s1] += freq[s1][m][iage]; |
| } /* pp[jk] is the total number of transitions starting from state jk and any ending status until this age */ | } /* pp[s1] is the total number of transitions starting from state s1 and any ending status until this age */ |
| for(jk=1,pos=0, pospropta=0.; jk <=nlstate ; jk++){ | for(s1=1,pos=0, pospropta=0.; s1 <=nlstate ; s1++){ |
| pos += pp[jk]; /* pos is the total number of transitions until this age */ | pos += pp[s1]; /* pos is the total number of transitions until this age */ |
| posprop[jk] += prop[jk][iage]; /* prop is the number of transitions from a live state | posprop[s1] += prop[s1][iage]; /* prop is the number of transitions from a live state |
| from jk at age iage prop[s[m][iind]][(int)agev[m][iind]] += weight[iind] */ | from s1 at age iage prop[s[m][iind]][(int)agev[m][iind]] += weight[iind] */ |
| pospropta += prop[jk][iage]; /* prop is the number of transitions from a live state | pospropta += prop[s1][iage]; /* prop is the number of transitions from a live state |
| from jk at age iage prop[s[m][iind]][(int)agev[m][iind]] += weight[iind] */ | from s1 at age iage prop[s[m][iind]][(int)agev[m][iind]] += weight[iind] */ |
| } | |
| /* Writing ficresp */ | |
| if(cptcoveff==0 && nj==1){ /* no covariate and first pass */ | |
| if( iage <= iagemax){ | |
| fprintf(ficresp," %d",iage); | |
| } | |
| }else if( nj==2){ | |
| if( iage <= iagemax){ | |
| fprintf(ficresp," %d",iage); | |
| for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresp, " %d %d",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); | |
| } | |
| } | } |
| for(jk=1; jk <=nlstate ; jk++){ | for(s1=1; s1 <=nlstate ; s1++){ |
| if(pos>=1.e-5){ | if(pos>=1.e-5){ |
| if(first==1) | if(first==1) |
| printf(" %d.=%.0f prev[%d]=%.1f%%",jk,pp[jk],jk,100*pp[jk]/pos); | printf(" %d.=%.0f prev[%d]=%.1f%%",s1,pp[s1],s1,100*pp[s1]/pos); |
| fprintf(ficlog," %d.=%.0f prev[%d]=%.1f%%",jk,pp[jk],jk,100*pp[jk]/pos); | fprintf(ficlog," %d.=%.0f prev[%d]=%.1f%%",s1,pp[s1],s1,100*pp[s1]/pos); |
| }else{ | }else{ |
| if(first==1) | if(first==1) |
| printf(" %d.=%.0f prev[%d]=NaNQ%%",jk,pp[jk],jk); | printf(" %d.=%.0f prev[%d]=NaNQ%%",s1,pp[s1],s1); |
| fprintf(ficlog," %d.=%.0f prev[%d]=NaNQ%%",jk,pp[jk],jk); | fprintf(ficlog," %d.=%.0f prev[%d]=NaNQ%%",s1,pp[s1],s1); |
| } | } |
| if( iage <= iagemax){ | if( iage <= iagemax){ |
| if(pos>=1.e-5){ | if(pos>=1.e-5){ |
| fprintf(ficresp," %d %.5f %.0f %.0f",iage,prop[jk][iage]/pospropta, prop[jk][iage],pospropta); | if(cptcoveff==0 && nj==1){ /* no covariate and first pass */ |
| fprintf(ficresphtm,"<th>%d</th><td>%.5f</td><td>%.0f</td><td>%.0f</td>",iage,prop[jk][iage]/pospropta, prop[jk][iage],pospropta); | fprintf(ficresp," %.5f %.0f %.0f",prop[s1][iage]/pospropta, prop[s1][iage],pospropta); |
| /*probs[iage][jk][j1]= pp[jk]/pos;*/ | }else if( nj==2){ |
| /*printf("\niage=%d jk=%d j1=%d %.5f %.0f %.0f %f",iage,jk,j1,pp[jk]/pos, pp[jk],pos,probs[iage][jk][j1]);*/ | fprintf(ficresp," %.5f %.0f %.0f",prop[s1][iage]/pospropta, prop[s1][iage],pospropta); |
| } | } |
| else{ | fprintf(ficresphtm,"<th>%d</th><td>%.5f</td><td>%.0f</td><td>%.0f</td>",iage,prop[s1][iage]/pospropta, prop[s1][iage],pospropta); |
| fprintf(ficresp," %d NaNq %.0f %.0f",iage,prop[jk][iage],pospropta); | /*probs[iage][s1][j1]= pp[s1]/pos;*/ |
| fprintf(ficresphtm,"<th>%d</th><td>NaNq</td><td>%.0f</td><td>%.0f</td>",iage, prop[jk][iage],pospropta); | /*printf("\niage=%d s1=%d j1=%d %.5f %.0f %.0f %f",iage,s1,j1,pp[s1]/pos, pp[s1],pos,probs[iage][s1][j1]);*/ |
| } else{ | |
| if((cptcoveff==0 && nj==1)|| nj==2 ) fprintf(ficresp," NaNq %.0f %.0f",prop[s1][iage],pospropta); | |
| fprintf(ficresphtm,"<th>%d</th><td>NaNq</td><td>%.0f</td><td>%.0f</td>",iage, prop[s1][iage],pospropta); | |
| } | } |
| } | } |
| pospropt[jk] +=posprop[jk]; | pospropt[s1] +=posprop[s1]; |
| } /* end loop jk */ | } /* end loop s1 */ |
| /* pospropt=0.; */ | /* pospropt=0.; */ |
| for(jk=-1; jk <=nlstate+ndeath; jk++){ | for(s1=-1; s1 <=nlstate+ndeath; s1++){ |
| for(m=-1; m <=nlstate+ndeath; m++){ | for(m=-1; m <=nlstate+ndeath; m++){ |
| if(freq[jk][m][iage] !=0 ) { /* minimizing output */ | if(freq[s1][m][iage] !=0 ) { /* minimizing output */ |
| if(first==1){ | if(first==1){ |
| printf(" %d%d=%.0f",jk,m,freq[jk][m][iage]); | printf(" %d%d=%.0f",s1,m,freq[s1][m][iage]); |
| } | } |
| /* printf(" %d%d=%.0f",jk,m,freq[jk][m][iage]); */ | /* printf(" %d%d=%.0f",s1,m,freq[s1][m][iage]); */ |
| fprintf(ficlog," %d%d=%.0f",jk,m,freq[jk][m][iage]); | fprintf(ficlog," %d%d=%.0f",s1,m,freq[s1][m][iage]); |
| } | } |
| if(jk!=0 && m!=0) | if(s1!=0 && m!=0) |
| fprintf(ficresphtmfr,"<td>%.0f</td> ",freq[jk][m][iage]); | fprintf(ficresphtmfr,"<td>%.0f</td> ",freq[s1][m][iage]); |
| } | } |
| } /* end loop jk */ | } /* end loop s1 */ |
| posproptt=0.; | posproptt=0.; |
| for(jk=1; jk <=nlstate; jk++){ | for(s1=1; s1 <=nlstate; s1++){ |
| posproptt += pospropt[jk]; | posproptt += pospropt[s1]; |
| } | } |
| fprintf(ficresphtmfr,"</tr>\n "); | fprintf(ficresphtmfr,"</tr>\n "); |
| if(iage <= iagemax){ | fprintf(ficresphtm,"</tr>\n"); |
| fprintf(ficresp,"\n"); | if((cptcoveff==0 && nj==1)|| nj==2 ) { |
| fprintf(ficresphtm,"</tr>\n"); | if(iage <= iagemax) |
| fprintf(ficresp,"\n"); | |
| } | } |
| if(first==1) | if(first==1) |
| printf("Others in log...\n"); | printf("Others in log...\n"); |
| fprintf(ficlog,"\n"); | fprintf(ficlog,"\n"); |
| } /* end loop age iage */ | } /* end loop age iage */ |
| fprintf(ficresphtm,"<tr><th>Tot</th>"); | fprintf(ficresphtm,"<tr><th>Tot</th>"); |
| for(jk=1; jk <=nlstate ; jk++){ | for(s1=1; s1 <=nlstate ; s1++){ |
| if(posproptt < 1.e-5){ | if(posproptt < 1.e-5){ |
| fprintf(ficresphtm,"<td>Nanq</td><td>%.0f</td><td>%.0f</td>",pospropt[jk],posproptt); | fprintf(ficresphtm,"<td>Nanq</td><td>%.0f</td><td>%.0f</td>",pospropt[s1],posproptt); |
| }else{ | }else{ |
| fprintf(ficresphtm,"<td>%.5f</td><td>%.0f</td><td>%.0f</td>",pospropt[jk]/posproptt,pospropt[jk],posproptt); | fprintf(ficresphtm,"<td>%.5f</td><td>%.0f</td><td>%.0f</td>",pospropt[s1]/posproptt,pospropt[s1],posproptt); |
| } | } |
| } | } |
| fprintf(ficresphtm,"</tr>\n"); | fprintf(ficresphtm,"</tr>\n"); |
| Line 4635 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4724 Title=%s <br>Datafile=%s Firstpass=%d La |
| if(posproptt < 1.e-5){ | if(posproptt < 1.e-5){ |
| fprintf(ficresphtm,"\n <p><b> This combination (%d) is not valid and no result will be produced</b></p>",j1); | fprintf(ficresphtm,"\n <p><b> This combination (%d) is not valid and no result will be produced</b></p>",j1); |
| fprintf(ficresphtmfr,"\n <p><b> This combination (%d) is not valid and no result will be produced</b></p>",j1); | fprintf(ficresphtmfr,"\n <p><b> This combination (%d) is not valid and no result will be produced</b></p>",j1); |
| fprintf(ficres,"\n This combination (%d) is not valid and no result will be produced\n\n",j1); | fprintf(ficlog,"# This combination (%d) is not valid and no result will be produced\n",j1); |
| printf("# This combination (%d) is not valid and no result will be produced\n",j1); | |
| invalidvarcomb[j1]=1; | invalidvarcomb[j1]=1; |
| }else{ | }else{ |
| fprintf(ficresphtm,"\n <p> This combination (%d) is valid and result will be produced.</p>",j1); | fprintf(ficresphtm,"\n <p> This combination (%d) is valid and result will be produced.</p>",j1); |
| Line 4645 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4735 Title=%s <br>Datafile=%s Firstpass=%d La |
| fprintf(ficlog,"\n"); | fprintf(ficlog,"\n"); |
| if(j!=0){ | if(j!=0){ |
| printf("#Freqsummary: Starting values for combination j1=%d:\n", j1); | printf("#Freqsummary: Starting values for combination j1=%d:\n", j1); |
| for(i=1,jk=1; i <=nlstate; i++){ | for(i=1,s1=1; i <=nlstate; i++){ |
| for(k=1; k <=(nlstate+ndeath); k++){ | for(k=1; k <=(nlstate+ndeath); k++){ |
| if (k != i) { | if (k != i) { |
| for(jj=1; jj <=ncovmodel; jj++){ /* For counting jk */ | for(jj=1; jj <=ncovmodel; jj++){ /* For counting s1 */ |
| if(jj==1){ /* Constant case (in fact cste + age) */ | if(jj==1){ /* Constant case (in fact cste + age) */ |
| if(j1==1){ /* All dummy covariates to zero */ | if(j1==1){ /* All dummy covariates to zero */ |
| freq[i][k][iagemax+4]=freq[i][k][iagemax+3]; /* Stores case 0 0 0 */ | freq[i][k][iagemax+4]=freq[i][k][iagemax+3]; /* Stores case 0 0 0 */ |
| freq[i][i][iagemax+4]=freq[i][i][iagemax+3]; /* Stores case 0 0 0 */ | freq[i][i][iagemax+4]=freq[i][i][iagemax+3]; /* Stores case 0 0 0 */ |
| printf("%d%d ",i,k); | printf("%d%d ",i,k); |
| fprintf(ficlog,"%d%d ",i,k); | fprintf(ficlog,"%d%d ",i,k); |
| printf("%12.7f ln(%.0f/%.0f)= %f, OR=%f sd=%f \n",p[jk],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3]),freq[i][k][iagemax+3]/freq[i][i][iagemax+3], sqrt(1/freq[i][k][iagemax+3]+1/freq[i][i][iagemax+3])); | printf("%12.7f ln(%.0f/%.0f)= %f, OR=%f sd=%f \n",p[s1],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3]),freq[i][k][iagemax+3]/freq[i][i][iagemax+3], sqrt(1/freq[i][k][iagemax+3]+1/freq[i][i][iagemax+3])); |
| fprintf(ficlog,"%12.7f ln(%.0f/%.0f)= %12.7f \n",p[jk],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])); | fprintf(ficlog,"%12.7f ln(%.0f/%.0f)= %12.7f \n",p[s1],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])); |
| pstart[jk]= log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3]); | pstart[s1]= log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3]); |
| } | } |
| }else if((j1==1) && (jj==2 || nagesqr==1)){ /* age or age*age parameter without covariate V4*age (to be done later) */ | }else if((j1==1) && (jj==2 || nagesqr==1)){ /* age or age*age parameter without covariate V4*age (to be done later) */ |
| for(iage=iagemin; iage <= iagemax+3; iage++){ | for(iage=iagemin; iage <= iagemax+3; iage++){ |
| x[iage]= (double)iage; | x[iage]= (double)iage; |
| y[iage]= log(freq[i][k][iage]/freq[i][i][iage]); | y[iage]= log(freq[i][k][iage]/freq[i][i][iage]); |
| /* printf("i=%d, k=%d, jk=%d, j1=%d, jj=%d, y[%d]=%f\n",i,k,jk,j1,jj, iage, y[iage]); */ | /* printf("i=%d, k=%d, s1=%d, j1=%d, jj=%d, y[%d]=%f\n",i,k,s1,j1,jj, iage, y[iage]); */ |
| } | } |
| linreg(iagemin,iagemax,&no,x,y,&a,&b,&r, &sa, &sb ); /* y= a+b*x with standard errors */ | linreg(iagemin,iagemax,&no,x,y,&a,&b,&r, &sa, &sb ); /* y= a+b*x with standard errors */ |
| pstart[jk]=b; | pstart[s1]=b; |
| pstart[jk-1]=a; | pstart[s1-1]=a; |
| }else if( j1!=1 && (j1==2 || (log(j1-1.)/log(2.)-(int)(log(j1-1.)/log(2.))) <0.010) && ( TvarsDind[(int)(log(j1-1.)/log(2.))+1]+2+nagesqr == jj) && Dummy[jj-2-nagesqr]==0){ /* We want only if the position, jj, in model corresponds to unique covariate equal to 1 in j1 combination */ | }else if( j1!=1 && (j1==2 || (log(j1-1.)/log(2.)-(int)(log(j1-1.)/log(2.))) <0.010) && ( TvarsDind[(int)(log(j1-1.)/log(2.))+1]+2+nagesqr == jj) && Dummy[jj-2-nagesqr]==0){ /* We want only if the position, jj, in model corresponds to unique covariate equal to 1 in j1 combination */ |
| printf("j1=%d, jj=%d, (int)(log(j1-1.)/log(2.))+1=%d, TvarsDind[(int)(log(j1-1.)/log(2.))+1]=%d\n",j1, jj,(int)(log(j1-1.)/log(2.))+1,TvarsDind[(int)(log(j1-1.)/log(2.))+1]); | printf("j1=%d, jj=%d, (int)(log(j1-1.)/log(2.))+1=%d, TvarsDind[(int)(log(j1-1.)/log(2.))+1]=%d\n",j1, jj,(int)(log(j1-1.)/log(2.))+1,TvarsDind[(int)(log(j1-1.)/log(2.))+1]); |
| printf("j1=%d, jj=%d, (log(j1-1.)/log(2.))+1=%f, TvarsDind[(int)(log(j1-1.)/log(2.))+1]=%d\n",j1, jj,(log(j1-1.)/log(2.))+1,TvarsDind[(int)(log(j1-1.)/log(2.))+1]); | printf("j1=%d, jj=%d, (log(j1-1.)/log(2.))+1=%f, TvarsDind[(int)(log(j1-1.)/log(2.))+1]=%d\n",j1, jj,(log(j1-1.)/log(2.))+1,TvarsDind[(int)(log(j1-1.)/log(2.))+1]); |
| pstart[jk]= log((freq[i][k][iagemax+3]/freq[i][i][iagemax+3])/(freq[i][k][iagemax+4]/freq[i][i][iagemax+4])); | pstart[s1]= log((freq[i][k][iagemax+3]/freq[i][i][iagemax+3])/(freq[i][k][iagemax+4]/freq[i][i][iagemax+4])); |
| printf("%d%d ",i,k); | printf("%d%d ",i,k); |
| fprintf(ficlog,"%d%d ",i,k); | fprintf(ficlog,"%d%d ",i,k); |
| printf("jk=%d,i=%d,k=%d,p[%d]=%12.7f ln((%.0f/%.0f)/(%.0f/%.0f))= %f, OR=%f sd=%f \n",jk,i,k,jk,p[jk],freq[i][k][iagemax+3],freq[i][i][iagemax+3],freq[i][k][iagemax+4],freq[i][i][iagemax+4], log((freq[i][k][iagemax+3]/freq[i][i][iagemax+3])/(freq[i][k][iagemax+4]/freq[i][i][iagemax+4])),(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])/(freq[i][k][iagemax+4]/freq[i][i][iagemax+4]), sqrt(1/freq[i][k][iagemax+3]+1/freq[i][i][iagemax+3]+1/freq[i][k][iagemax+4]+1/freq[i][i][iagemax+4])); | printf("s1=%d,i=%d,k=%d,p[%d]=%12.7f ln((%.0f/%.0f)/(%.0f/%.0f))= %f, OR=%f sd=%f \n",s1,i,k,s1,p[s1],freq[i][k][iagemax+3],freq[i][i][iagemax+3],freq[i][k][iagemax+4],freq[i][i][iagemax+4], log((freq[i][k][iagemax+3]/freq[i][i][iagemax+3])/(freq[i][k][iagemax+4]/freq[i][i][iagemax+4])),(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])/(freq[i][k][iagemax+4]/freq[i][i][iagemax+4]), sqrt(1/freq[i][k][iagemax+3]+1/freq[i][i][iagemax+3]+1/freq[i][k][iagemax+4]+1/freq[i][i][iagemax+4])); |
| }else{ /* Other cases, like quantitative fixed or varying covariates */ | }else{ /* Other cases, like quantitative fixed or varying covariates */ |
| ; | ; |
| } | } |
| /* printf("%12.7f )", param[i][jj][k]); */ | /* printf("%12.7f )", param[i][jj][k]); */ |
| /* fprintf(ficlog,"%12.7f )", param[i][jj][k]); */ | /* fprintf(ficlog,"%12.7f )", param[i][jj][k]); */ |
| jk++; | s1++; |
| } /* end jj */ | } /* end jj */ |
| } /* end k!= i */ | } /* end k!= i */ |
| } /* end k */ | } /* end k */ |
| } /* end i, jk */ | } /* end i, s1 */ |
| } /* end j !=0 */ | } /* end j !=0 */ |
| } /* end selected combination of covariate j1 */ | } /* end selected combination of covariate j1 */ |
| if(j==0){ /* We can estimate starting values from the occurences in each case */ | if(j==0){ /* We can estimate starting values from the occurences in each case */ |
| printf("#Freqsummary: Starting values for the constants:\n"); | printf("#Freqsummary: Starting values for the constants:\n"); |
| fprintf(ficlog,"\n"); | fprintf(ficlog,"\n"); |
| for(i=1,jk=1; i <=nlstate; i++){ | for(i=1,s1=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); |
| for(jj=1; jj <=ncovmodel; jj++){ | for(jj=1; jj <=ncovmodel; jj++){ |
| pstart[jk]=p[jk]; /* Setting pstart to p values by default */ | pstart[s1]=p[s1]; /* Setting pstart to p values by default */ |
| if(jj==1){ /* Age has to be done */ | if(jj==1){ /* Age has to be done */ |
| pstart[jk]= log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3]); | pstart[s1]= log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3]); |
| printf("%12.7f ln(%.0f/%.0f)= %12.7f ",p[jk],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])); | printf("%12.7f ln(%.0f/%.0f)= %12.7f ",p[s1],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])); |
| fprintf(ficlog,"%12.7f ln(%.0f/%.0f)= %12.7f ",p[jk],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])); | fprintf(ficlog,"%12.7f ln(%.0f/%.0f)= %12.7f ",p[s1],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])); |
| } | } |
| /* printf("%12.7f )", param[i][jj][k]); */ | /* printf("%12.7f )", param[i][jj][k]); */ |
| /* fprintf(ficlog,"%12.7f )", param[i][jj][k]); */ | /* fprintf(ficlog,"%12.7f )", param[i][jj][k]); */ |
| jk++; | s1++; |
| } | } |
| printf("\n"); | printf("\n"); |
| fprintf(ficlog,"\n"); | fprintf(ficlog,"\n"); |
| Line 4713 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4803 Title=%s <br>Datafile=%s Firstpass=%d La |
| } | } |
| printf("#Freqsummary\n"); | printf("#Freqsummary\n"); |
| fprintf(ficlog,"\n"); | fprintf(ficlog,"\n"); |
| for(jk=-1; jk <=nlstate+ndeath; jk++){ | for(s1=-1; s1 <=nlstate+ndeath; s1++){ |
| for(m=-1; m <=nlstate+ndeath; m++){ | for(s2=-1; s2 <=nlstate+ndeath; s2++){ |
| /* param[i]|j][k]= freq[jk][m][iagemax+3] */ | /* param[i]|j][k]= freq[s1][s2][iagemax+3] */ |
| printf(" %d%d=%.0f",jk,m,freq[jk][m][iagemax+3]); | printf(" %d%d=%.0f",s1,s2,freq[s1][s2][iagemax+3]); |
| fprintf(ficlog," %d%d=%.0f",jk,m,freq[jk][m][iagemax+3]); | fprintf(ficlog," %d%d=%.0f",s1,s2,freq[s1][s2][iagemax+3]); |
| /* if(freq[jk][m][iage] !=0 ) { /\* minimizing output *\/ */ | /* if(freq[s1][s2][iage] !=0 ) { /\* minimizing output *\/ */ |
| /* printf(" %d%d=%.0f",jk,m,freq[jk][m][iagemax+3]); */ | /* printf(" %d%d=%.0f",s1,s2,freq[s1][s2][iagemax+3]); */ |
| /* fprintf(ficlog," %d%d=%.0f",jk,m,freq[jk][m][iagemax+3]); */ | /* fprintf(ficlog," %d%d=%.0f",s1,s2,freq[s1][s2][iagemax+3]); */ |
| /* } */ | /* } */ |
| } | } |
| } /* end loop jk */ | } /* end loop s1 */ |
| printf("\n"); | printf("\n"); |
| fprintf(ficlog,"\n"); | fprintf(ficlog,"\n"); |
| Line 4917 void concatwav(int wav[], int **dh, int | Line 5007 void concatwav(int wav[], int **dh, int |
| #else | #else |
| if(s[m][i]==-1 && (int) andc[i] == 9999 && (int)anint[m][i] != 9999){ | if(s[m][i]==-1 && (int) andc[i] == 9999 && (int)anint[m][i] != 9999){ |
| if(firsthree == 0){ | if(firsthree == 0){ |
| printf("Information! Unknown status for individual %ld line=%d occurred at last wave %d at known date %d/%d. Please, check if your unknown date of death %d/%d means a live state %d at wave %d. This case(%d)/wave(%d) contributes to the likelihood as pi. .\nOthers in log file only\n",num[i],i,lastpass,(int)mint[m][i],(int)anint[m][i], (int) moisdc[i], (int) andc[i], s[m][i], m, i, m); | printf("Information! Unknown status for individual %ld line=%d occurred at last wave %d at known date %d/%d. Please, check if your unknown date of death %d/%d means a live state %d at wave %d. This case(%d)/wave(%d) contributes to the likelihood as 1-p%d%d .\nOthers in log file only\n",num[i],i,lastpass,(int)mint[m][i],(int)anint[m][i], (int) moisdc[i], (int) andc[i], s[m][i], m, i, m, s[m][i], nlstate+ndeath); |
| firsthree=1; | firsthree=1; |
| } | } |
| fprintf(ficlog,"Information! Unknown status for individual %ld line=%d occurred at last wave %d at known date %d/%d. Please, check if your unknown date of death %d/%d means a live state %d at wave %d. This case(%d)/wave(%d) contributes to the likelihood as pi. .\n",num[i],i,lastpass,(int)mint[m][i],(int)anint[m][i], (int) moisdc[i], (int) andc[i], s[m][i], m, i, m); | fprintf(ficlog,"Information! Unknown status for individual %ld line=%d occurred at last wave %d at known date %d/%d. Please, check if your unknown date of death %d/%d means a live state %d at wave %d. This case(%d)/wave(%d) contributes to the likelihood as 1-p%d%d .\n",num[i],i,lastpass,(int)mint[m][i],(int)anint[m][i], (int) moisdc[i], (int) andc[i], s[m][i], m, i, m, s[m][i], nlstate+ndeath); |
| mw[++mi][i]=m; | mw[++mi][i]=m; |
| mli=m; | mli=m; |
| } | } |
| Line 4947 void concatwav(int wav[], int **dh, int | Line 5037 void concatwav(int wav[], int **dh, int |
| /* if(mi==0) never been interviewed correctly before death */ | /* if(mi==0) never been interviewed correctly before death */ |
| /* Only death is a correct wave */ | /* Only death is a correct wave */ |
| mw[mi][i]=m; | mw[mi][i]=m; |
| } | } /* else not in a death state */ |
| #ifndef DISPATCHINGKNOWNDEATHAFTERLASTWAVE | #ifndef DISPATCHINGKNOWNDEATHAFTERLASTWAVE |
| else if ((int) andc[i] != 9999) { /* Status is negative. A death occured after lastpass, we can't take it into account because of potential bias */ | else if ((int) andc[i] != 9999) { /* Date of death is known */ |
| /* m++; */ | |
| /* mi++; */ | |
| /* s[m][i]=nlstate+1; /\* We are setting the status to the last of non live state *\/ */ | |
| /* mw[mi][i]=m; */ | |
| if ((int)anint[m][i]!= 9999) { /* date of last interview is known */ | if ((int)anint[m][i]!= 9999) { /* date of last interview is known */ |
| if((andc[i]+moisdc[i]/12.) <=(anint[m][i]+mint[m][i]/12.)){ /* death occured before last wave and status should have been death instead of -1 */ | if((andc[i]+moisdc[i]/12.) <=(anint[m][i]+mint[m][i]/12.)){ /* death occured before last wave and status should have been death instead of -1 */ |
| nbwarn++; | nbwarn++; |
| Line 4966 void concatwav(int wav[], int **dh, int | Line 5052 void concatwav(int wav[], int **dh, int |
| }else{ /* Death occured afer last wave potential bias */ | }else{ /* Death occured afer last wave potential bias */ |
| nberr++; | nberr++; |
| if(firstwo==0){ | if(firstwo==0){ |
| printf("Error! Death for individual %ld line=%d occurred at %d/%d after last wave %d interviewed at %d/%d. Potential bias if other individuals are still alive at this date but ignored. This case (%d)/wave (%d) is skipped, no contribution to likelihood.\nOthers in log file only\n",num[i],i,(int) moisdc[i], (int) andc[i], lastpass,(int)mint[m][i],(int)anint[m][i], i,m ); | printf("Error! Death for individual %ld line=%d occurred at %d/%d after last wave %d interviewed at %d/%d. Potential bias if other individuals are still alive at this date but ignored. This case (%d)/wave (%d) is skipped, no contribution to likelihood. Please add a new fictive wave at the date of last vital status scan, with a dead status or alive but unknown state status (-1). See documentation\nOthers in log file only\n",num[i],i,(int) moisdc[i], (int) andc[i], lastpass,(int)mint[m][i],(int)anint[m][i], i,m ); |
| firstwo=1; | firstwo=1; |
| } | } |
| fprintf(ficlog,"Error! Death for individual %ld line=%d occurred at %d/%d after last wave %d interviewed at %d/%d. Potential bias if other individuals are still alive at this date but ignored. This case (%d)/wave (%d) is skipped, no contribution to likelihood.\n",num[i],i,(int) moisdc[i], (int) andc[i], lastpass,(int)mint[m][i],(int)anint[m][i], i,m ); | fprintf(ficlog,"Error! Death for individual %ld line=%d occurred at %d/%d after last wave %d interviewed at %d/%d. Potential bias if other individuals are still alive at this date but ignored. This case (%d)/wave (%d) is skipped, no contribution to likelihood. Please add a new fictive wave at the date of last vital status scan, with a dead status or alive but unknown state status (-1). See documentation\n\n",num[i],i,(int) moisdc[i], (int) andc[i], lastpass,(int)mint[m][i],(int)anint[m][i], i,m ); |
| } | } |
| }else{ /* end date of interview is known */ | }else{ /* if date of interview is unknown */ |
| /* death is known but not confirmed by death status at any wave */ | /* death is known but not confirmed by death status at any wave */ |
| if(firstfour==0){ | if(firstfour==0){ |
| printf("Error! Death for individual %ld line=%d occurred %d/%d but not confirmed by any death status for any wave, including last wave %d at unknown date %d/%d. Potential bias if other individuals are still alive at this date but ignored. This case (%d)/wave (%d) is skipped, no contribution to likelihood.\nOthers in log file only\n",num[i],i,(int) moisdc[i], (int) andc[i], lastpass,(int)mint[m][i],(int)anint[m][i], i,m ); | printf("Error! Death for individual %ld line=%d occurred %d/%d but not confirmed by any death status for any wave, including last wave %d at unknown date %d/%d. Potential bias if other individuals are still alive at this date but ignored. This case (%d)/wave (%d) is skipped, no contribution to likelihood.\nOthers in log file only\n",num[i],i,(int) moisdc[i], (int) andc[i], lastpass,(int)mint[m][i],(int)anint[m][i], i,m ); |
| Line 5002 void concatwav(int wav[], int **dh, int | Line 5088 void concatwav(int wav[], int **dh, int |
| if (stepm <=0) | if (stepm <=0) |
| dh[mi][i]=1; | dh[mi][i]=1; |
| else{ | else{ |
| if (s[mw[mi+1][i]][i] > nlstate) { /* A death */ | if (s[mw[mi+1][i]][i] > nlstate) { /* A death, but what if date is unknown? */ |
| if (agedc[i] < 2*AGESUP) { | if (agedc[i] < 2*AGESUP) { |
| j= rint(agedc[i]*12-agev[mw[mi][i]][i]*12); | j= rint(agedc[i]*12-agev[mw[mi][i]][i]*12); |
| if(j==0) j=1; /* Survives at least one month after exam */ | if(j==0) j=1; /* Survives at least one month after exam */ |
| Line 6364 To be simple, these graphs help to under | Line 6450 To be simple, these graphs help to under |
| void printinghtml(char fileresu[], char title[], char datafile[], int firstpass, \ | void printinghtml(char fileresu[], char title[], char datafile[], int firstpass, \ |
| int lastpass, int stepm, int weightopt, char model[],\ | int lastpass, int stepm, int weightopt, char model[],\ |
| int imx,int jmin, int jmax, double jmeanint,char rfileres[],\ | int imx,int jmin, int jmax, double jmeanint,char rfileres[],\ |
| int popforecast, int prevfcast, int backcast, int estepm , \ | int popforecast, int mobilav, int prevfcast, int mobilavproj, int backcast, int estepm , \ |
| double jprev1, double mprev1,double anprev1, double dateprev1, \ | double jprev1, double mprev1,double anprev1, double dateprev1, \ |
| double jprev2, double mprev2,double anprev2, double dateprev2){ | double jprev2, double mprev2,double anprev2, double dateprev2){ |
| int jj1, k1, i1, cpt, k4, nres; | int jj1, k1, i1, cpt, k4, nres; |
| Line 6402 void printinghtml(char fileresu[], char | Line 6488 void printinghtml(char fileresu[], char |
| <a href=\"%s\">%s</a> <br>\n</li>", subdirf2(fileresu,"F_"),subdirf2(fileresu,"F_")); | <a href=\"%s\">%s</a> <br>\n</li>", subdirf2(fileresu,"F_"),subdirf2(fileresu,"F_")); |
| } | } |
| fprintf(fichtm," \n<ul><li><b>Graphs</b></li><p>"); | |
| m=pow(2,cptcoveff); | m=pow(2,cptcoveff); |
| if (cptcovn < 1) {m=1;ncodemax[1]=1;} | if (cptcovn < 1) {m=1;ncodemax[1]=1;} |
| fprintf(fichtm," \n<ul><li><b>Graphs</b></li><p>"); | |
| jj1=0; | |
| fprintf(fichtm," \n<ul>"); | |
| for(nres=1; nres <= nresult; nres++) /* For each resultline */ | |
| for(k1=1; k1<=m;k1++){ /* For each combination of covariate */ | |
| if(m != 1 && TKresult[nres]!= k1) | |
| continue; | |
| jj1++; | |
| if (cptcovn > 0) { | |
| fprintf(fichtm,"\n<li><a size=\"1\" color=\"#EC5E5E\" href=\"#rescov"); | |
| for (cpt=1; cpt<=cptcoveff;cpt++){ | |
| fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); | |
| } | |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | |
| fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | |
| fprintf(fichtm,"\">"); | |
| /* if(nqfveff+nqtveff 0) */ /* Test to be done */ | |
| fprintf(fichtm,"************ Results for covariates"); | |
| for (cpt=1; cpt<=cptcoveff;cpt++){ | |
| fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); | |
| } | |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | |
| fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | |
| if(invalidvarcomb[k1]){ | |
| fprintf(fichtm," Warning Combination (%d) ignored because no cases ",k1); | |
| continue; | |
| } | |
| fprintf(fichtm,"</a></li>"); | |
| } /* cptcovn >0 */ | |
| } | |
| fprintf(fichtm," \n</ul>"); | |
| jj1=0; | jj1=0; |
| for(nres=1; nres <= nresult; nres++) /* For each resultline */ | for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
| Line 6417 void printinghtml(char fileresu[], char | Line 6539 void printinghtml(char fileresu[], char |
| /* for(i1=1; i1<=ncodemax[k1];i1++){ */ | /* for(i1=1; i1<=ncodemax[k1];i1++){ */ |
| jj1++; | jj1++; |
| if (cptcovn > 0) { | if (cptcovn > 0) { |
| fprintf(fichtm,"\n<p><a name=\"rescov"); | |
| for (cpt=1; cpt<=cptcoveff;cpt++){ | |
| fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); | |
| } | |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | |
| fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | |
| fprintf(fichtm,"\"</a>"); | |
| fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\">************ Results for covariates"); | fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\">************ Results for covariates"); |
| for (cpt=1; cpt<=cptcoveff;cpt++){ | for (cpt=1; cpt<=cptcoveff;cpt++){ |
| fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); | fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
| Line 6438 void printinghtml(char fileresu[], char | Line 6569 void printinghtml(char fileresu[], char |
| } | } |
| } | } |
| /* aij, bij */ | /* aij, bij */ |
| fprintf(fichtm,"<br>- Logit model (yours is: 1+age+%s), for example: logit(pij)=log(pij/pii)= aij+ bij age + V1 age + etc. as a function of age: <a href=\"%s_%d-1-%d.svg\">%s_%d-1-%d.svg</a><br> \ | fprintf(fichtm,"<br>- Logit model (yours is: logit(pij)=log(pij/pii)= aij+ bij age+%s) as a function of age: <a href=\"%s_%d-1-%d.svg\">%s_%d-1-%d.svg</a><br> \ |
| <img src=\"%s_%d-1-%d.svg\">",model,subdirf2(optionfilefiname,"PE_"),k1,nres,subdirf2(optionfilefiname,"PE_"),k1,nres,subdirf2(optionfilefiname,"PE_"),k1,nres); | <img src=\"%s_%d-1-%d.svg\">",model,subdirf2(optionfilefiname,"PE_"),k1,nres,subdirf2(optionfilefiname,"PE_"),k1,nres,subdirf2(optionfilefiname,"PE_"),k1,nres); |
| /* Pij */ | /* Pij */ |
| fprintf(fichtm,"<br>\n- P<sub>ij</sub> or conditional probabilities to be observed in state j being in state i, %d (stepm) months before: <a href=\"%s_%d-2-%d.svg\">%s_%d-2-%d.svg</a><br> \ | fprintf(fichtm,"<br>\n- P<sub>ij</sub> or conditional probabilities to be observed in state j being in state i, %d (stepm) months before: <a href=\"%s_%d-2-%d.svg\">%s_%d-2-%d.svg</a><br> \ |
| Line 6462 divided by h: <sub>h</sub>P<sub>ij</sub> | Line 6593 divided by h: <sub>h</sub>P<sub>ij</sub> |
| } | } |
| /* Period (stable) prevalence in each health state */ | /* Period (stable) prevalence in each health state */ |
| for(cpt=1; cpt<=nlstate;cpt++){ | for(cpt=1; cpt<=nlstate;cpt++){ |
| fprintf(fichtm,"<br>\n- Convergence to period (stable) prevalence in state %d. Or probability to be in state %d some years earlier, knowing that we will be in state (1 to %d) at different ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ | fprintf(fichtm,"<br>\n- Convergence to period (stable) prevalence in state %d. Or probability for a person being in state (1 to %d) at different ages, to be in state %d some years after. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
| <img src=\"%s_%d-%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres); | <img src=\"%s_%d-%d-%d.svg\">", cpt, nlstate, cpt, subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres); |
| } | } |
| if(backcast==1){ | if(backcast==1){ |
| /* Period (stable) back prevalence in each health state */ | /* Period (stable) back prevalence in each health state */ |
| for(cpt=1; cpt<=nlstate;cpt++){ | for(cpt=1; cpt<=nlstate;cpt++){ |
| fprintf(fichtm,"<br>\n- Convergence to mixed (stable) back prevalence in state %d. Or probability to be in state %d at a younger age, knowing that we will be in state (1 to %d) at different older ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ | fprintf(fichtm,"<br>\n- Convergence to mixed (stable) back prevalence in state %d. Or probability for a person to be in state %d at a younger age, knowing that she/he was in state (1 to %d) at different older ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
| <img src=\"%s_%d-%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"PB_"),cpt,k1,nres,subdirf2(optionfilefiname,"PB_"),cpt,k1,nres,subdirf2(optionfilefiname,"PB_"),cpt,k1,nres); | <img src=\"%s_%d-%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"PB_"),cpt,k1,nres,subdirf2(optionfilefiname,"PB_"),cpt,k1,nres,subdirf2(optionfilefiname,"PB_"),cpt,k1,nres); |
| } | } |
| } | } |
| if(prevfcast==1){ | if(prevfcast==1){ |
| /* Projection of prevalence up to period (stable) prevalence in each health state */ | /* Projection of prevalence up to period (stable) prevalence in each health state */ |
| for(cpt=1; cpt<=nlstate;cpt++){ | for(cpt=1; cpt<=nlstate;cpt++){ |
| fprintf(fichtm,"<br>\n- Projection of cross-sectional prevalence (estimated with cases observed from %.1f to %.1f) up to period (stable) prevalence in state %d. Or probability to be in state %d being in state (1 to %d) at different ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ | fprintf(fichtm,"<br>\n- Projection of cross-sectional prevalence (estimated with cases observed from %.1f to %.1f and mobil_average=%d) up to period (stable) prevalence in state %d. Or probability to be in state %d being in state (1 to %d) at different ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
| <img src=\"%s_%d-%d-%d.svg\">", dateprev1, dateprev2, cpt, cpt, nlstate, subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres,subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres,subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres); | <img src=\"%s_%d-%d-%d.svg\">", dateprev1, dateprev2, mobilavproj, cpt, cpt, nlstate, subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres,subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres,subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres); |
| } | } |
| } | } |
| Line 6564 See page 'Matrix of variance-covariance | Line 6695 See page 'Matrix of variance-covariance |
| } | } |
| } | } |
| for(cpt=1; cpt<=nlstate;cpt++) { | for(cpt=1; cpt<=nlstate;cpt++) { |
| fprintf(fichtm,"\n<br>- Observed (cross-sectional) and period (incidence based) \ | fprintf(fichtm,"\n<br>- Observed (cross-sectional with mov_average=%d) and period (incidence based) \ |
| prevalence (with 95%% confidence interval) in state (%d): <a href=\"%s_%d-%d-%d.svg\"> %s_%d-%d-%d.svg</a>\n <br>\ | prevalence (with 95%% confidence interval) in state (%d): <a href=\"%s_%d-%d-%d.svg\"> %s_%d-%d-%d.svg</a>\n <br>\ |
| <img src=\"%s_%d-%d-%d.svg\">",cpt,subdirf2(optionfilefiname,"V_"),cpt,k1,nres,subdirf2(optionfilefiname,"V_"),cpt,k1,nres,subdirf2(optionfilefiname,"V_"),cpt,k1,nres); | <img src=\"%s_%d-%d-%d.svg\">",mobilav,cpt,subdirf2(optionfilefiname,"V_"),cpt,k1,nres,subdirf2(optionfilefiname,"V_"),cpt,k1,nres,subdirf2(optionfilefiname,"V_"),cpt,k1,nres); |
| } | } |
| fprintf(fichtm,"\n<br>- Total life expectancy by age and \ | fprintf(fichtm,"\n<br>- Total life expectancy by age and \ |
| health expectancies in states (1) and (2). If popbased=1 the smooth (due to the model) \ | health expectancies in states (1) and (2). If popbased=1 the smooth (due to the model) \ |
| Line 6585 true period expectancies (those weighted | Line 6716 true period expectancies (those weighted |
| void printinggnuplot(char fileresu[], char optionfilefiname[], double ageminpar, double agemaxpar, double fage , int prevfcast, int backcast, char pathc[], double p[]){ | void printinggnuplot(char fileresu[], char optionfilefiname[], double ageminpar, double agemaxpar, double fage , int prevfcast, int backcast, char pathc[], double p[]){ |
| char dirfileres[132],optfileres[132]; | char dirfileres[132],optfileres[132]; |
| char gplotcondition[132]; | char gplotcondition[132], gplotlabel[132]; |
| int cpt=0,k1=0,i=0,k=0,j=0,jk=0,k2=0,k3=0,k4=0,ij=0, ijp=0, l=0; | int cpt=0,k1=0,i=0,k=0,j=0,jk=0,k2=0,k3=0,k4=0,ij=0, ijp=0, l=0; |
| int lv=0, vlv=0, kl=0; | int lv=0, vlv=0, kl=0; |
| int ng=0; | int ng=0; |
| Line 6644 void printinggnuplot(char fileresu[], ch | Line 6775 void printinggnuplot(char fileresu[], ch |
| /* We are interested in selected combination by the resultline */ | /* We are interested in selected combination by the resultline */ |
| /* printf("\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); */ | /* printf("\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); */ |
| fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); | fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); |
| strcpy(gplotlabel,"("); | |
| for (k=1; k<=cptcoveff; k++){ /* For each covariate k get corresponding value lv for combination k1 */ | for (k=1; k<=cptcoveff; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the value of the covariate corresponding to k1 combination */ | lv= decodtabm(k1,k,cptcoveff); /* Should be the value of the covariate corresponding to k1 combination */ |
| /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ | /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
| Line 6653 void printinggnuplot(char fileresu[], ch | Line 6785 void printinggnuplot(char fileresu[], ch |
| /* For each combination of covariate k1 (V1=1, V3=0), we printed the current covariate k and its value vlv */ | /* For each combination of covariate k1 (V1=1, V3=0), we printed the current covariate k and its value vlv */ |
| /* printf(" V%d=%d ",Tvaraff[k],vlv); */ | /* printf(" V%d=%d ",Tvaraff[k],vlv); */ |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | } |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| /* printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */ | /* printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| } | sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| } | |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| /* printf("\n#\n"); */ | /* printf("\n#\n"); */ |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| if(invalidvarcomb[k1]){ | if(invalidvarcomb[k1]){ |
| /*k1=k1-1;*/ /* To be checked */ | |
| fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); | fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
| continue; | continue; |
| } | } |
| fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"V_"),cpt,k1,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"V_"),cpt,k1,nres); |
| fprintf(ficgp,"\n#set out \"V_%s_%d-%d-%d.svg\" \n",optionfilefiname,cpt,k1,nres); | fprintf(ficgp,"\n#set out \"V_%s_%d-%d-%d.svg\" \n",optionfilefiname,cpt,k1,nres); |
| fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \nset ter svg size 640, 480\nplot [%.f:%.f] \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),k1-1,k1-1,nres); | fprintf(ficgp,"set label \"Alive state %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",cpt,gplotlabel); |
| fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \nset ter svg size 640, 480\nplot [%.f:%.f] \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),nres-1,nres-1,nres); | |
| /* fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \nset ter svg size 640, 480\nplot [%.f:%.f] \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),k1-1,k1-1,nres); */ | |
| /* k1-1 error should be nres-1*/ | |
| for (i=1; i<= nlstate ; i ++) { | for (i=1; i<= nlstate ; i ++) { |
| if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); | if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
| else fprintf(ficgp," %%*lf (%%*lf)"); | else fprintf(ficgp," %%*lf (%%*lf)"); |
| } | } |
| fprintf(ficgp,"\" t\"Period (stable) prevalence\" w l lt 0,\"%s\" every :::%d::%d u 1:($2==%d ? $3+1.96*$4 : 1/0) \"%%lf %%lf",subdirf2(fileresu,"VPL_"),k1-1,k1-1,nres); | fprintf(ficgp,"\" t\"Period (stable) prevalence\" w l lt 0,\"%s\" every :::%d::%d u 1:($2==%d ? $3+1.96*$4 : 1/0) \"%%lf %%lf",subdirf2(fileresu,"VPL_"),nres-1,nres-1,nres); |
| for (i=1; i<= nlstate ; i ++) { | for (i=1; i<= nlstate ; i ++) { |
| if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); | if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
| else fprintf(ficgp," %%*lf (%%*lf)"); | else fprintf(ficgp," %%*lf (%%*lf)"); |
| } | } |
| fprintf(ficgp,"\" t\"95%% CI\" w l lt 1,\"%s\" every :::%d::%d u 1:($2==%d ? $3-1.96*$4 : 1/0) \"%%lf %%lf",subdirf2(fileresu,"VPL_"),k1-1,k1-1,nres); | fprintf(ficgp,"\" t\"95%% CI\" w l lt 1,\"%s\" every :::%d::%d u 1:($2==%d ? $3-1.96*$4 : 1/0) \"%%lf %%lf",subdirf2(fileresu,"VPL_"),nres-1,nres-1,nres); |
| for (i=1; i<= nlstate ; i ++) { | for (i=1; i<= nlstate ; i ++) { |
| if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); | if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
| else fprintf(ficgp," %%*lf (%%*lf)"); | else fprintf(ficgp," %%*lf (%%*lf)"); |
| } | } |
| fprintf(ficgp,"\" t\"\" w l lt 1,\"%s\" every :::%d::%d u 1:($%d) t\"Observed prevalence\" w l lt 2",subdirf2(fileresu,"P_"),k1-1,k1-1,2+4*(cpt-1)); | /* fprintf(ficgp,"\" t\"\" w l lt 1,\"%s\" every :::%d::%d u 1:($%d) t\"Observed prevalence\" w l lt 2",subdirf2(fileresu,"P_"),k1-1,k1-1,2+4*(cpt-1)); */ |
| fprintf(ficgp,"\" t\"\" w l lt 1,\"%s\" u 1:((",subdirf2(fileresu,"P_")); | |
| if(cptcoveff ==0){ | |
| fprintf(ficgp,"$%d)) t 'Observed prevalence in state %d' with line lt 3", 2+(cpt-1), cpt ); | |
| }else{ | |
| kl=0; | |
| for (k=1; k<=cptcoveff; k++){ /* For each combination of covariate */ | |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate value corresponding to k1 combination and kth covariate */ | |
| /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ | |
| /* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ | |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | |
| vlv= nbcode[Tvaraff[k]][lv]; | |
| kl++; | |
| /* kl=6+(cpt-1)*(nlstate+1)+1+(i-1); /\* 6+(1-1)*(2+1)+1+(1-1)=7, 6+(2-1)(2+1)+1+(1-1)=10 *\/ */ | |
| /*6+(cpt-1)*(nlstate+1)+1+(i-1)+(nlstate+1)*nlstate; 6+(1-1)*(2+1)+1+(1-1) +(2+1)*2=13 */ | |
| /*6+1+(i-1)+(nlstate+1)*nlstate; 6+1+(1-1) +(2+1)*2=13 */ | |
| /* '' u 6:(($1==1 && $2==0 && $3==2 && $4==0)? $9/(1.-$15) : 1/0):($5==2000? 3:2) t 'p.1' with line lc variable*/ | |
| if(k==cptcoveff){ | |
| fprintf(ficgp,"$%d==%d && $%d==%d)? $%d : 1/0) t 'Observed prevalence in state %d' w l lt 2",kl+1, Tvaraff[k],kl+1+1,nbcode[Tvaraff[k]][lv], \ | |
| 2+cptcoveff*2+3*(cpt-1), cpt ); /* 4 or 6 ?*/ | |
| }else{ | |
| fprintf(ficgp,"$%d==%d && $%d==%d && ",kl+1, Tvaraff[k],kl+1+1,nbcode[Tvaraff[k]][lv]); | |
| kl++; | |
| } | |
| } /* end covariate */ | |
| } /* end if no covariate */ | |
| if(backcast==1){ /* We need to get the corresponding values of the covariates involved in this combination k1 */ | if(backcast==1){ /* We need to get the corresponding values of the covariates involved in this combination k1 */ |
| /* fprintf(ficgp,",\"%s\" every :::%d::%d u 1:($%d) t\"Backward stable prevalence\" w l lt 3",subdirf2(fileresu,"PLB_"),k1-1,k1-1,1+cpt); */ | /* fprintf(ficgp,",\"%s\" every :::%d::%d u 1:($%d) t\"Backward stable prevalence\" w l lt 3",subdirf2(fileresu,"PLB_"),k1-1,k1-1,1+cpt); */ |
| fprintf(ficgp,",\"%s\" u 1:((",subdirf2(fileresu,"PLB_")); /* Age is in 1, nres in 2 to be fixed */ | fprintf(ficgp,",\"%s\" u 1:((",subdirf2(fileresu,"PLB_")); /* Age is in 1, nres in 2 to be fixed */ |
| Line 6712 void printinggnuplot(char fileresu[], ch | Line 6877 void printinggnuplot(char fileresu[], ch |
| } /* end covariate */ | } /* end covariate */ |
| } /* end if no covariate */ | } /* end if no covariate */ |
| } /* end if backcast */ | } /* end if backcast */ |
| fprintf(ficgp,"\nset out \n"); | fprintf(ficgp,"\nset out ;unset label;\n"); |
| } /* nres */ | } /* nres */ |
| } /* k1 */ | } /* k1 */ |
| } /* cpt */ | } /* cpt */ |
| Line 6724 void printinggnuplot(char fileresu[], ch | Line 6889 void printinggnuplot(char fileresu[], ch |
| if(m != 1 && TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files "); | fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files "); |
| strcpy(gplotlabel,"("); | |
| for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ | for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ | lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ |
| /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ | /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
| Line 6731 void printinggnuplot(char fileresu[], ch | Line 6897 void printinggnuplot(char fileresu[], ch |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
| vlv= nbcode[Tvaraff[k]][lv]; | vlv= nbcode[Tvaraff[k]][lv]; |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | } |
| /* for(k=1; k <= ncovds; k++){ */ | /* for(k=1; k <= ncovds; k++){ */ |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | } |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| if(invalidvarcomb[k1]){ | if(invalidvarcomb[k1]){ |
| fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); | fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
| Line 6745 void printinggnuplot(char fileresu[], ch | Line 6914 void printinggnuplot(char fileresu[], ch |
| fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"E_"),k1,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"E_"),k1,nres); |
| for(vpopbased=0; vpopbased <= popbased; vpopbased++){ /* Done for vpopbased=0 and vpopbased=1 if popbased==1*/ | for(vpopbased=0; vpopbased <= popbased; vpopbased++){ /* Done for vpopbased=0 and vpopbased=1 if popbased==1*/ |
| if(vpopbased==0) | fprintf(ficgp,"\nset label \"popbased %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",vpopbased,gplotlabel); |
| if(vpopbased==0){ | |
| fprintf(ficgp,"set ylabel \"Years\" \nset ter svg size 640, 480\nplot [%.f:%.f] ",ageminpar,fage); | fprintf(ficgp,"set ylabel \"Years\" \nset ter svg size 640, 480\nplot [%.f:%.f] ",ageminpar,fage); |
| else | }else |
| fprintf(ficgp,"\nreplot "); | fprintf(ficgp,"\nreplot "); |
| for (i=1; i<= nlstate+1 ; i ++) { | for (i=1; i<= nlstate+1 ; i ++) { |
| k=2*i; | k=2*i; |
| fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ?$4 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1, vpopbased); | fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ?$4 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),nres-1,nres-1, vpopbased); |
| for (j=1; j<= nlstate+1 ; j ++) { | for (j=1; j<= nlstate+1 ; j ++) { |
| if (j==i) fprintf(ficgp," %%lf (%%lf)"); | if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
| else fprintf(ficgp," %%*lf (%%*lf)"); | else fprintf(ficgp," %%*lf (%%*lf)"); |
| } | } |
| if (i== 1) fprintf(ficgp,"\" t\"TLE\" w l lt %d, \\\n",i); | if (i== 1) fprintf(ficgp,"\" t\"TLE\" w l lt %d, \\\n",i); |
| else fprintf(ficgp,"\" t\"LE in state (%d)\" w l lt %d, \\\n",i-1,i+1); | else fprintf(ficgp,"\" t\"LE in state (%d)\" w l lt %d, \\\n",i-1,i+1); |
| fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ? $4-$5*2 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1,vpopbased); | fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ? $4-$5*2 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),nres-1,nres-1,vpopbased); |
| for (j=1; j<= nlstate+1 ; j ++) { | for (j=1; j<= nlstate+1 ; j ++) { |
| if (j==i) fprintf(ficgp," %%lf (%%lf)"); | if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
| else fprintf(ficgp," %%*lf (%%*lf)"); | else fprintf(ficgp," %%*lf (%%*lf)"); |
| } | } |
| fprintf(ficgp,"\" t\"\" w l lt 0,"); | fprintf(ficgp,"\" t\"\" w l lt 0,"); |
| fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ? $4+$5*2 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1,vpopbased); | fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ? $4+$5*2 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),nres-1,nres-1,vpopbased); |
| for (j=1; j<= nlstate+1 ; j ++) { | for (j=1; j<= nlstate+1 ; j ++) { |
| if (j==i) fprintf(ficgp," %%lf (%%lf)"); | if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
| else fprintf(ficgp," %%*lf (%%*lf)"); | else fprintf(ficgp," %%*lf (%%*lf)"); |
| Line 6773 void printinggnuplot(char fileresu[], ch | Line 6943 void printinggnuplot(char fileresu[], ch |
| else fprintf(ficgp,"\" t\"\" w l lt 0,\\\n"); | else fprintf(ficgp,"\" t\"\" w l lt 0,\\\n"); |
| } /* state */ | } /* state */ |
| } /* vpopbased */ | } /* vpopbased */ |
| fprintf(ficgp,"\nset out;set out \"%s_%d-%d.svg\"; replot; set out; \n",subdirf2(optionfilefiname,"E_"),k1,nres); /* Buggy gnuplot */ | fprintf(ficgp,"\nset out;set out \"%s_%d-%d.svg\"; replot; set out; unset label;\n",subdirf2(optionfilefiname,"E_"),k1,nres); /* Buggy gnuplot */ |
| } /* end nres */ | } /* end nres */ |
| } /* k1 end 2 eme*/ | } /* k1 end 2 eme*/ |
| Line 6785 void printinggnuplot(char fileresu[], ch | Line 6955 void printinggnuplot(char fileresu[], ch |
| continue; | continue; |
| for (cpt=1; cpt<= nlstate ; cpt ++) { | for (cpt=1; cpt<= nlstate ; cpt ++) { |
| fprintf(ficgp,"\n# 3d: Life expectancy with EXP_ files: combination=%d state=%d",k1, cpt); | fprintf(ficgp,"\n\n# 3d: Life expectancy with EXP_ files: combination=%d state=%d",k1, cpt); |
| strcpy(gplotlabel,"("); | |
| for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ | for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ | lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ |
| /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ | /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
| Line 6793 void printinggnuplot(char fileresu[], ch | Line 6964 void printinggnuplot(char fileresu[], ch |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
| vlv= nbcode[Tvaraff[k]][lv]; | vlv= nbcode[Tvaraff[k]][lv]; |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | } |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | } |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| if(invalidvarcomb[k1]){ | if(invalidvarcomb[k1]){ |
| fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); | fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
| Line 6806 void printinggnuplot(char fileresu[], ch | Line 6980 void printinggnuplot(char fileresu[], ch |
| /* k=2+nlstate*(2*cpt-2); */ | /* k=2+nlstate*(2*cpt-2); */ |
| k=2+(nlstate+1)*(cpt-1); | k=2+(nlstate+1)*(cpt-1); |
| fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"EXP_"),cpt,k1,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"EXP_"),cpt,k1,nres); |
| fprintf(ficgp,"set label \"%s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",gplotlabel); | |
| fprintf(ficgp,"set ter svg size 640, 480\n\ | fprintf(ficgp,"set ter svg size 640, 480\n\ |
| plot [%.f:%.f] \"%s\" every :::%d::%d u 1:%d t \"e%d1\" w l",ageminpar,fage,subdirf2(fileresu,"E_"),k1-1,k1-1,k,cpt); | plot [%.f:%.f] \"%s\" every :::%d::%d u 1:%d t \"e%d1\" w l",ageminpar,fage,subdirf2(fileresu,"E_"),nres-1,nres-1,k,cpt); |
| /*fprintf(ficgp,",\"e%s\" every :::%d::%d u 1:($%d-2*$%d) \"\%%lf ",fileres,k1-1,k1-1,k,k+1); | /*fprintf(ficgp,",\"e%s\" every :::%d::%d u 1:($%d-2*$%d) \"\%%lf ",fileres,k1-1,k1-1,k,k+1); |
| for (i=1; i<= nlstate*2 ; i ++) fprintf(ficgp,"\%%lf (\%%lf) "); | for (i=1; i<= nlstate*2 ; i ++) fprintf(ficgp,"\%%lf (\%%lf) "); |
| fprintf(ficgp,"\" t \"e%d1\" w l",cpt); | fprintf(ficgp,"\" t \"e%d1\" w l",cpt); |
| Line 6817 plot [%.f:%.f] \"%s\" every :::%d::%d u | Line 6992 plot [%.f:%.f] \"%s\" every :::%d::%d u |
| */ | */ |
| for (i=1; i< nlstate ; i ++) { | for (i=1; i< nlstate ; i ++) { |
| fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d%d\" w l",subdirf2(fileresu,"E_"),k1-1,k1-1,k+i,cpt,i+1); | fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d%d\" w l",subdirf2(fileresu,"E_"),nres-1,nres-1,k+i,cpt,i+1); |
| /* fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d%d\" w l",subdirf2(fileres,"e"),k1-1,k1-1,k+2*i,cpt,i+1);*/ | /* fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d%d\" w l",subdirf2(fileres,"e"),k1-1,k1-1,k+2*i,cpt,i+1);*/ |
| } | } |
| fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d.\" w l",subdirf2(fileresu,"E_"),k1-1,k1-1,k+nlstate,cpt); | fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d.\" w l",subdirf2(fileresu,"E_"),nres-1,nres-1,k+nlstate,cpt); |
| } | } |
| fprintf(ficgp,"\nunset label;\n"); | |
| } /* end nres */ | } /* end nres */ |
| } /* end kl 3eme */ | } /* end kl 3eme */ |
| Line 6833 plot [%.f:%.f] \"%s\" every :::%d::%d u | Line 7009 plot [%.f:%.f] \"%s\" every :::%d::%d u |
| if(m != 1 && TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state cpt*/ | for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state cpt*/ |
| strcpy(gplotlabel,"("); | |
| fprintf(ficgp,"\n#\n#\n# Survival functions in state j : 'LIJ_' files, cov=%d state=%d",k1, cpt); | fprintf(ficgp,"\n#\n#\n# Survival functions in state j : 'LIJ_' files, cov=%d state=%d",k1, cpt); |
| for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ | for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ | lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ |
| Line 6841 plot [%.f:%.f] \"%s\" every :::%d::%d u | Line 7018 plot [%.f:%.f] \"%s\" every :::%d::%d u |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
| vlv= nbcode[Tvaraff[k]][lv]; | vlv= nbcode[Tvaraff[k]][lv]; |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | } |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | } |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| if(invalidvarcomb[k1]){ | if(invalidvarcomb[k1]){ |
| fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); | fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
| Line 6852 plot [%.f:%.f] \"%s\" every :::%d::%d u | Line 7032 plot [%.f:%.f] \"%s\" every :::%d::%d u |
| } | } |
| fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJ_"),cpt,k1,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJ_"),cpt,k1,nres); |
| fprintf(ficgp,"set label \"Alive state %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",cpt,gplotlabel); | |
| fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability to be alive\" \n\ | fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability to be alive\" \n\ |
| set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); | set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
| k=3; | k=3; |
| Line 6867 set ter svg size 640, 480\nunset log y\n | Line 7048 set ter svg size 640, 480\nunset log y\n |
| fprintf(ficgp,"+$%d",k+l+j-1); | fprintf(ficgp,"+$%d",k+l+j-1); |
| fprintf(ficgp,")) t \"l(%d,%d)\" w l",i,cpt); | fprintf(ficgp,")) t \"l(%d,%d)\" w l",i,cpt); |
| } /* nlstate */ | } /* nlstate */ |
| fprintf(ficgp,"\nset out\n"); | fprintf(ficgp,"\nset out; unset label;\n"); |
| } /* end cpt state*/ | } /* end cpt state*/ |
| } /* end nres */ | } /* end nres */ |
| } /* end covariate k1 */ | } /* end covariate k1 */ |
| Line 6879 set ter svg size 640, 480\nunset log y\n | Line 7060 set ter svg size 640, 480\nunset log y\n |
| if(m != 1 && TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each inital state */ | for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each inital state */ |
| strcpy(gplotlabel,"("); | |
| fprintf(ficgp,"\n#\n#\n# Survival functions in state j and all livestates from state i by final state j: 'lij' files, cov=%d state=%d",k1, cpt); | fprintf(ficgp,"\n#\n#\n# Survival functions in state j and all livestates from state i by final state j: 'lij' files, cov=%d state=%d",k1, cpt); |
| for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ | for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ | lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ |
| Line 6887 set ter svg size 640, 480\nunset log y\n | Line 7069 set ter svg size 640, 480\nunset log y\n |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
| vlv= nbcode[Tvaraff[k]][lv]; | vlv= nbcode[Tvaraff[k]][lv]; |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | } |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | } |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| if(invalidvarcomb[k1]){ | if(invalidvarcomb[k1]){ |
| fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); | fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
| Line 6898 set ter svg size 640, 480\nunset log y\n | Line 7083 set ter svg size 640, 480\nunset log y\n |
| } | } |
| fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJT_"),cpt,k1,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJT_"),cpt,k1,nres); |
| fprintf(ficgp,"set label \"Alive state %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",cpt,gplotlabel); | |
| fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability to be alive\" \n\ | fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability to be alive\" \n\ |
| set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); | set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
| k=3; | k=3; |
| Line 6921 set ter svg size 640, 480\nunset log y\n | Line 7107 set ter svg size 640, 480\nunset log y\n |
| else | else |
| fprintf(ficgp,"$%d) t\"l(%d,.)\" w l",k+l,cpt); | fprintf(ficgp,"$%d) t\"l(%d,.)\" w l",k+l,cpt); |
| } | } |
| fprintf(ficgp,"\nset out\n"); | fprintf(ficgp,"\nset out; unset label;\n"); |
| } /* end cpt state*/ | } /* end cpt state*/ |
| } /* end covariate */ | } /* end covariate */ |
| } /* end nres */ | } /* end nres */ |
| Line 6933 set ter svg size 640, 480\nunset log y\n | Line 7119 set ter svg size 640, 480\nunset log y\n |
| if(m != 1 && TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state of arrival */ | for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state of arrival */ |
| strcpy(gplotlabel,"("); | |
| fprintf(ficgp,"\n#\n#\n#CV preval stable (period): 'pij' files, covariatecombination#=%d state=%d",k1, cpt); | fprintf(ficgp,"\n#\n#\n#CV preval stable (period): 'pij' files, covariatecombination#=%d state=%d",k1, cpt); |
| for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ | for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ | lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ |
| Line 6942 set ter svg size 640, 480\nunset log y\n | Line 7128 set ter svg size 640, 480\nunset log y\n |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
| vlv= nbcode[Tvaraff[k]][lv]; | vlv= nbcode[Tvaraff[k]][lv]; |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | } |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | } |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| if(invalidvarcomb[k1]){ | if(invalidvarcomb[k1]){ |
| fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); | fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
| Line 6953 set ter svg size 640, 480\nunset log y\n | Line 7142 set ter svg size 640, 480\nunset log y\n |
| } | } |
| fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"P_"),cpt,k1,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"P_"),cpt,k1,nres); |
| fprintf(ficgp,"set label \"Alive state %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",cpt,gplotlabel); | |
| fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ | fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ |
| set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); | set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
| k=3; /* Offset */ | k=3; /* Offset */ |
| Line 6967 set ter svg size 640, 480\nunset log y\n | Line 7157 set ter svg size 640, 480\nunset log y\n |
| fprintf(ficgp,"+$%d",k+l+j-1); | fprintf(ficgp,"+$%d",k+l+j-1); |
| fprintf(ficgp,")) t \"prev(%d,%d)\" w l",i,cpt); | fprintf(ficgp,")) t \"prev(%d,%d)\" w l",i,cpt); |
| } /* nlstate */ | } /* nlstate */ |
| fprintf(ficgp,"\nset out\n"); | fprintf(ficgp,"\nset out; unset label;\n"); |
| } /* end cpt state*/ | } /* end cpt state*/ |
| } /* end covariate */ | } /* end covariate */ |
| Line 6980 set ter svg size 640, 480\nunset log y\n | Line 7170 set ter svg size 640, 480\nunset log y\n |
| if(m != 1 && TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life ending state */ | for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life ending state */ |
| fprintf(ficgp,"\n#\n#\n#CV Back preval stable (period): 'pijb' files, covariatecombination#=%d state=%d",k1, cpt); | strcpy(gplotlabel,"("); |
| fprintf(ficgp,"\n#\n#\n#CV Back preval stable (period): 'pijb' files, covariatecombination#=%d state=%d",k1, cpt); | |
| for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ | for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ | lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ |
| /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ | /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
| Line 6988 set ter svg size 640, 480\nunset log y\n | Line 7179 set ter svg size 640, 480\nunset log y\n |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
| vlv= nbcode[Tvaraff[k]][lv]; | vlv= nbcode[Tvaraff[k]][lv]; |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | } |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | } |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| if(invalidvarcomb[k1]){ | if(invalidvarcomb[k1]){ |
| fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); | fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
| Line 6999 set ter svg size 640, 480\nunset log y\n | Line 7193 set ter svg size 640, 480\nunset log y\n |
| } | } |
| fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"PB_"),cpt,k1,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"PB_"),cpt,k1,nres); |
| fprintf(ficgp,"set label \"Ending alive state %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",cpt,gplotlabel); | |
| fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ | fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ |
| set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); | set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
| k=3; /* Offset */ | k=3; /* Offset */ |
| Line 7017 set ter svg size 640, 480\nunset log y\n | Line 7212 set ter svg size 640, 480\nunset log y\n |
| /* /\* fprintf(ficgp,"+$%d",k+l+j-1); *\/ */ | /* /\* fprintf(ficgp,"+$%d",k+l+j-1); *\/ */ |
| fprintf(ficgp,") t \"bprev(%d,%d)\" w l",i,cpt); | fprintf(ficgp,") t \"bprev(%d,%d)\" w l",i,cpt); |
| } /* nlstate */ | } /* nlstate */ |
| fprintf(ficgp,"\nset out\n"); | fprintf(ficgp,"\nset out; unset label;\n"); |
| } /* end cpt state*/ | } /* end cpt state*/ |
| } /* end covariate */ | } /* end covariate */ |
| } /* End if backcast */ | } /* End if backcast */ |
| Line 7031 set ter svg size 640, 480\nunset log y\n | Line 7226 set ter svg size 640, 480\nunset log y\n |
| if(m != 1 && TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ | for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
| strcpy(gplotlabel,"("); | |
| fprintf(ficgp,"\n#\n#\n#Projection of prevalence to stable (period): 'PROJ_' files, covariatecombination#=%d state=%d",k1, cpt); | fprintf(ficgp,"\n#\n#\n#Projection of prevalence to stable (period): 'PROJ_' files, covariatecombination#=%d state=%d",k1, cpt); |
| for (k=1; k<=cptcoveff; k++){ /* For each correspondig covariate value */ | for (k=1; k<=cptcoveff; k++){ /* For each correspondig covariate value */ |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate value corresponding to k1 combination and kth covariate */ | lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate value corresponding to k1 combination and kth covariate */ |
| Line 7039 set ter svg size 640, 480\nunset log y\n | Line 7235 set ter svg size 640, 480\nunset log y\n |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
| vlv= nbcode[Tvaraff[k]][lv]; | vlv= nbcode[Tvaraff[k]][lv]; |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | } |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | } |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| if(invalidvarcomb[k1]){ | if(invalidvarcomb[k1]){ |
| fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); | fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
| Line 7051 set ter svg size 640, 480\nunset log y\n | Line 7250 set ter svg size 640, 480\nunset log y\n |
| fprintf(ficgp,"# hpijx=probability over h years, hp.jx is weighted by observed prev\n "); | fprintf(ficgp,"# hpijx=probability over h years, hp.jx is weighted by observed prev\n "); |
| fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres); |
| fprintf(ficgp,"set label \"Alive state %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",cpt,gplotlabel); | |
| fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Prevalence\" \n\ | fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Prevalence\" \n\ |
| set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); | set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
| for (i=1; i<= nlstate+1 ; i ++){ /* nlstate +1 p11 p21 p.1 */ | for (i=1; i<= nlstate+1 ; i ++){ /* nlstate +1 p11 p21 p.1 */ |
| Line 7113 set ter svg size 640, 480\nunset log y\n | Line 7313 set ter svg size 640, 480\nunset log y\n |
| } | } |
| } /* end if covariate */ | } /* end if covariate */ |
| } /* nlstate */ | } /* nlstate */ |
| fprintf(ficgp,"\nset out\n"); | fprintf(ficgp,"\nset out; unset label;\n"); |
| } /* end cpt state*/ | } /* end cpt state*/ |
| } /* end covariate */ | } /* end covariate */ |
| } /* End if prevfcast */ | } /* End if prevfcast */ |
| Line 7156 set ter svg size 640, 480\nunset log y\n | Line 7356 set ter svg size 640, 480\nunset log y\n |
| fprintf(ficgp,"#Number of graphics: first is logit, 2nd is probabilities, third is incidences per year\n"); | fprintf(ficgp,"#Number of graphics: first is logit, 2nd is probabilities, third is incidences per year\n"); |
| fprintf(ficgp,"#model=%s \n",model); | fprintf(ficgp,"#model=%s \n",model); |
| fprintf(ficgp,"# Type of graphic ng=%d\n",ng); | fprintf(ficgp,"# Type of graphic ng=%d\n",ng); |
| fprintf(ficgp,"# jk=1 to 2^%d=%d\n",cptcoveff,m);/* to be checked */ | fprintf(ficgp,"# k1=1 to 2^%d=%d\n",cptcoveff,m);/* to be checked */ |
| for(jk=1; jk <=m; jk++) /* For each combination of covariate */ | for(k1=1; k1 <=m; k1++) /* For each combination of covariate */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(m != 1 && TKresult[nres]!= jk) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| fprintf(ficgp,"# Combination of dummy jk=%d and ",jk); | fprintf(ficgp,"\n\n# Combination of dummy k1=%d which is ",k1); |
| strcpy(gplotlabel,"("); | |
| sprintf(gplotlabel+strlen(gplotlabel)," Dummy combination %d ",k1); | |
| for (k=1; k<=cptcoveff; k++){ /* For each correspondig covariate value */ | |
| lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate value corresponding to k1 combination and kth covariate */ | |
| /* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ | |
| /* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ | |
| /* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ | |
| vlv= nbcode[Tvaraff[k]][lv]; | |
| fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); | |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); | |
| } | |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
| sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); | |
| } | } |
| strcpy(gplotlabel+strlen(gplotlabel),")"); | |
| fprintf(ficgp,"\n#\n"); | fprintf(ficgp,"\n#\n"); |
| fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" ",subdirf2(optionfilefiname,"PE_"),jk,ng,nres); | fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" ",subdirf2(optionfilefiname,"PE_"),k1,ng,nres); |
| fprintf(ficgp,"\nset label \"%s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",gplotlabel); | |
| fprintf(ficgp,"\nset ter svg size 640, 480 "); | fprintf(ficgp,"\nset ter svg size 640, 480 "); |
| if (ng==1){ | if (ng==1){ |
| fprintf(ficgp,"\nset ylabel \"Value of the logit of the model\"\n"); /* exp(a12+b12*x) could be nice */ | fprintf(ficgp,"\nset ylabel \"Value of the logit of the model\"\n"); /* exp(a12+b12*x) could be nice */ |
| Line 7216 set ter svg size 640, 480\nunset log y\n | Line 7430 set ter svg size 640, 480\nunset log y\n |
| fprintf(ficgp,"+p%d*%d*x",i+j+2+nagesqr-1,Tinvresult[nres][Tvar[j]]);; | fprintf(ficgp,"+p%d*%d*x",i+j+2+nagesqr-1,Tinvresult[nres][Tvar[j]]);; |
| }else{ /* quantitative */ | }else{ /* quantitative */ |
| fprintf(ficgp,"+p%d*%f*x",i+j+2+nagesqr-1,Tqinvresult[nres][Tvar[j]]); /* Tqinvresult in decoderesult */ | fprintf(ficgp,"+p%d*%f*x",i+j+2+nagesqr-1,Tqinvresult[nres][Tvar[j]]); /* Tqinvresult in decoderesult */ |
| /* fprintf(ficgp,"+p%d*%d*x",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(jk,Tvar[j-2])]); */ | /* fprintf(ficgp,"+p%d*%d*x",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(k1,Tvar[j-2])]); */ |
| } | } |
| ij++; | ij++; |
| } | } |
| Line 7225 set ter svg size 640, 480\nunset log y\n | Line 7439 set ter svg size 640, 480\nunset log y\n |
| if(ijp <=cptcovprod) { /* Product */ | if(ijp <=cptcovprod) { /* Product */ |
| if(DummyV[Tvard[ijp][1]]==0){/* Vn is dummy */ | if(DummyV[Tvard[ijp][1]]==0){/* Vn is dummy */ |
| if(DummyV[Tvard[ijp][2]]==0){/* Vn and Vm are dummy */ | if(DummyV[Tvard[ijp][2]]==0){/* Vn and Vm are dummy */ |
| /* fprintf(ficgp,"+p%d*%d*%d",i+j+2+nagesqr-1,nbcode[Tvard[ijp][1]][codtabm(jk,j)],nbcode[Tvard[ijp][2]][codtabm(jk,j)]); */ | /* fprintf(ficgp,"+p%d*%d*%d",i+j+2+nagesqr-1,nbcode[Tvard[ijp][1]][codtabm(k1,j)],nbcode[Tvard[ijp][2]][codtabm(k1,j)]); */ |
| fprintf(ficgp,"+p%d*%d*%d",i+j+2+nagesqr-1,Tinvresult[nres][Tvard[ijp][1]],Tinvresult[nres][Tvard[ijp][2]]); | fprintf(ficgp,"+p%d*%d*%d",i+j+2+nagesqr-1,Tinvresult[nres][Tvard[ijp][1]],Tinvresult[nres][Tvard[ijp][2]]); |
| }else{ /* Vn is dummy and Vm is quanti */ | }else{ /* Vn is dummy and Vm is quanti */ |
| /* fprintf(ficgp,"+p%d*%d*%f",i+j+2+nagesqr-1,nbcode[Tvard[ijp][1]][codtabm(jk,j)],Tqinvresult[nres][Tvard[ijp][2]]); */ | /* fprintf(ficgp,"+p%d*%d*%f",i+j+2+nagesqr-1,nbcode[Tvard[ijp][1]][codtabm(k1,j)],Tqinvresult[nres][Tvard[ijp][2]]); */ |
| fprintf(ficgp,"+p%d*%d*%f",i+j+2+nagesqr-1,Tinvresult[nres][Tvard[ijp][1]],Tqinvresult[nres][Tvard[ijp][2]]); | fprintf(ficgp,"+p%d*%d*%f",i+j+2+nagesqr-1,Tinvresult[nres][Tvard[ijp][1]],Tqinvresult[nres][Tvard[ijp][2]]); |
| } | } |
| }else{ /* Vn*Vm Vn is quanti */ | }else{ /* Vn*Vm Vn is quanti */ |
| Line 7241 set ter svg size 640, 480\nunset log y\n | Line 7455 set ter svg size 640, 480\nunset log y\n |
| ijp++; | ijp++; |
| } | } |
| } else{ /* simple covariate */ | } else{ /* simple covariate */ |
| /* fprintf(ficgp,"+p%d*%d",i+j+2+nagesqr-1,nbcode[Tvar[j]][codtabm(jk,j)]); /\* Valgrind bug nbcode *\/ */ | /* fprintf(ficgp,"+p%d*%d",i+j+2+nagesqr-1,nbcode[Tvar[j]][codtabm(k1,j)]); /\* Valgrind bug nbcode *\/ */ |
| if(Dummy[j]==0){ | if(Dummy[j]==0){ |
| fprintf(ficgp,"+p%d*%d",i+j+2+nagesqr-1,Tinvresult[nres][Tvar[j]]); /* */ | fprintf(ficgp,"+p%d*%d",i+j+2+nagesqr-1,Tinvresult[nres][Tvar[j]]); /* */ |
| }else{ /* quantitative */ | }else{ /* quantitative */ |
| fprintf(ficgp,"+p%d*%f",i+j+2+nagesqr-1,Tqinvresult[nres][Tvar[j]]); /* */ | fprintf(ficgp,"+p%d*%f",i+j+2+nagesqr-1,Tqinvresult[nres][Tvar[j]]); /* */ |
| /* fprintf(ficgp,"+p%d*%d*x",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(jk,Tvar[j-2])]); */ | /* fprintf(ficgp,"+p%d*%d*x",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(k1,Tvar[j-2])]); */ |
| } | } |
| } /* end simple */ | } /* end simple */ |
| } /* end j */ | } /* end j */ |
| Line 7259 set ter svg size 640, 480\nunset log y\n | Line 7473 set ter svg size 640, 480\nunset log y\n |
| if(ng != 1){ | if(ng != 1){ |
| fprintf(ficgp,")/(1"); | fprintf(ficgp,")/(1"); |
| for(k1=1; k1 <=nlstate; k1++){ | for(cpt=1; cpt <=nlstate; cpt++){ |
| if(nagesqr==0) | if(nagesqr==0) |
| fprintf(ficgp,"+exp(p%d+p%d*x",k3+(k1-1)*ncovmodel,k3+(k1-1)*ncovmodel+1); | fprintf(ficgp,"+exp(p%d+p%d*x",k3+(cpt-1)*ncovmodel,k3+(cpt-1)*ncovmodel+1); |
| else /* nagesqr =1 */ | else /* nagesqr =1 */ |
| fprintf(ficgp,"+exp(p%d+p%d*x+p%d*x*x",k3+(k1-1)*ncovmodel,k3+(k1-1)*ncovmodel+1,k3+(k1-1)*ncovmodel+1+nagesqr); | fprintf(ficgp,"+exp(p%d+p%d*x+p%d*x*x",k3+(cpt-1)*ncovmodel,k3+(cpt-1)*ncovmodel+1,k3+(cpt-1)*ncovmodel+1+nagesqr); |
| ij=1; | ij=1; |
| for(j=3; j <=ncovmodel-nagesqr; j++){ | for(j=3; j <=ncovmodel-nagesqr; j++){ |
| if((j-2)==Tage[ij]) { /* Bug valgrind */ | if((j-2)==Tage[ij]) { /* Bug valgrind */ |
| if(ij <=cptcovage) { /* Bug valgrind */ | if(ij <=cptcovage) { /* Bug valgrind */ |
| fprintf(ficgp,"+p%d*%d*x",k3+(k1-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(jk,j-2)]); | fprintf(ficgp,"+p%d*%d*x",k3+(cpt-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(k1,j-2)]); |
| /* fprintf(ficgp,"+p%d*%d*x",k3+(k1-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(jk,Tvar[j-2])]); */ | /* fprintf(ficgp,"+p%d*%d*x",k3+(cpt-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(k1,Tvar[j-2])]); */ |
| ij++; | ij++; |
| } | } |
| } | } |
| else | else |
| fprintf(ficgp,"+p%d*%d",k3+(k1-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(jk,j-2)]);/* Valgrind bug nbcode */ | fprintf(ficgp,"+p%d*%d",k3+(cpt-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(k1,j-2)]);/* Valgrind bug nbcode */ |
| } | } |
| fprintf(ficgp,")"); | fprintf(ficgp,")"); |
| } | } |
| Line 7295 set ter svg size 640, 480\nunset log y\n | Line 7509 set ter svg size 640, 480\nunset log y\n |
| i=i+ncovmodel; | i=i+ncovmodel; |
| } /* end k */ | } /* end k */ |
| } /* end k2 */ | } /* end k2 */ |
| fprintf(ficgp,"\n set out\n"); | fprintf(ficgp,"\n set out; unset label;\n"); |
| } /* end jk */ | } /* end k1 */ |
| } /* end ng */ | } /* end ng */ |
| /* avoid: */ | /* avoid: */ |
| fflush(ficgp); | fflush(ficgp); |
| Line 9091 int calandcheckages(int imx, int maxwav, | Line 9305 int calandcheckages(int imx, int maxwav, |
| *nberr = *nberr + 1; | *nberr = *nberr + 1; |
| if(firstone == 0){ | if(firstone == 0){ |
| firstone=1; | firstone=1; |
| printf("Error! Date of death (month %2d and year %4d) of individual %ld on line %d was unknown, you must set an arbitrary year of death or he/she is skipped and results can be biased (%d) because status is a death state %d at wave %d. Wave dropped.\nOther similar cases in log file\n",(int)moisdc[i],(int)andc[i],num[i],i, *nberr,s[m][i],m); | printf("Warning (#%d)! Date of death (month %2d and year %4d) of individual %ld on line %d was unknown but status is a death state %d at wave %d. If you don't know the vital status, please enter -2. If he/she is still alive but don't know the state, please code with '-1 or '.'. Here, we do not believe in a death, skipped.\nOther similar cases in log file\n", *nberr,(int)moisdc[i],(int)andc[i],num[i],i,s[m][i],m); |
| } | } |
| fprintf(ficlog,"Error! Date of death (month %2d and year %4d) of individual %ld on line %d was unknown, you must set an arbitrary year of death or he/she is skipped and results can be biased (%d) because status is a death state %d at wave %d. Wave dropped.\n",(int)moisdc[i],(int)andc[i],num[i],i, *nberr,s[m][i],m); | fprintf(ficlog,"Warning (#%d)! Date of death (month %2d and year %4d) of individual %ld on line %d was unknown but status is a death state %d at wave %d. If you don't know the vital status, please enter -2. If he/she is still alive but don't know the state, please code with '-1 or '.'. Here, we do not believe in a death, skipped.\n", *nberr,(int)moisdc[i],(int)andc[i],num[i],i,s[m][i],m); |
| s[m][i]=-1; | s[m][i]=-1; /* Droping the death status */ |
| } | } |
| if((int)moisdc[i]==99 && (int)andc[i]!=9999 && s[m][i]>nlstate){ | if((int)moisdc[i]==99 && (int)andc[i]!=9999 && s[m][i]>nlstate){ |
| (*nberr)++; | (*nberr)++; |
| printf("Error! Month of death of individual %ld on line %d was unknown %2d, you should set it otherwise the information on the death is skipped and results are biased.\n",num[i],i,(int)moisdc[i]); | printf("Error (#%d)! Month of death of individual %ld on line %d was unknown (%2d) (year of death is %4d) and status is a death state %d at wave %d. Please impute an arbitrary (or not) month and rerun. Currently this transition to death will be skipped (status is set to -2).\nOther similar cases in log file\n", *nberr, num[i],i,(int)moisdc[i],(int)andc[i],s[m][i],m); |
| fprintf(ficlog,"Error! Month of death of individual %ld on line %d was unknown %f, you should set it otherwise the information on the death is skipped and results are biased.\n",num[i],i,moisdc[i]); | fprintf(ficlog,"Error (#%d)! Month of death of individual %ld on line %d was unknown (%2d) (year of death is %4d) and status is a death state %d at wave %d. Please impute an arbitrary (or not) month and rerun. Currently this transition to death will be skipped (status is set to -2).\n", *nberr, num[i],i,(int)moisdc[i],(int)andc[i],s[m][i],m); |
| s[m][i]=-1; /* We prefer to skip it (and to skip it in version 0.8a1 too */ | s[m][i]=-2; /* We prefer to skip it (and to skip it in version 0.8a1 too */ |
| } | } |
| } | } |
| } | } |
| Line 9702 int hPijx(double *p, int bage, int fage) | Line 9916 int hPijx(double *p, int bage, int fage) |
| fprintf(ficrespijb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); | fprintf(ficrespijb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
| } | } |
| fprintf(ficrespijb,"******\n"); | fprintf(ficrespijb,"******\n"); |
| if(invalidvarcomb[k]){ | if(invalidvarcomb[k]){ /* Is it necessary here? */ |
| fprintf(ficrespijb,"\n#Combination (%d) ignored because no cases \n",k); | fprintf(ficrespijb,"\n#Combination (%d) ignored because no cases \n",k); |
| continue; | continue; |
| } | } |
| Line 9766 int main(int argc, char *argv[]) | Line 9980 int main(int argc, char *argv[]) |
| int NDIM=2; | int NDIM=2; |
| int vpopbased=0; | int vpopbased=0; |
| int nres=0; | int nres=0; |
| int endishere=0; | |
| char ca[32], cb[32]; | char ca[32], cb[32]; |
| /* FILE *fichtm; *//* Html File */ | /* FILE *fichtm; *//* Html File */ |
| Line 10047 int main(int argc, char *argv[]) | Line 10262 int main(int argc, char *argv[]) |
| break; | break; |
| } | } |
| if((num_filled=sscanf(line,"model=1+age%[^.\n]", model)) !=EOF){ | if((num_filled=sscanf(line,"model=1+age%[^.\n]", model)) !=EOF){ |
| if (num_filled == 0) | if (num_filled == 0){ |
| model[0]='\0'; | printf("ERROR %d: Model should be at minimum 'model=1+age.' WITHOUT space:'%s'\n",num_filled, line); |
| else if (num_filled != 1){ | fprintf(ficlog,"ERROR %d: Model should be at minimum 'model=1+age.' WITHOUT space:'%s'\n",num_filled, line); |
| model[0]='\0'; | |
| goto end; | |
| } else if (num_filled != 1){ | |
| printf("ERROR %d: Model should be at minimum 'model=1+age.' %s\n",num_filled, line); | printf("ERROR %d: Model should be at minimum 'model=1+age.' %s\n",num_filled, line); |
| fprintf(ficlog,"ERROR %d: Model should be at minimum 'model=1+age.' %s\n",num_filled, line); | fprintf(ficlog,"ERROR %d: Model should be at minimum 'model=1+age.' %s\n",num_filled, line); |
| model[0]='\0'; | model[0]='\0'; |
| Line 11140 Please run with mle=-1 to get a correct | Line 11358 Please run with mle=-1 to get a correct |
| fprintf(ficlog,"Error: Not 7 (data)parameters in line but %d, for example:begin-prev-date=1/1/1990 end-prev-date=1/6/2004 mov_average=0\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | fprintf(ficlog,"Error: Not 7 (data)parameters in line but %d, for example:begin-prev-date=1/1/1990 end-prev-date=1/6/2004 mov_average=0\n, your line=%s . Probably you are running an older format.\n",num_filled,line); |
| goto end; | goto end; |
| } | } |
| /* fscanf(ficpar,"begin-prev-date=%lf/%lf/%lf end-prev-date=%lf/%lf/%lf mov_average=%d\n",&jprev1, &mprev1,&anprev1,&jprev2, &mprev2,&anprev2,&mobilav); */ | |
| printf("begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); | printf("begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); |
| fprintf(ficparo,"begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); | fprintf(ficparo,"begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); |
| fprintf(ficres,"begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); | fprintf(ficres,"begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); |
| printf("begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); | |
| fprintf(ficlog,"begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); | fprintf(ficlog,"begin-prev-date=%.lf/%.lf/%.lf end-prev-date=%.lf/%.lf/%.lf mov_average=%d\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,mobilav); |
| } | } |
| Line 11176 Please run with mle=-1 to get a correct | Line 11392 Please run with mle=-1 to get a correct |
| fprintf(ficres,"pop_based=%d\n",popbased); | fprintf(ficres,"pop_based=%d\n",popbased); |
| } | } |
| while(fgets(line, MAXLINE, ficpar)) { | |
| /* If line starts with a # it is a comment */ | |
| if (line[0] == '#') { | |
| numlinepar++; | |
| fputs(line,stdout); | |
| fputs(line,ficparo); | |
| fputs(line,ficlog); | |
| continue; | |
| }else | |
| break; | |
| } | |
| /* while((c=getc(ficpar))=='#' && c!= EOF){ */ | |
| /* ungetc(c,ficpar); */ | |
| /* fgets(line, MAXLINE, ficpar); */ | |
| /* fputs(line,stdout); */ | |
| /* fputs(line,ficres); */ | |
| /* fputs(line,ficparo); */ | |
| /* } */ | |
| /* ungetc(c,ficpar); */ | |
| /* fscanf(ficpar,"prevforecast=%d starting-proj-date=%lf/%lf/%lf final-proj-date=%lf/%lf/%lf mobil_average=%d\n",&prevfcast,&jproj1,&mproj1,&anproj1,&jproj2,&mproj2,&anproj2,&mobilavproj); */ | |
| if((num_filled=sscanf(line,"prevforecast=%d starting-proj-date=%lf/%lf/%lf final-proj-date=%lf/%lf/%lf mobil_average=%d\n",&prevfcast,&jproj1,&mproj1,&anproj1,&jproj2,&mproj2,&anproj2,&mobilavproj)) !=EOF){ | |
| if (num_filled != 8) { | |
| printf("Error: Not 8 (data)parameters in line but %d, for example:prevforecast=1 starting-proj-date=1/1/1990 final-proj-date=1/1/2000 mobil_average=0\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | |
| fprintf(ficlog,"Error: Not 8 (data)parameters in line but %d, for example:prevforecast=1 starting-proj-date=1/1/1990 final-proj-date=1/1/2000 mov_average=0\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | |
| goto end; | |
| } | |
| fprintf(ficparo,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); | |
| printf("prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); | |
| fprintf(ficlog,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); | |
| fprintf(ficres,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); | |
| /* day and month of proj2 are not used but only year anproj2.*/ | |
| } | |
| while(fgets(line, MAXLINE, ficpar)) { | |
| /* If line starts with a # it is a comment */ | |
| if (line[0] == '#') { | |
| numlinepar++; | |
| fputs(line,stdout); | |
| fputs(line,ficparo); | |
| fputs(line,ficlog); | |
| continue; | |
| }else | |
| break; | |
| } | |
| /* while((c=getc(ficpar))=='#' && c!= EOF){ */ | |
| /* ungetc(c,ficpar); */ | |
| /* fgets(line, MAXLINE, ficpar); */ | |
| /* fputs(line,stdout); */ | |
| /* fputs(line,ficparo); */ | |
| /* fputs(line,ficres); */ | |
| /* } */ | |
| /* ungetc(c,ficpar); */ | |
| fscanf(ficpar,"backcast=%d starting-back-date=%lf/%lf/%lf final-back-date=%lf/%lf/%lf mobil_average=%d\n",&backcast,&jback1,&mback1,&anback1,&jback2,&mback2,&anback2,&mobilavproj); | |
| if((num_filled=sscanf(line,"backcast=%d starting-back-date=%lf/%lf/%lf final-back-date=%lf/%lf/%lf mobil_average=%d\n",&backcast,&jback1,&mback1,&anback1,&jback2,&mback2,&anback2,&mobilavproj)) !=EOF){ | |
| if (num_filled != 8) { | |
| printf("Error: Not 8 (data)parameters in line but %d, for example:backcast=1 starting-back-date=1/1/1990 finloal-back-date=1/1/1970 mobil_average=1\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | |
| fprintf(ficlog,"Error: Not 8 (data)parameters in line but %d, for example:backcast=1 starting-back-date=1/1/1990 finloal-back-date=1/1/1970 mobil_average=1\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | |
| goto end; | |
| } | |
| printf("backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); | |
| fprintf(ficparo,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); | |
| fprintf(ficlog,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); | |
| fprintf(ficres,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); | |
| /* day and month of proj2 are not used but only year anproj2.*/ | |
| } | |
| /* Results */ | /* Results */ |
| nresult=0; | nresult=0; |
| while(fgets(line, MAXLINE, ficpar)) { | do{ |
| /* If line starts with a # it is a comment */ | if(!fgets(line, MAXLINE, ficpar)){ |
| if (line[0] == '#') { | endishere=1; |
| parameterline=14; | |
| }else if (line[0] == '#') { | |
| /* If line starts with a # it is a comment */ | |
| numlinepar++; | numlinepar++; |
| fputs(line,stdout); | fputs(line,stdout); |
| fputs(line,ficparo); | fputs(line,ficparo); |
| fputs(line,ficlog); | fputs(line,ficlog); |
| fputs(line,ficres); | |
| continue; | continue; |
| }else | }else if(sscanf(line,"prevforecast=%[^\n]\n",modeltemp)) |
| break; | parameterline=11; |
| } | else if(sscanf(line,"backcast=%[^\n]\n",modeltemp)) |
| if (!feof(ficpar)) | parameterline=12; |
| while((num_filled=sscanf(line,"result:%[^\n]\n",resultline)) !=EOF){ | else if(sscanf(line,"result:%[^\n]\n",modeltemp)) |
| if (num_filled == 0){ | parameterline=13; |
| resultline[0]='\0'; | else{ |
| printf("Warning %d: no result line should be at minimum 'result: V2=0 V1=1 or result:.\n%s\n", num_filled, line); | parameterline=14; |
| break; | |
| } else if (num_filled != 1){ | |
| printf("ERROR %d: result line should be at minimum 'result: V2=0 V1=1 or result:.' %s\n",num_filled, line); | |
| } | |
| nresult++; /* Sum of resultlines */ | |
| printf("Result %d: result=%s\n",nresult, resultline); | |
| if(nresult > MAXRESULTLINES){ | |
| printf("ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\n",MAXRESULTLINES,nresult); | |
| fprintf(ficlog,"ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\n",MAXRESULTLINES,nresult); | |
| goto end; | |
| } | |
| decoderesult(resultline, nresult); /* Fills TKresult[nresult] combination and Tresult[nresult][k4+1] combination values */ | |
| fprintf(ficparo,"result: %s\n",resultline); | |
| fprintf(ficres,"result: %s\n",resultline); | |
| fprintf(ficlog,"result: %s\n",resultline); | |
| while(fgets(line, MAXLINE, ficpar)) { | |
| /* If line starts with a # it is a comment */ | |
| if (line[0] == '#') { | |
| numlinepar++; | |
| fputs(line,stdout); | |
| fputs(line,ficparo); | |
| fputs(line,ficres); | |
| fputs(line,ficlog); | |
| continue; | |
| }else | |
| break; | |
| } | } |
| if (feof(ficpar)) | switch (parameterline){ |
| case 11: | |
| if((num_filled=sscanf(line,"prevforecast=%d starting-proj-date=%lf/%lf/%lf final-proj-date=%lf/%lf/%lf mobil_average=%d\n",&prevfcast,&jproj1,&mproj1,&anproj1,&jproj2,&mproj2,&anproj2,&mobilavproj)) !=EOF){ | |
| if (num_filled != 8) { | |
| printf("Error: Not 8 (data)parameters in line but %d, for example:prevforecast=1 starting-proj-date=1/1/1990 final-proj-date=1/1/2000 mobil_average=0\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | |
| fprintf(ficlog,"Error: Not 8 (data)parameters in line but %d, for example:prevforecast=1 starting-proj-date=1/1/1990 final-proj-date=1/1/2000 mov_average=0\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | |
| goto end; | |
| } | |
| fprintf(ficparo,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); | |
| printf("prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); | |
| fprintf(ficlog,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); | |
| fprintf(ficres,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); | |
| /* day and month of proj2 are not used but only year anproj2.*/ | |
| } | |
| break; | break; |
| else{ /* Processess output results for this combination of covariate values */ | case 12: |
| } | /*fscanf(ficpar,"backcast=%d starting-back-date=%lf/%lf/%lf final-back-date=%lf/%lf/%lf mobil_average=%d\n",&backcast,&jback1,&mback1,&anback1,&jback2,&mback2,&anback2,&mobilavproj);*/ |
| } /* end while */ | if((num_filled=sscanf(line,"backcast=%d starting-back-date=%lf/%lf/%lf final-back-date=%lf/%lf/%lf mobil_average=%d\n",&backcast,&jback1,&mback1,&anback1,&jback2,&mback2,&anback2,&mobilavproj)) !=EOF){ |
| if (num_filled != 8) { | |
| printf("Error: Not 8 (data)parameters in line but %d, for example:backcast=1 starting-back-date=1/1/1990 final-back-date=1/1/1970 mobil_average=1\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | |
| fprintf(ficlog,"Error: Not 8 (data)parameters in line but %d, for example:backcast=1 starting-back-date=1/1/1990 final-back-date=1/1/1970 mobil_average=1\n, your line=%s . Probably you are running an older format.\n",num_filled,line); | |
| goto end; | |
| } | |
| printf("backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); | |
| fprintf(ficparo,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); | |
| fprintf(ficlog,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); | |
| fprintf(ficres,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); | |
| /* day and month of proj2 are not used but only year anproj2.*/ | |
| } | |
| break; | |
| case 13: | |
| if((num_filled=sscanf(line,"result:%[^\n]\n",resultline)) !=EOF){ | |
| if (num_filled == 0){ | |
| resultline[0]='\0'; | |
| printf("Warning %d: no result line! It should be at minimum 'result: V2=0 V1=1 or result:.\n%s\n", num_filled, line); | |
| fprintf(ficlog,"Warning %d: no result line! It should be at minimum 'result: V2=0 V1=1 or result:.\n%s\n", num_filled, line); | |
| break; | |
| } else if (num_filled != 1){ | |
| printf("ERROR %d: result line! It should be at minimum 'result: V2=0 V1=1 or result:.' %s\n",num_filled, line); | |
| fprintf(ficlog,"ERROR %d: result line! It should be at minimum 'result: V2=0 V1=1 or result:.' %s\n",num_filled, line); | |
| } | |
| nresult++; /* Sum of resultlines */ | |
| printf("Result %d: result=%s\n",nresult, resultline); | |
| if(nresult > MAXRESULTLINES){ | |
| printf("ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\n",MAXRESULTLINES,nresult); | |
| fprintf(ficlog,"ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\n",MAXRESULTLINES,nresult); | |
| goto end; | |
| } | |
| decoderesult(resultline, nresult); /* Fills TKresult[nresult] combination and Tresult[nresult][k4+1] combination values */ | |
| fprintf(ficparo,"result: %s\n",resultline); | |
| fprintf(ficres,"result: %s\n",resultline); | |
| fprintf(ficlog,"result: %s\n",resultline); | |
| break; | |
| case 14: | |
| if(ncovmodel >2 && nresult==0 ){ | |
| printf("ERROR: no result lines! It should be at minimum 'result: V2=0 V1=1 or result:.' %s\n",line); | |
| goto end; | |
| } | |
| break; | |
| default: | |
| nresult=1; | |
| decoderesult(".",nresult ); /* No covariate */ | |
| } | |
| } /* End switch parameterline */ | |
| }while(endishere==0); /* End do */ | |
| /* freqsummary(fileres, agemin, agemax, s, agev, nlstate, imx,Tvaraff,nbcode, ncodemax,mint,anint); */ | /* freqsummary(fileres, agemin, agemax, s, agev, nlstate, imx,Tvaraff,nbcode, ncodemax,mint,anint); */ |
| /* ,dateprev1,dateprev2,jprev1, mprev1,anprev1,jprev2, mprev2,anprev2); */ | /* ,dateprev1,dateprev2,jprev1, mprev1,anprev1,jprev2, mprev2,anprev2); */ |
| Line 11311 Please run with mle=-1 to get a correct | Line 11495 Please run with mle=-1 to get a correct |
| printinggnuplot(fileresu, optionfilefiname,ageminpar,agemaxpar,fage, prevfcast, backcast, pathc,p); | printinggnuplot(fileresu, optionfilefiname,ageminpar,agemaxpar,fage, prevfcast, backcast, pathc,p); |
| } | } |
| printinghtml(fileresu,title,datafile, firstpass, lastpass, stepm, weightopt, \ | printinghtml(fileresu,title,datafile, firstpass, lastpass, stepm, weightopt, \ |
| model,imx,jmin,jmax,jmean,rfileres,popforecast,prevfcast,backcast, estepm, \ | model,imx,jmin,jmax,jmean,rfileres,popforecast,mobilav,prevfcast,mobilavproj,backcast, estepm, \ |
| jprev1,mprev1,anprev1,dateprev1,jprev2,mprev2,anprev2,dateprev2); | jprev1,mprev1,anprev1,dateprev1,jprev2,mprev2,anprev2,dateprev2); |
| /*------------ free_vector -------------*/ | /*------------ free_vector -------------*/ |
| Line 11364 Please run with mle=-1 to get a correct | Line 11548 Please run with mle=-1 to get a correct |
| mobaverage=mobaverages; | mobaverage=mobaverages; |
| if (mobilav!=0) { | if (mobilav!=0) { |
| printf("Movingaveraging observed prevalence\n"); | printf("Movingaveraging observed prevalence\n"); |
| fprintf(ficlog,"Movingaveraging observed prevalence\n"); | |
| if (movingaverage(probs, ageminpar, agemaxpar, mobaverage, mobilav)!=0){ | if (movingaverage(probs, ageminpar, agemaxpar, mobaverage, mobilav)!=0){ |
| fprintf(ficlog," Error in movingaverage mobilav=%d\n",mobilav); | fprintf(ficlog," Error in movingaverage mobilav=%d\n",mobilav); |
| printf(" Error in movingaverage mobilav=%d\n",mobilav); | printf(" Error in movingaverage mobilav=%d\n",mobilav); |
| Line 11373 Please run with mle=-1 to get a correct | Line 11558 Please run with mle=-1 to get a correct |
| /* prevalence(probs, ageminpar, agemaxpar, s, agev, nlstate, imx, Tvar, nbcode, ncodemax, mint, anint, dateprev1, dateprev2, firstpass, lastpass); */ | /* prevalence(probs, ageminpar, agemaxpar, s, agev, nlstate, imx, Tvar, nbcode, ncodemax, mint, anint, dateprev1, dateprev2, firstpass, lastpass); */ |
| else if (mobilavproj !=0) { | else if (mobilavproj !=0) { |
| printf("Movingaveraging projected observed prevalence\n"); | printf("Movingaveraging projected observed prevalence\n"); |
| fprintf(ficlog,"Movingaveraging projected observed prevalence\n"); | |
| if (movingaverage(probs, ageminpar, agemaxpar, mobaverage, mobilavproj)!=0){ | if (movingaverage(probs, ageminpar, agemaxpar, mobaverage, mobilavproj)!=0){ |
| fprintf(ficlog," Error in movingaverage mobilavproj=%d\n",mobilavproj); | fprintf(ficlog," Error in movingaverage mobilavproj=%d\n",mobilavproj); |
| printf(" Error in movingaverage mobilavproj=%d\n",mobilavproj); | printf(" Error in movingaverage mobilavproj=%d\n",mobilavproj); |