|
|
| version 1.252, 2016/09/15 21:15:37 | version 1.253, 2016/12/15 11:59:41 |
|---|---|
| Line 1 | Line 1 |
| /* $Id$ | /* $Id$ |
| $State$ | $State$ |
| $Log$ | $Log$ |
| Revision 1.253 2016/12/15 11:59:41 brouard | |
| Summary: 0.99 in progress | |
| Revision 1.252 2016/09/15 21:15:37 brouard | Revision 1.252 2016/09/15 21:15:37 brouard |
| *** empty log message *** | *** empty log message *** |
| Line 4189 void pstamp(FILE *fichier) | Line 4192 void pstamp(FILE *fichier) |
| fprintf(fichier,"# %s.%s\n#IMaCh version %s, %s\n#%s\n# %s", optionfilefiname,optionfilext,version,copyright, fullversion, strstart); | fprintf(fichier,"# %s.%s\n#IMaCh version %s, %s\n#%s\n# %s", optionfilefiname,optionfilext,version,copyright, fullversion, strstart); |
| } | } |
| int linreg(int ifi, int ila, int *no, const double x[], const double y[], double* a, double* b, double* r, double* sa, double * sb) { | |
| /* y=a+bx regression */ | |
| double sumx = 0.0; /* sum of x */ | |
| double sumx2 = 0.0; /* sum of x**2 */ | |
| double sumxy = 0.0; /* sum of x * y */ | |
| double sumy = 0.0; /* sum of y */ | |
| double sumy2 = 0.0; /* sum of y**2 */ | |
| double sume2; /* sum of square or residuals */ | |
| double yhat; | |
| double denom=0; | |
| int i; | |
| int ne=*no; | |
| for ( i=ifi, ne=0;i<=ila;i++) { | |
| if(!isfinite(x[i]) || !isfinite(y[i])){ | |
| /* printf(" x[%d]=%f, y[%d]=%f\n",i,x[i],i,y[i]); */ | |
| continue; | |
| } | |
| ne=ne+1; | |
| sumx += x[i]; | |
| sumx2 += x[i]*x[i]; | |
| sumxy += x[i] * y[i]; | |
| sumy += y[i]; | |
| sumy2 += y[i]*y[i]; | |
| denom = (ne * sumx2 - sumx*sumx); | |
| /* printf("ne=%d, i=%d,x[%d]=%f, y[%d]=%f sumx=%f, sumx2=%f, sumxy=%f, sumy=%f, sumy2=%f, denom=%f\n",ne,i,i,x[i],i,y[i], sumx, sumx2,sumxy, sumy, sumy2,denom); */ | |
| } | |
| denom = (ne * sumx2 - sumx*sumx); | |
| if (denom == 0) { | |
| // vertical, slope m is infinity | |
| *b = INFINITY; | |
| *a = 0; | |
| if (r) *r = 0; | |
| return 1; | |
| } | |
| *b = (ne * sumxy - sumx * sumy) / denom; | |
| *a = (sumy * sumx2 - sumx * sumxy) / denom; | |
| if (r!=NULL) { | |
| *r = (sumxy - sumx * sumy / ne) / /* compute correlation coeff */ | |
| sqrt((sumx2 - sumx*sumx/ne) * | |
| (sumy2 - sumy*sumy/ne)); | |
| } | |
| *no=ne; | |
| for ( i=ifi, ne=0;i<=ila;i++) { | |
| if(!isfinite(x[i]) || !isfinite(y[i])){ | |
| /* printf(" x[%d]=%f, y[%d]=%f\n",i,x[i],i,y[i]); */ | |
| continue; | |
| } | |
| ne=ne+1; | |
| yhat = y[i] - *a -*b* x[i]; | |
| sume2 += yhat * yhat ; | |
| denom = (ne * sumx2 - sumx*sumx); | |
| /* printf("ne=%d, i=%d,x[%d]=%f, y[%d]=%f sumx=%f, sumx2=%f, sumxy=%f, sumy=%f, sumy2=%f, denom=%f\n",ne,i,i,x[i],i,y[i], sumx, sumx2,sumxy, sumy, sumy2,denom); */ | |
| } | |
| *sb = sqrt(sume2/(ne-2)/(sumx2 - sumx * sumx /ne)); | |
| *sa= *sb * sqrt(sumx2/ne); | |
| return 0; | |
| } | |
| /************ Frequencies ********************/ | /************ Frequencies ********************/ |
| void freqsummary(char fileres[], double p[], double pstart[], int iagemin, int iagemax, int **s, double **agev, int nlstate, int imx, \ | void freqsummary(char fileres[], double p[], double pstart[], int iagemin, int iagemax, int **s, double **agev, int nlstate, int imx, \ |
| int *Tvaraff, int *invalidvarcomb, int **nbcode, int *ncodemax,double **mint,double **anint, char strstart[], \ | int *Tvaraff, int *invalidvarcomb, int **nbcode, int *ncodemax,double **mint,double **anint, char strstart[], \ |
| 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, k, iv, jj=0; | int i, m, jk, j1, bool, z1,j, nj, nl, k, iv, jj=0; |
| int iind=0, iage=0; | int iind=0, iage=0; |
| int mi; /* Effective wave */ | int mi; /* Effective wave */ |
| int first; | int first; |
| double ***freq; /* Frequencies */ | double ***freq; /* Frequencies */ |
| double *x, *y, a,b,r, sa, sb; /* for regression, y=b+m*x and r is the correlation coefficient */ | |
| int no; | |
| double *meanq; | double *meanq; |
| double **meanqt; | double **meanqt; |
| double *pp, **prop, *posprop, *pospropt; | double *pp, **prop, *posprop, *pospropt; |
| Line 4252 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4322 Title=%s <br>Datafile=%s Firstpass=%d La |
| } | } |
| fprintf(ficresphtmfr,"Current page is file <a href=\"%s\">%s</a><br>\n\n<h4>Frequencies of all effective transitions of the model, by age at begin of transition, and covariate value at the begin of transition (if the covariate is a varying covariate) </h4>Unknown status is -1<br/>\n",fileresphtmfr, fileresphtmfr); | fprintf(ficresphtmfr,"Current page is file <a href=\"%s\">%s</a><br>\n\n<h4>Frequencies of all effective transitions of the model, by age at begin of transition, and covariate value at the begin of transition (if the covariate is a varying covariate) </h4>Unknown status is -1<br/>\n",fileresphtmfr, fileresphtmfr); |
| y= vector(iagemin-AGEMARGE,iagemax+4+AGEMARGE); | |
| x= vector(iagemin-AGEMARGE,iagemax+4+AGEMARGE); | |
| freq= ma3x(-5,nlstate+ndeath,-5,nlstate+ndeath,iagemin-AGEMARGE,iagemax+4+AGEMARGE); | freq= ma3x(-5,nlstate+ndeath,-5,nlstate+ndeath,iagemin-AGEMARGE,iagemax+4+AGEMARGE); |
| j1=0; | j1=0; |
| Line 4269 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4341 Title=%s <br>Datafile=%s Firstpass=%d La |
| dateintsum=0; | dateintsum=0; |
| k2cpt=0; | k2cpt=0; |
| for (j = 0; j <= cptcoveff; j+=cptcoveff){ /* j= 0 constant model */ | if(cptcoveff == 0 ) |
| nl=1; /* Constant model only */ | |
| else | |
| nl=2; | |
| for (nj = 1; nj <= nl; nj++){ /* nj= 1 constant model, nl number of loops. */ | |
| if(nj==1) | |
| j=0; /* First pass for the constant */ | |
| else | |
| 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 covariates combination in order of model, excluding quantitatives, V4=0, V3=0 for example, fixed or varying covariates */ |
| posproptt=0.; | posproptt=0.; |
| Line 4515 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4595 Title=%s <br>Datafile=%s Firstpass=%d La |
| if(first==1){ | if(first==1){ |
| printf(" %d%d=%.0f",jk,m,freq[jk][m][iage]); | printf(" %d%d=%.0f",jk,m,freq[jk][m][iage]); |
| } | } |
| /* printf(" %d%d=%.0f",jk,m,freq[jk][m][iage]); */ | |
| fprintf(ficlog," %d%d=%.0f",jk,m,freq[jk][m][iage]); | fprintf(ficlog," %d%d=%.0f",jk,m,freq[jk][m][iage]); |
| } | } |
| if(jk!=0 && m!=0) | if(jk!=0 && m!=0) |
| Line 4562 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4643 Title=%s <br>Datafile=%s Firstpass=%d La |
| 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 jk */ |
| if(jj==1){ /* Constant case */ | 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 */ |
| Line 4572 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4653 Title=%s <br>Datafile=%s Firstpass=%d La |
| 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[jk],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[jk]= log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3]); |
| } | } |
| }else if(jj==2 || nagesqr==1){ /* age or age*age parameter */ | }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++){ |
| x[iage]= (double)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]); */ | |
| } | |
| linreg(iagemin,iagemax,&no,x,y,&a,&b,&r, &sa, &sb ); /* y= a+b*x with standard errors */ | |
| pstart[jk]=b; | |
| pstart[jk-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]); |
| Line 4602 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4690 Title=%s <br>Datafile=%s Firstpass=%d La |
| 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++){ |
| if(jj==1){ | pstart[jk]=p[jk]; /* Setting pstart to p values by default */ |
| if(jj==1){ /* Age has to be done */ | |
| pstart[jk]= 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[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[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[jk],freq[i][k][iagemax+3],freq[i][i][iagemax+3], log(freq[i][k][iagemax+3]/freq[i][i][iagemax+3])); |
| } | } |
| Line 4634 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4724 Title=%s <br>Datafile=%s Firstpass=%d La |
| } /* end j=0 */ | } /* end j=0 */ |
| } /* end j */ | } /* end j */ |
| if(mle == -2){ | if(mle == -2){ /* We want to use these values as starting values */ |
| for(i=1, jk=1; i <=nlstate; i++){ | for(i=1, jk=1; i <=nlstate; i++){ |
| for(j=1; j <=nlstate+ndeath; j++){ | for(j=1; j <=nlstate+ndeath; j++){ |
| if(j!=i){ | if(j!=i){ |
| Line 4662 Title=%s <br>Datafile=%s Firstpass=%d La | Line 4752 Title=%s <br>Datafile=%s Firstpass=%d La |
| fclose(ficresphtmfr); | fclose(ficresphtmfr); |
| free_vector(meanq,1,nqfveff); | free_vector(meanq,1,nqfveff); |
| free_matrix(meanqt,1,lastpass,1,nqtveff); | free_matrix(meanqt,1,lastpass,1,nqtveff); |
| free_vector(x, iagemin-AGEMARGE, iagemax+4+AGEMARGE); | |
| free_vector(y, iagemin-AGEMARGE, iagemax+4+AGEMARGE); | |
| free_ma3x(freq,-5,nlstate+ndeath,-5,nlstate+ndeath, iagemin-AGEMARGE, iagemax+4+AGEMARGE); | free_ma3x(freq,-5,nlstate+ndeath,-5,nlstate+ndeath, iagemin-AGEMARGE, iagemax+4+AGEMARGE); |
| free_vector(pospropt,1,nlstate); | free_vector(pospropt,1,nlstate); |
| free_vector(posprop,1,nlstate); | free_vector(posprop,1,nlstate); |
| Line 6313 void printinghtml(char fileresu[], char | Line 6405 void printinghtml(char fileresu[], char |
| for(nres=1; nres <= nresult; nres++) /* For each resultline */ | for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
| for(k1=1; k1<=m;k1++){ /* For each combination of covariate */ | for(k1=1; k1<=m;k1++){ /* For each combination of covariate */ |
| if(TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| /* for(i1=1; i1<=ncodemax[k1];i1++){ */ | /* for(i1=1; i1<=ncodemax[k1];i1++){ */ |
| Line 6445 See page 'Matrix of variance-covariance | Line 6537 See page 'Matrix of variance-covariance |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| for(k1=1; k1<=m;k1++){ | for(k1=1; k1<=m;k1++){ |
| if(TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| /* for(i1=1; i1<=ncodemax[k1];i1++){ */ | /* for(i1=1; i1<=ncodemax[k1];i1++){ */ |
| jj1++; | jj1++; |
| Line 6541 void printinggnuplot(char fileresu[], ch | Line 6633 void printinggnuplot(char fileresu[], ch |
| for (k1=1; k1<= m ; k1 ++){ /* For each valid combination of covariate */ | for (k1=1; k1<= m ; k1 ++){ /* For each valid combination of covariate */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| /* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ | /* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ |
| if(TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| /* 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); */ |
| Line 6623 void printinggnuplot(char fileresu[], ch | Line 6715 void printinggnuplot(char fileresu[], ch |
| /*2 eme*/ | /*2 eme*/ |
| for (k1=1; k1<= m ; k1 ++){ | for (k1=1; k1<= m ; k1 ++){ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(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 "); |
| for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ | for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
| Line 6683 void printinggnuplot(char fileresu[], ch | Line 6775 void printinggnuplot(char fileresu[], ch |
| /*3eme*/ | /*3eme*/ |
| for (k1=1; k1<= m ; k1 ++){ | for (k1=1; k1<= m ; k1 ++){ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(TKresult[nres]!= k1) | if(m != 1 && TKresult[nres]!= k1) |
| continue; | continue; |
| for (cpt=1; cpt<= nlstate ; cpt ++) { | for (cpt=1; cpt<= nlstate ; cpt ++) { |
| Line 6732 plot [%.f:%.f] \"%s\" every :::%d::%d u | Line 6824 plot [%.f:%.f] \"%s\" every :::%d::%d u |
| /* Survival functions (period) from state i in state j by initial state i */ | /* Survival functions (period) from state i in state j by initial state i */ |
| for (k1=1; k1<=m; k1++){ /* For each covariate and each value */ | for (k1=1; k1<=m; k1++){ /* For each covariate and each value */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(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*/ |
| 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); |
| Line 6778 set ter svg size 640, 480\nunset log y\n | Line 6870 set ter svg size 640, 480\nunset log y\n |
| /* Survival functions (period) from state i in state j by final state j */ | /* Survival functions (period) from state i in state j by final state j */ |
| for (k1=1; k1<= m ; k1++){ /* For each covariate combination if any */ | for (k1=1; k1<= m ; k1++){ /* For each covariate combination if any */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(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 */ |
| 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); |
| Line 6832 set ter svg size 640, 480\nunset log y\n | Line 6924 set ter svg size 640, 480\nunset log y\n |
| /* CV preval stable (period) for each covariate */ | /* CV preval stable (period) for each covariate */ |
| for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ | for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(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 */ |
| Line 6879 set ter svg size 640, 480\nunset log y\n | Line 6971 set ter svg size 640, 480\nunset log y\n |
| /* CV back preval stable (period) for each covariate */ | /* CV back preval stable (period) for each covariate */ |
| for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ | for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(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 */ |
| fprintf(ficgp,"\n#\n#\n#CV Back preval stable (period): 'pij' files, covariatecombination#=%d state=%d",k1, cpt); | fprintf(ficgp,"\n#\n#\n#CV Back preval stable (period): 'pij' files, covariatecombination#=%d state=%d",k1, cpt); |
| Line 6930 set ter svg size 640, 480\nunset log y\n | Line 7022 set ter svg size 640, 480\nunset log y\n |
| for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ | for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(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 */ |
| 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); |
| Line 7061 set ter svg size 640, 480\nunset log y\n | Line 7153 set ter svg size 640, 480\nunset log y\n |
| fprintf(ficgp,"# jk=1 to 2^%d=%d\n",cptcoveff,m);/* to be checked */ | fprintf(ficgp,"# jk=1 to 2^%d=%d\n",cptcoveff,m);/* to be checked */ |
| for(jk=1; jk <=m; jk++) /* For each combination of covariate */ | for(jk=1; jk <=m; jk++) /* For each combination of covariate */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(TKresult[nres]!= jk) | if(m != 1 && TKresult[nres]!= jk) |
| continue; | continue; |
| fprintf(ficgp,"# Combination of dummy jk=%d and ",jk); | fprintf(ficgp,"# Combination of dummy jk=%d and ",jk); |
| for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ | for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
| Line 7423 set ter svg size 640, 480\nunset log y\n | Line 7515 set ter svg size 640, 480\nunset log y\n |
| /* if (h==(int)(YEARM*yearp)){ */ | /* if (h==(int)(YEARM*yearp)){ */ |
| for(nres=1; nres <= nresult; nres++) /* For each resultline */ | for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
| for(k=1; k<=i1;k++){ | for(k=1; k<=i1;k++){ |
| if(TKresult[nres]!= k) | if(i1 != 1 && TKresult[nres]!= k) |
| continue; | continue; |
| if(invalidvarcomb[k]){ | if(invalidvarcomb[k]){ |
| printf("\nCombination (%d) projection ignored because no cases \n",k); | printf("\nCombination (%d) projection ignored because no cases \n",k); |
| Line 8374 int decoderesult ( char resultline[], in | Line 8466 int decoderesult ( char resultline[], in |
| if (strlen(resultsav) >1){ | if (strlen(resultsav) >1){ |
| j=nbocc(resultsav,'='); /**< j=Number of covariate values'=' */ | j=nbocc(resultsav,'='); /**< j=Number of covariate values'=' */ |
| } | } |
| if(j == 0){ /* Resultline but no = */ | |
| TKresult[nres]=0; /* Combination for the nresult and the model */ | |
| return (0); | |
| } | |
| if( j != cptcovs ){ /* Be careful if a variable is in a product but not single */ | if( j != cptcovs ){ /* Be careful if a variable is in a product but not single */ |
| printf("ERROR: the number of variable in the resultline, %d, differs from the number of variable used in the model line, %d.\n",j, cptcovs); | printf("ERROR: the number of variable in the resultline, %d, differs from the number of variable used in the model line, %d.\n",j, cptcovs); |
| fprintf(ficlog,"ERROR: the number of variable in the resultline, %d, differs from the number of variable used in the model line, %d.\n",j, cptcovs); | fprintf(ficlog,"ERROR: the number of variable in the resultline, %d, differs from the number of variable used in the model line, %d.\n",j, cptcovs); |
| Line 9310 int prevalence_limit(double *p, double * | Line 9407 int prevalence_limit(double *p, double * |
| for(k=1; k<=i1;k++){ /* For each combination k of dummy covariates in the model */ | for(k=1; k<=i1;k++){ /* For each combination k of dummy covariates in the model */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| if(TKresult[nres]!= k) | if(i1 != 1 && TKresult[nres]!= k) |
| continue; | continue; |
| /* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ | /* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
| Line 9407 int back_prevalence_limit(double *p, dou | Line 9504 int back_prevalence_limit(double *p, dou |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ | for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
| if(TKresult[nres]!= k) | if(i1 != 1 && TKresult[nres]!= k) |
| continue; | continue; |
| //printf("cptcov=%d cptcod=%d codtab=%d\n",cptcov, cptcod,codtabm(cptcod,cptcov)); | //printf("cptcov=%d cptcod=%d codtab=%d\n",cptcov, cptcod,codtabm(cptcod,cptcov)); |
| fprintf(ficresplb,"#******"); | fprintf(ficresplb,"#******"); |
| Line 9510 int hPijx(double *p, int bage, int fage) | Line 9607 int hPijx(double *p, int bage, int fage) |
| /* k=k+1; */ | /* k=k+1; */ |
| for(nres=1; nres <= nresult; nres++) /* For each resultline */ | for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
| for(k=1; k<=i1;k++){ | for(k=1; k<=i1;k++){ |
| if(TKresult[nres]!= k) | if(i1 != 1 && TKresult[nres]!= k) |
| continue; | continue; |
| fprintf(ficrespij,"\n#****** "); | fprintf(ficrespij,"\n#****** "); |
| for(j=1;j<=cptcoveff;j++) | for(j=1;j<=cptcoveff;j++) |
| Line 9589 int hPijx(double *p, int bage, int fage) | Line 9686 int hPijx(double *p, int bage, int fage) |
| /* k=k+1; */ | /* k=k+1; */ |
| for(nres=1; nres <= nresult; nres++){ /* For each resultline */ | for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
| for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ | for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
| if(TKresult[nres]!= k) | if(i1 != 1 && TKresult[nres]!= k) |
| continue; | continue; |
| fprintf(ficrespijb,"\n#****** "); | fprintf(ficrespijb,"\n#****** "); |
| for(j=1;j<=cptcoveff;j++) | for(j=1;j<=cptcoveff;j++) |
| Line 11097 Please run with mle=-1 to get a correct | Line 11194 Please run with mle=-1 to get a correct |
| while((num_filled=sscanf(line,"result:%[^\n]\n",resultline)) !=EOF){ | while((num_filled=sscanf(line,"result:%[^\n]\n",resultline)) !=EOF){ |
| if (num_filled == 0){ | if (num_filled == 0){ |
| resultline[0]='\0'; | resultline[0]='\0'; |
| printf("Warning %d: no result line should be at minimum 'result: V2=0 V1=1 or result:.\n%s\n", num_filled, line); | |
| break; | break; |
| } else if (num_filled != 1){ | } else if (num_filled != 1){ |
| printf("ERROR %d: result line should be at minimum 'result=' %s\n",num_filled, line); | 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 */ | nresult++; /* Sum of resultlines */ |
| printf("Result %d: result=%s\n",nresult, resultline); | printf("Result %d: result=%s\n",nresult, resultline); |
| Line 11271 Please run with mle=-1 to get a correct | Line 11369 Please run with mle=-1 to get a correct |
| for(nres=1; nres <= nresult; nres++) /* For each resultline */ | for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
| for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ | for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
| if(TKresult[nres]!= k) | if(i1 != 1 && TKresult[nres]!= k) |
| continue; | continue; |
| fprintf(ficreseij,"\n#****** "); | fprintf(ficreseij,"\n#****** "); |
| printf("\n#****** "); | printf("\n#****** "); |
| Line 11344 Please run with mle=-1 to get a correct | Line 11442 Please run with mle=-1 to get a correct |
| for(nres=1; nres <= nresult; nres++) /* For each resultline */ | for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
| for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ | for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
| if(TKresult[nres]!= k) | if(i1 != 1 && TKresult[nres]!= k) |
| continue; | continue; |
| printf("\n#****** Result for:"); | printf("\n#****** Result for:"); |
| fprintf(ficrest,"\n#****** Result for:"); | fprintf(ficrest,"\n#****** Result for:"); |
| Line 11485 Please run with mle=-1 to get a correct | Line 11583 Please run with mle=-1 to get a correct |
| for(nres=1; nres <= nresult; nres++) /* For each resultline */ | for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
| for(k=1; k<=i1;k++){ | for(k=1; k<=i1;k++){ |
| if(TKresult[nres]!= k) | if(i1 != 1 && TKresult[nres]!= k) |
| continue; | continue; |
| fprintf(ficresvpl,"\n#****** "); | fprintf(ficresvpl,"\n#****** "); |
| printf("\n#****** "); | printf("\n#****** "); |