version 1.219, 2016/02/15 00:48:12
|
version 1.220, 2016/02/15 23:22:02
|
Line 1
|
Line 1
|
/* $Id$ |
/* $Id$ |
$State$ |
$State$ |
$Log$ |
$Log$ |
|
Revision 1.220 2016/02/15 23:22:02 brouard |
|
Summary: 0.99r2 |
|
|
Revision 1.219 2016/02/15 00:48:12 brouard |
Revision 1.219 2016/02/15 00:48:12 brouard |
*** empty log message *** |
*** empty log message *** |
|
|
Line 736 Back prevalence and projections:
|
Line 739 Back prevalence and projections:
|
/* #define DEBUGLINMIN */ |
/* #define DEBUGLINMIN */ |
/* #define DEBUGHESS */ |
/* #define DEBUGHESS */ |
#define DEBUGHESSIJ |
#define DEBUGHESSIJ |
/* #define LINMINORIGINAL /\* Don't use loop on scale in linmin (accepting nan)*\/ */ |
#define LINMINORIGINAL /* Don't use loop on scale in linmin (accepting nan)*/ |
#define POWELL /* Instead of NLOPT */ |
#define POWELL /* Instead of NLOPT */ |
#define POWELLF1F3 /* Skip test */ |
#define POWELLF1F3 /* Skip test */ |
/* #define POWELLORIGINAL /\* Don't use Directest to decide new direction but original Powell test *\/ */ |
/* #define POWELLORIGINAL /\* Don't use Directest to decide new direction but original Powell test *\/ */ |
Line 994 int **nbcode, *Tvar; /**< model=V2 => Tv
|
Line 997 int **nbcode, *Tvar; /**< model=V2 => Tv
|
int *Tage; |
int *Tage; |
int *Ndum; /** Freq of modality (tricode */ |
int *Ndum; /** Freq of modality (tricode */ |
/* int **codtab;*/ /**< codtab=imatrix(1,100,1,10); */ |
/* int **codtab;*/ /**< codtab=imatrix(1,100,1,10); */ |
int **Tvard, *Tprod, cptcovprod, *Tvaraff; |
int **Tvard, *Tprod, cptcovprod, *Tvaraff, *invalidvarcomb; |
double *lsurv, *lpop, *tpop; |
double *lsurv, *lpop, *tpop; |
|
|
double ftol=FTOL; /**< Tolerance for computing Max Likelihood */ |
double ftol=FTOL; /**< Tolerance for computing Max Likelihood */ |
Line 2289 Earliest age to start was %d-%d=%d, ncvl
|
Line 2292 Earliest age to start was %d-%d=%d, ncvl
|
*ncvyear= -( (int)age- (int)agefin); |
*ncvyear= -( (int)age- (int)agefin); |
/* printf("Back maxmax=%lf ncvloop=%d, age=%d, agefin=%d ncvyear=%d \n", maxmax, ncvloop, (int)age, (int)agefin, *ncvyear);*/ |
/* printf("Back maxmax=%lf ncvloop=%d, age=%d, agefin=%d ncvyear=%d \n", maxmax, ncvloop, (int)age, (int)agefin, *ncvyear);*/ |
if(maxmax < ftolpl){ |
if(maxmax < ftolpl){ |
printf("OK Back maxmax=%lf ncvloop=%d, age=%d, agefin=%d ncvyear=%d \n", maxmax, ncvloop, (int)age, (int)agefin, *ncvyear); |
/* printf("OK Back maxmax=%lf ncvloop=%d, age=%d, agefin=%d ncvyear=%d \n", maxmax, ncvloop, (int)age, (int)agefin, *ncvyear); */ |
free_vector(min,1,nlstate); |
free_vector(min,1,nlstate); |
free_vector(max,1,nlstate); |
free_vector(max,1,nlstate); |
free_vector(meandiff,1,nlstate); |
free_vector(meandiff,1,nlstate); |
Line 3671 void pstamp(FILE *fichier)
|
Line 3674 void pstamp(FILE *fichier)
|
} |
} |
|
|
/************ Frequencies ********************/ |
/************ Frequencies ********************/ |
void freqsummary(char fileres[], int iagemin, int iagemax, int **s, double **agev, int nlstate, int imx, \ |
void freqsummary(char fileres[], int iagemin, int iagemax, int **s, double **agev, int nlstate, int imx, \ |
int *Tvaraff, 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 */ |
{ /* Some frequencies */ |
|
|
int i, m, jk, j1, bool, z1,j; |
int i, m, jk, j1, bool, z1,j; |
int mi; /* Effective wave */ |
int iind=0, iage=0; |
int first; |
int mi; /* Effective wave */ |
double ***freq; /* Frequencies */ |
int first; |
double *pp, **prop; |
double ***freq; /* Frequencies */ |
double pos,posprop, k2, dateintsum=0,k2cpt=0; |
double *pp, **prop, *posprop, *pospropt; |
char fileresp[FILENAMELENGTH], fileresphtm[FILENAMELENGTH], fileresphtmfr[FILENAMELENGTH]; |
double pos=0., posproptt=0., pospropta=0., k2, dateintsum=0,k2cpt=0; |
double agebegin, ageend; |
char fileresp[FILENAMELENGTH], fileresphtm[FILENAMELENGTH], fileresphtmfr[FILENAMELENGTH]; |
|
double agebegin, ageend; |
pp=vector(1,nlstate); |
|
prop=matrix(1,nlstate,iagemin-AGEMARGE,iagemax+3+AGEMARGE); |
pp=vector(1,nlstate); |
/* prop=matrix(1,nlstate,iagemin,iagemax+3); */ |
prop=matrix(1,nlstate,iagemin-AGEMARGE,iagemax+3+AGEMARGE); |
strcpy(fileresp,"P_"); |
posprop=vector(1,nlstate); /* Counting the number of transition starting from a live state per age */ |
strcat(fileresp,fileresu); |
pospropt=vector(1,nlstate); /* Counting the number of transition starting from a live state */ |
/*strcat(fileresphtm,fileresu);*/ |
/* prop=matrix(1,nlstate,iagemin,iagemax+3); */ |
if((ficresp=fopen(fileresp,"w"))==NULL) { |
strcpy(fileresp,"P_"); |
printf("Problem with prevalence resultfile: %s\n", fileresp); |
strcat(fileresp,fileresu); |
fprintf(ficlog,"Problem with prevalence resultfile: %s\n", fileresp); |
/*strcat(fileresphtm,fileresu);*/ |
exit(0); |
if((ficresp=fopen(fileresp,"w"))==NULL) { |
} |
printf("Problem with prevalence resultfile: %s\n", fileresp); |
|
fprintf(ficlog,"Problem with prevalence resultfile: %s\n", fileresp); |
|
exit(0); |
|
} |
|
|
strcpy(fileresphtm,subdirfext(optionfilefiname,"PHTM_",".htm")); |
strcpy(fileresphtm,subdirfext(optionfilefiname,"PHTM_",".htm")); |
if((ficresphtm=fopen(fileresphtm,"w"))==NULL) { |
if((ficresphtm=fopen(fileresphtm,"w"))==NULL) { |
printf("Problem with prevalence HTM resultfile '%s' with errno='%s'\n",fileresphtm,strerror(errno)); |
printf("Problem with prevalence HTM resultfile '%s' with errno='%s'\n",fileresphtm,strerror(errno)); |
fprintf(ficlog,"Problem with prevalence HTM resultfile '%s' with errno='%s'\n",fileresphtm,strerror(errno)); |
fprintf(ficlog,"Problem with prevalence HTM resultfile '%s' with errno='%s'\n",fileresphtm,strerror(errno)); |
fflush(ficlog); |
fflush(ficlog); |
exit(70); |
exit(70); |
} |
} |
else{ |
else{ |
fprintf(ficresphtm,"<html><head>\n<title>IMaCh PHTM_ %s</title></head>\n <body><font size=\"2\">%s <br> %s</font> \ |
fprintf(ficresphtm,"<html><head>\n<title>IMaCh PHTM_ %s</title></head>\n <body><font size=\"2\">%s <br> %s</font> \ |
<hr size=\"2\" color=\"#EC5E5E\"> \n\ |
<hr size=\"2\" color=\"#EC5E5E\"> \n\ |
Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s<br>\n",\ |
Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s<br>\n",\ |
fileresphtm,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model); |
fileresphtm,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model); |
} |
} |
fprintf(ficresphtm,"Current page is file <a href=\"%s\">%s</a><br>\n\n<h4>Frequencies and prevalence by age at begin of transition</h4>\n",fileresphtm, fileresphtm); |
fprintf(ficresphtm,"Current page is file <a href=\"%s\">%s</a><br>\n\n<h4>Frequencies and prevalence by age at begin of transition</h4>\n",fileresphtm, fileresphtm); |
|
|
strcpy(fileresphtmfr,subdirfext(optionfilefiname,"PHTMFR_",".htm")); |
strcpy(fileresphtmfr,subdirfext(optionfilefiname,"PHTMFR_",".htm")); |
if((ficresphtmfr=fopen(fileresphtmfr,"w"))==NULL) { |
if((ficresphtmfr=fopen(fileresphtmfr,"w"))==NULL) { |
printf("Problem with frequency table HTM resultfile '%s' with errno='%s'\n",fileresphtmfr,strerror(errno)); |
printf("Problem with frequency table HTM resultfile '%s' with errno='%s'\n",fileresphtmfr,strerror(errno)); |
fprintf(ficlog,"Problem with frequency table HTM resultfile '%s' with errno='%s'\n",fileresphtmfr,strerror(errno)); |
fprintf(ficlog,"Problem with frequency table HTM resultfile '%s' with errno='%s'\n",fileresphtmfr,strerror(errno)); |
fflush(ficlog); |
fflush(ficlog); |
exit(70); |
exit(70); |
} |
} |
else{ |
else{ |
fprintf(ficresphtmfr,"<html><head>\n<title>IMaCh PHTM_Frequency table %s</title></head>\n <body><font size=\"2\">%s <br> %s</font> \ |
fprintf(ficresphtmfr,"<html><head>\n<title>IMaCh PHTM_Frequency table %s</title></head>\n <body><font size=\"2\">%s <br> %s</font> \ |
<hr size=\"2\" color=\"#EC5E5E\"> \n\ |
<hr size=\"2\" color=\"#EC5E5E\"> \n\ |
Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s<br>\n",\ |
Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s<br>\n",\ |
fileresphtmfr,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model); |
fileresphtmfr,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model); |
} |
} |
fprintf(ficresphtmfr,"Current page is file <a href=\"%s\">%s</a><br>\n\n<h4>Frequencies of all effective transitions by age at begin of transition </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 by age at begin of transition </h4>Unknown status is -1<br/>\n",fileresphtmfr, fileresphtmfr); |
|
|
freq= ma3x(-5,nlstate+ndeath,-5,nlstate+ndeath,iagemin-AGEMARGE,iagemax+3+AGEMARGE); |
freq= ma3x(-5,nlstate+ndeath,-5,nlstate+ndeath,iagemin-AGEMARGE,iagemax+3+AGEMARGE); |
j1=0; |
j1=0; |
|
|
j=cptcoveff; |
j=cptcoveff; |
if (cptcovn<1) {j=1;ncodemax[1]=1;} |
if (cptcovn<1) {j=1;ncodemax[1]=1;} |
|
|
first=1; |
first=1; |
|
|
|
/* Detects if a combination j1 is empty: for a multinomial variable like 3 education levels: |
|
reference=low_education V1=0,V2=0 |
|
med_educ V1=1 V2=0, |
|
high_educ V1=0 V2=1 |
|
Then V1=1 and V2=1 is a noisy combination that we want to exclude for the list 2**cptcoveff |
|
*/ |
|
|
for (j1 = 1; j1 <= (int) pow(2,cptcoveff); j1++){ /* Loop on covariates combination */ |
for (j1 = 1; j1 <= (int) pow(2,cptcoveff); j1++){ /* Loop on covariates combination */ |
/*printf("cptcoveff=%d Tvaraff=%d", cptcoveff,Tvaraff[1]); |
posproptt=0.; |
scanf("%d", i);*/ |
/*printf("cptcoveff=%d Tvaraff=%d", cptcoveff,Tvaraff[1]); |
for (i=-5; i<=nlstate+ndeath; i++) |
scanf("%d", i);*/ |
for (jk=-5; jk<=nlstate+ndeath; jk++) |
for (i=-5; i<=nlstate+ndeath; i++) |
for(m=iagemin; m <= iagemax+3; m++) |
for (jk=-5; jk<=nlstate+ndeath; jk++) |
freq[i][jk][m]=0; |
for(m=iagemin; m <= iagemax+3; m++) |
|
freq[i][jk][m]=0; |
for (i=1; i<=nlstate; i++) |
|
for(m=iagemin; m <= iagemax+3; m++) |
for (i=1; i<=nlstate; i++) { |
prop[i][m]=0; |
for(m=iagemin; m <= iagemax+3; m++) |
|
prop[i][m]=0; |
dateintsum=0; |
posprop[i]=0; |
k2cpt=0; |
pospropt[i]=0; |
for (i=1; i<=imx; i++) { /* For each individual i */ |
} |
bool=1; |
|
if (cptcovn>0) { /* Filter is here: Must be looked at for model=V1+V2+V3+V4 */ |
dateintsum=0; |
for (z1=1; z1<=cptcoveff; z1++) |
k2cpt=0; |
if (covar[Tvaraff[z1]][i]!= nbcode[Tvaraff[z1]][codtabm(j1,z1)]){ |
|
/* Tests if the value of each of the covariates of i is equal to filter j1 */ |
for (iind=1; iind<=imx; iind++) { /* For each individual iind */ |
bool=0; |
bool=1; |
/* 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", |
if (cptcovn>0) { /* Filter is here: Must be looked at for model=V1+V2+V3+V4 */ |
|
for (z1=1; z1<=cptcoveff; z1++) { |
|
if (covar[Tvaraff[z1]][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,z1)]){ |
|
/* Tests if the value of each of the covariates of i is equal to filter j1 */ |
|
bool=0; |
|
/* 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), |
j1,z1,nbcode[Tvaraff[z1]][codtabm(j1,z1)],j1);*/ |
j1,z1,nbcode[Tvaraff[z1]][codtabm(j1,z1)],j1);*/ |
/* For j1=7 in V1+V2+V3+V4 = 0 1 1 0 and codtabm(7,3)=1 and nbcde[3][?]=1*/ |
/* For j1=7 in V1+V2+V3+V4 = 0 1 1 0 and codtabm(7,3)=1 and nbcde[3][?]=1*/ |
} |
} |
} /* cptcovn > 0 */ |
} /* end z1 */ |
|
} /* cptcovn > 0 */ |
if (bool==1){ |
|
/* for(m=firstpass; m<=lastpass; m++){ */ |
if (bool==1){ |
for(mi=1; mi<wav[i];mi++){ |
/* for(m=firstpass; m<=lastpass; m++){ */ |
m=mw[mi][i]; |
for(mi=1; mi<wav[iind];mi++){ |
/* dh[m][i] or dh[mw[mi][i]][i] is the delay between two effective (mi) waves m=mw[mi][i] |
m=mw[mi][iind]; |
and mw[mi+1][i]. dh depends on stepm. */ |
/* dh[m][iind] or dh[mw[mi][iind]][iind] is the delay between two effective (mi) waves m=mw[mi][iind] |
agebegin=agev[m][i]; /* Age at beginning of wave before transition*/ |
and mw[mi+1][iind]. dh depends on stepm. */ |
ageend=agev[m][i]+(dh[m][i])*stepm/YEARM; /* Age at end of wave and transition */ |
agebegin=agev[m][iind]; /* Age at beginning of wave before transition*/ |
if(m >=firstpass && m <=lastpass){ |
ageend=agev[m][iind]+(dh[m][iind])*stepm/YEARM; /* Age at end of wave and transition */ |
k2=anint[m][i]+(mint[m][i]/12.); |
if(m >=firstpass && m <=lastpass){ |
/*if ((k2>=dateprev1) && (k2<=dateprev2)) {*/ |
k2=anint[m][iind]+(mint[m][iind]/12.); |
if(agev[m][i]==0) agev[m][i]=iagemax+1; /* All ages equal to 0 are in iagemax+1 */ |
/*if ((k2>=dateprev1) && (k2<=dateprev2)) {*/ |
if(agev[m][i]==1) agev[m][i]=iagemax+2; /* All ages equal to 1 are in iagemax+2 */ |
if(agev[m][iind]==0) agev[m][iind]=iagemax+1; /* All ages equal to 0 are in iagemax+1 */ |
if (s[m][i]>0 && s[m][i]<=nlstate) /* If status at wave m is known and a live state */ |
if(agev[m][iind]==1) agev[m][iind]=iagemax+2; /* All ages equal to 1 are in iagemax+2 */ |
prop[s[m][i]][(int)agev[m][i]] += weight[i]; /* At age of beginning of transition, where status is known */ |
if (s[m][iind]>0 && s[m][iind]<=nlstate) /* If status at wave m is known and a live state */ |
if (m<lastpass) { |
prop[s[m][iind]][(int)agev[m][iind]] += weight[iind]; /* At age of beginning of transition, where status is known */ |
/* if(s[m][i]==4 && s[m+1][i]==4) */ |
if (m<lastpass) { |
/* printf(" num=%ld m=%d, i=%d s1=%d s2=%d agev at m=%d\n", num[i], m, i,s[m][i],s[m+1][i], (int)agev[m][i]); */ |
/* if(s[m][iind]==4 && s[m+1][iind]==4) */ |
if(s[m][i]==-1) |
/* printf(" num=%ld m=%d, iind=%d s1=%d s2=%d agev at m=%d\n", num[iind], m, iind,s[m][iind],s[m+1][iind], (int)agev[m][iind]); */ |
printf(" num=%ld m=%d, i=%d s1=%d s2=%d agev at m=%d agebegin=%.2f ageend=%.2f, agemed=%d\n", num[i], m, i,s[m][i],s[m+1][i], (int)agev[m][i],agebegin, ageend, (int)((agebegin+ageend)/2.)); |
if(s[m][iind]==-1) |
freq[s[m][i]][s[m+1][i]][(int)agev[m][i]] += weight[i]; /* At age of beginning of transition, where status is known */ |
printf(" num=%ld m=%d, iind=%d s1=%d s2=%d agev at m=%d agebegin=%.2f ageend=%.2f, agemed=%d\n", num[iind], m, iind,s[m][iind],s[m+1][iind], (int)agev[m][iind],agebegin, ageend, (int)((agebegin+ageend)/2.)); |
/* freq[s[m][i]][s[m+1][i]][(int)((agebegin+ageend)/2.)] += weight[i]; */ |
freq[s[m][iind]][s[m+1][iind]][(int)agev[m][iind]] += weight[iind]; /* At age of beginning of transition, where status is known */ |
freq[s[m][i]][s[m+1][i]][iagemax+3] += weight[i]; /* Total is in iagemax+3 *//* At age of beginning of transition, where status is known */ |
/* freq[s[m][iind]][s[m+1][iind]][(int)((agebegin+ageend)/2.)] += weight[iind]; */ |
} |
freq[s[m][iind]][s[m+1][iind]][iagemax+3] += weight[iind]; /* Total is in iagemax+3 *//* At age of beginning of transition, where status is known */ |
} |
} |
if ((agev[m][i]>1) && (agev[m][i]< (iagemax+3)) && (anint[m][i]!=9999) && (mint[m][i]!=99)) { |
} |
dateintsum=dateintsum+k2; |
if ((agev[m][iind]>1) && (agev[m][iind]< (iagemax+3)) && (anint[m][iind]!=9999) && (mint[m][iind]!=99)) { |
k2cpt++; |
dateintsum=dateintsum+k2; |
/* printf("i=%ld dateintmean = %lf dateintsum=%lf k2cpt=%lf k2=%lf\n",i, dateintsum/k2cpt, dateintsum,k2cpt, k2); */ |
k2cpt++; |
} |
/* printf("iind=%ld dateintmean = %lf dateintsum=%lf k2cpt=%lf k2=%lf\n",iind, dateintsum/k2cpt, dateintsum,k2cpt, k2); */ |
/*}*/ |
} |
} /* end m */ |
/*}*/ |
} /* end bool */ |
} /* end m */ |
} /* end i = 1 to imx */ |
} /* end bool */ |
|
} /* end iind = 1 to imx */ |
/* fprintf(ficresp, "#Count between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2);*/ |
/* prop[s][age] is feeded for any initial and valid live state as well as |
pstamp(ficresp); |
freq[s1][s2][age] at single age of beginning the transition, for a combination j1 */ |
if (cptcovn>0) { |
|
fprintf(ficresp, "\n#********** Variable "); |
|
fprintf(ficresphtm, "\n<br/><br/><h3>********** Variable "); |
/* fprintf(ficresp, "#Count between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf\n",jprev1, mprev1,anprev1,jprev2, mprev2,anprev2);*/ |
fprintf(ficresphtmfr, "\n<br/><br/><h3>********** Variable "); |
pstamp(ficresp); |
for (z1=1; z1<=cptcoveff; z1++){ |
if (cptcovn>0) { |
fprintf(ficresp, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresp, "\n#********** Variable "); |
fprintf(ficresphtm, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresphtm, "\n<br/><br/><h3>********** Variable "); |
fprintf(ficresphtmfr, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresphtmfr, "\n<br/><br/><h3>********** Variable "); |
} |
for (z1=1; z1<=cptcoveff; z1++){ |
fprintf(ficresp, "**********\n#"); |
fprintf(ficresp, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresphtm, "**********</h3>\n"); |
fprintf(ficresphtm, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresphtmfr, "**********</h3>\n"); |
fprintf(ficresphtmfr, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficlog, "\n#********** Variable "); |
} |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficlog, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresp, "**********\n#"); |
fprintf(ficlog, "**********\n"); |
fprintf(ficresphtm, "**********</h3>\n"); |
} |
fprintf(ficresphtmfr, "**********</h3>\n"); |
fprintf(ficresphtm,"<table style=\"text-align:center; border: 1px solid\">"); |
fprintf(ficlog, "\n#********** Variable "); |
for(i=1; i<=nlstate;i++) { |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficlog, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresp, " Age Prev(%d) N(%d) N",i,i); |
fprintf(ficlog, "**********\n"); |
fprintf(ficresphtm, "<th>Age</th><th>Prev(%d)</th><th>N(%d)</th><th>N</th>",i,i); |
} |
} |
fprintf(ficresphtm,"<table style=\"text-align:center; border: 1px solid\">"); |
fprintf(ficresp, "\n"); |
for(i=1; i<=nlstate;i++) { |
fprintf(ficresphtm, "\n"); |
fprintf(ficresp, " Age 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); |
/* Header of frequency table by age */ |
} |
fprintf(ficresphtmfr,"<table style=\"text-align:center; border: 1px solid\">"); |
fprintf(ficresp, "\n"); |
fprintf(ficresphtmfr,"<th>Age</th> "); |
fprintf(ficresphtm, "\n"); |
for(jk=-1; jk <=nlstate+ndeath; jk++){ |
|
for(m=-1; m <=nlstate+ndeath; m++){ |
|
if(jk!=0 && m!=0) |
|
fprintf(ficresphtmfr,"<th>%d%d</th> ",jk,m); |
|
} |
|
} |
|
fprintf(ficresphtmfr, "\n"); |
|
|
|
/* For each age */ |
/* Header of frequency table by age */ |
for(i=iagemin; i <= iagemax+3; i++){ |
fprintf(ficresphtmfr,"<table style=\"text-align:center; border: 1px solid\">"); |
fprintf(ficresphtm,"<tr>"); |
fprintf(ficresphtmfr,"<th>Age</th> "); |
if(i==iagemax+1){ |
for(jk=-1; jk <=nlstate+ndeath; jk++){ |
fprintf(ficlog,"1"); |
for(m=-1; m <=nlstate+ndeath; m++){ |
fprintf(ficresphtmfr,"<tr><th>0</th> "); |
if(jk!=0 && m!=0) |
}else if(i==iagemax+2){ |
fprintf(ficresphtmfr,"<th>%d%d</th> ",jk,m); |
fprintf(ficlog,"0"); |
} |
fprintf(ficresphtmfr,"<tr><th>Unknown</th> "); |
} |
}else if(i==iagemax+3){ |
fprintf(ficresphtmfr, "\n"); |
fprintf(ficlog,"Total"); |
|
fprintf(ficresphtmfr,"<tr><th>Total</th> "); |
/* For each age */ |
}else{ |
for(iage=iagemin; iage <= iagemax+3; iage++){ |
if(first==1){ |
fprintf(ficresphtm,"<tr>"); |
first=0; |
if(iage==iagemax+1){ |
printf("See log file for details...\n"); |
fprintf(ficlog,"1"); |
} |
fprintf(ficresphtmfr,"<tr><th>0</th> "); |
fprintf(ficresphtmfr,"<tr><th>%d</th> ",i); |
}else if(iage==iagemax+2){ |
fprintf(ficlog,"Age %d", i); |
fprintf(ficlog,"0"); |
} |
fprintf(ficresphtmfr,"<tr><th>Unknown</th> "); |
for(jk=1; jk <=nlstate ; jk++){ |
}else if(iage==iagemax+3){ |
for(m=-1, pp[jk]=0; m <=nlstate+ndeath ; m++) |
fprintf(ficlog,"Total"); |
pp[jk] += freq[jk][m][i]; |
fprintf(ficresphtmfr,"<tr><th>Total</th> "); |
} |
}else{ |
for(jk=1; jk <=nlstate ; jk++){ |
if(first==1){ |
for(m=-1, pos=0; m <=0 ; m++) |
first=0; |
pos += freq[jk][m][i]; |
printf("See log file for details...\n"); |
if(pp[jk]>=1.e-10){ |
} |
if(first==1){ |
fprintf(ficresphtmfr,"<tr><th>%d</th> ",iage); |
printf(" %d.=%.0f loss[%d]=%.1f%%",jk,pp[jk],jk,100*pos/pp[jk]); |
fprintf(ficlog,"Age %d", iage); |
} |
} |
fprintf(ficlog," %d.=%.0f loss[%d]=%.1f%%",jk,pp[jk],jk,100*pos/pp[jk]); |
for(jk=1; jk <=nlstate ; jk++){ |
}else{ |
for(m=-1, pp[jk]=0; m <=nlstate+ndeath ; m++) |
if(first==1) |
pp[jk] += freq[jk][m][iage]; |
printf(" %d.=%.0f loss[%d]=NaNQ%%",jk,pp[jk],jk); |
} |
fprintf(ficlog," %d.=%.0f loss[%d]=NaNQ%%",jk,pp[jk],jk); |
for(jk=1; jk <=nlstate ; jk++){ |
} |
for(m=-1, pos=0; m <=0 ; m++) |
} |
pos += freq[jk][m][iage]; |
|
if(pp[jk]>=1.e-10){ |
for(jk=1; jk <=nlstate ; jk++){ |
if(first==1){ |
for(m=0, pp[jk]=0; m <=nlstate+ndeath; m++) |
printf(" %d.=%.0f loss[%d]=%.1f%%",jk,pp[jk],jk,100*pos/pp[jk]); |
pp[jk] += freq[jk][m][i]; |
} |
} |
fprintf(ficlog," %d.=%.0f loss[%d]=%.1f%%",jk,pp[jk],jk,100*pos/pp[jk]); |
for(jk=1,pos=0,posprop=0; jk <=nlstate ; jk++){ |
}else{ |
pos += pp[jk]; |
if(first==1) |
posprop += prop[jk][i]; |
printf(" %d.=%.0f loss[%d]=NaNQ%%",jk,pp[jk],jk); |
} |
fprintf(ficlog," %d.=%.0f loss[%d]=NaNQ%%",jk,pp[jk],jk); |
for(jk=1; jk <=nlstate ; jk++){ |
} |
if(pos>=1.e-5){ |
} |
if(first==1) |
|
printf(" %d.=%.0f prev[%d]=%.1f%%",jk,pp[jk],jk,100*pp[jk]/pos); |
for(jk=1; jk <=nlstate ; jk++){ |
fprintf(ficlog," %d.=%.0f prev[%d]=%.1f%%",jk,pp[jk],jk,100*pp[jk]/pos); |
/* posprop[jk]=0; */ |
}else{ |
for(m=0, pp[jk]=0; m <=nlstate+ndeath; m++)/* Summing on all ages */ |
if(first==1) |
pp[jk] += freq[jk][m][iage]; |
printf(" %d.=%.0f prev[%d]=NaNQ%%",jk,pp[jk],jk); |
} /* pp[jk] is the total number of transitions starting from state jk and any ending status until this age */ |
fprintf(ficlog," %d.=%.0f prev[%d]=NaNQ%%",jk,pp[jk],jk); |
|
} |
for(jk=1,pos=0, pospropta=0.; jk <=nlstate ; jk++){ |
if( i <= iagemax){ |
pos += pp[jk]; /* pos is the total number of transitions until this age */ |
if(pos>=1.e-5){ |
posprop[jk] += prop[jk][iage]; /* prop is the number of transitions from a live state |
fprintf(ficresp," %d %.5f %.0f %.0f",i,prop[jk][i]/posprop, prop[jk][i],posprop); |
from jk at age iage prop[s[m][iind]][(int)agev[m][iind]] += weight[iind] */ |
fprintf(ficresphtm,"<th>%d</th><td>%.5f</td><td>%.0f</td><td>%.0f</td>",i,prop[jk][i]/posprop, prop[jk][i],posprop); |
pospropta += prop[jk][iage]; /* prop is the number of transitions from a live state |
/*probs[i][jk][j1]= pp[jk]/pos;*/ |
from jk at age iage prop[s[m][iind]][(int)agev[m][iind]] += weight[iind] */ |
/*printf("\ni=%d jk=%d j1=%d %.5f %.0f %.0f %f",i,jk,j1,pp[jk]/pos, pp[jk],pos,probs[i][jk][j1]);*/ |
} |
} |
for(jk=1; jk <=nlstate ; jk++){ |
else{ |
if(pos>=1.e-5){ |
fprintf(ficresp," %d NaNq %.0f %.0f",i,prop[jk][i],posprop); |
if(first==1) |
fprintf(ficresphtm,"<th>%d</th><td>NaNq</td><td>%.0f</td><td>%.0f</td>",i, prop[jk][i],posprop); |
printf(" %d.=%.0f prev[%d]=%.1f%%",jk,pp[jk],jk,100*pp[jk]/pos); |
} |
fprintf(ficlog," %d.=%.0f prev[%d]=%.1f%%",jk,pp[jk],jk,100*pp[jk]/pos); |
} |
}else{ |
} |
if(first==1) |
|
printf(" %d.=%.0f prev[%d]=NaNQ%%",jk,pp[jk],jk); |
for(jk=-1; jk <=nlstate+ndeath; jk++){ |
fprintf(ficlog," %d.=%.0f prev[%d]=NaNQ%%",jk,pp[jk],jk); |
for(m=-1; m <=nlstate+ndeath; m++){ |
} |
if(freq[jk][m][i] !=0 ) { /* minimizing output */ |
if( iage <= iagemax){ |
if(first==1){ |
if(pos>=1.e-5){ |
printf(" %d%d=%.0f",jk,m,freq[jk][m][i]); |
fprintf(ficresp," %d %.5f %.0f %.0f",iage,prop[jk][iage]/pospropta, prop[jk][iage],pospropta); |
} |
fprintf(ficresphtm,"<th>%d</th><td>%.5f</td><td>%.0f</td><td>%.0f</td>",iage,prop[jk][iage]/pospropta, prop[jk][iage],pospropta); |
fprintf(ficlog," %d%d=%.0f",jk,m,freq[jk][m][i]); |
/*probs[iage][jk][j1]= pp[jk]/pos;*/ |
} |
/*printf("\niage=%d jk=%d j1=%d %.5f %.0f %.0f %f",iage,jk,j1,pp[jk]/pos, pp[jk],pos,probs[iage][jk][j1]);*/ |
if(jk!=0 && m!=0) |
} |
fprintf(ficresphtmfr,"<td>%.0f</td> ",freq[jk][m][i]); |
else{ |
} |
fprintf(ficresp," %d NaNq %.0f %.0f",iage,prop[jk][iage],pospropta); |
} |
fprintf(ficresphtm,"<th>%d</th><td>NaNq</td><td>%.0f</td><td>%.0f</td>",iage, prop[jk][iage],pospropta); |
fprintf(ficresphtmfr,"</tr>\n "); |
} |
if(i <= iagemax){ |
} |
fprintf(ficresp,"\n"); |
pospropt[jk] +=posprop[jk]; |
fprintf(ficresphtm,"</tr>\n"); |
} /* end loop jk */ |
} |
/* pospropt=0.; */ |
if(first==1) |
for(jk=-1; jk <=nlstate+ndeath; jk++){ |
printf("Others in log...\n"); |
for(m=-1; m <=nlstate+ndeath; m++){ |
fprintf(ficlog,"\n"); |
if(freq[jk][m][iage] !=0 ) { /* minimizing output */ |
} /* end loop i */ |
if(first==1){ |
fprintf(ficresphtm,"</table>\n"); |
printf(" %d%d=%.0f",jk,m,freq[jk][m][iage]); |
fprintf(ficresphtmfr,"</table>\n"); |
} |
/*}*/ |
fprintf(ficlog," %d%d=%.0f",jk,m,freq[jk][m][iage]); |
} /* end j1 */ |
} |
dateintmean=dateintsum/k2cpt; |
if(jk!=0 && m!=0) |
|
fprintf(ficresphtmfr,"<td>%.0f</td> ",freq[jk][m][iage]); |
fclose(ficresp); |
} |
fclose(ficresphtm); |
} /* end loop jk */ |
fclose(ficresphtmfr); |
posproptt=0.; |
free_ma3x(freq,-5,nlstate+ndeath,-5,nlstate+ndeath, iagemin-AGEMARGE, iagemax+3+AGEMARGE); |
for(jk=1; jk <=nlstate; jk++){ |
free_vector(pp,1,nlstate); |
posproptt += pospropt[jk]; |
free_matrix(prop,1,nlstate,iagemin-AGEMARGE, iagemax+3+AGEMARGE); |
} |
/* End of Freq */ |
fprintf(ficresphtmfr,"</tr>\n "); |
} |
if(iage <= iagemax){ |
|
fprintf(ficresp,"\n"); |
|
fprintf(ficresphtm,"</tr>\n"); |
|
} |
|
if(first==1) |
|
printf("Others in log...\n"); |
|
fprintf(ficlog,"\n"); |
|
} /* end loop age iage */ |
|
fprintf(ficresphtm,"<tr><th>Tot</th>"); |
|
for(jk=1; jk <=nlstate ; jk++){ |
|
if(posproptt < 1.e-5){ |
|
fprintf(ficresphtm,"<td>%.5f</td><td>%.0f</td><td>%.0f</td>",pospropt[jk]/posproptt,pospropt[jk],posproptt); |
|
}else{ |
|
fprintf(ficresphtm,"<td>Nanq</td><td>%.0f</td><td>%.0f</td>",pospropt[jk]/posproptt,pospropt[jk],posproptt); |
|
} |
|
} |
|
fprintf(ficresphtm,"</tr>\n"); |
|
fprintf(ficresphtm,"</table>\n"); |
|
fprintf(ficresphtmfr,"</table>\n"); |
|
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(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); |
|
invalidvarcomb[j1]=1; |
|
}else{ |
|
fprintf(ficresphtm,"\n <p> This combination (%d) is valid and result will be produced.</p>",j1); |
|
invalidvarcomb[j1]=0; |
|
} |
|
fprintf(ficresphtmfr,"</table>\n"); |
|
} /* end selected combination of covariate j1 */ |
|
dateintmean=dateintsum/k2cpt; |
|
|
|
fclose(ficresp); |
|
fclose(ficresphtm); |
|
fclose(ficresphtmfr); |
|
free_ma3x(freq,-5,nlstate+ndeath,-5,nlstate+ndeath, iagemin-AGEMARGE, iagemax+3+AGEMARGE); |
|
free_vector(pospropt,1,nlstate); |
|
free_vector(posprop,1,nlstate); |
|
free_matrix(prop,1,nlstate,iagemin-AGEMARGE, iagemax+3+AGEMARGE); |
|
free_vector(pp,1,nlstate); |
|
/* End of Freq */ |
|
} |
|
|
/************ Prevalence ********************/ |
/************ Prevalence ********************/ |
void prevalence(double ***probs, double agemin, double agemax, int **s, double **agev, int nlstate, int imx, int *Tvar, int **nbcode, int *ncodemax,double **mint,double **anint, double dateprev1,double dateprev2, int firstpass, int lastpass) |
void prevalence(double ***probs, double agemin, double agemax, int **s, double **agev, int nlstate, int imx, int *Tvar, int **nbcode, int *ncodemax,double **mint,double **anint, double dateprev1,double dateprev2, int firstpass, int lastpass) |
Line 4222 void concatwav(int wav[], int **dh, int
|
Line 4274 void concatwav(int wav[], int **dh, int
|
} |
} |
|
|
/*********** Tricode ****************************/ |
/*********** Tricode ****************************/ |
void tricode(int *Tvar, int **nbcode, int imx, int *Ndum) |
void tricode(int *cptcov, int *Tvar, int **nbcode, int imx, int *Ndum) |
{ |
{ |
/**< Uses cptcovn+2*cptcovprod as the number of covariates */ |
/**< Uses cptcovn+2*cptcovprod as the number of covariates */ |
/* Tvar[i]=atoi(stre); find 'n' in Vn and stores in Tvar. If model=V2+V1 Tvar[1]=2 and Tvar[2]=1 |
/* Tvar[i]=atoi(stre); find 'n' in Vn and stores in Tvar. If model=V2+V1 Tvar[1]=2 and Tvar[2]=1 |
* Boring subroutine which should only output nbcode[Tvar[j]][k] |
* Boring subroutine which should only output nbcode[Tvar[j]][k] |
* Tvar[5] in V2+V1+V3*age+V2*V4 is 2 (V2) |
* Tvar[5] in V2+V1+V3*age+V2*V4 is 2 (V2) |
* nbcode[Tvar[j]][1]= |
* nbcode[Tvar[5]][1]= nbcode[2][1]=0, nbcode[2][2]=1 (usually); |
*/ |
*/ |
|
|
int ij=1, k=0, j=0, i=0, maxncov=NCOVMAX; |
int ij=1, k=0, j=0, i=0, maxncov=NCOVMAX; |
Line 4237 void tricode(int *Tvar, int **nbcode, in
|
Line 4289 void tricode(int *Tvar, int **nbcode, in
|
int modmincovj=0; /* Modality min of covariates j */ |
int modmincovj=0; /* Modality min of covariates j */ |
|
|
|
|
cptcoveff=0; |
/* cptcoveff=0; */ |
|
*cptcov=0; |
|
|
for (k=1; k <= maxncov; k++) ncodemax[k]=0; /* Horrible constant again replaced by NCOVMAX */ |
for (k=1; k <= maxncov; k++) ncodemax[k]=0; /* Horrible constant again replaced by NCOVMAX */ |
|
|
Line 4347 void tricode(int *Tvar, int **nbcode, in
|
Line 4400 void tricode(int *Tvar, int **nbcode, in
|
} |
} |
} |
} |
/* ij--; */ |
/* ij--; */ |
cptcoveff=ij; /*Number of total covariates*/ |
/* cptcoveff=ij; /\*Number of total covariates*\/ */ |
|
*cptcov=ij; /*Number of total covariates*/ |
|
|
} |
} |
|
|
Line 5199 To be simple, these graphs help to under
|
Line 5253 To be simple, these graphs help to under
|
tj = (int) pow(2,cptcoveff); |
tj = (int) pow(2,cptcoveff); |
if (cptcovn<1) {tj=1;ncodemax[1]=1;} |
if (cptcovn<1) {tj=1;ncodemax[1]=1;} |
j1=0; |
j1=0; |
for(j1=1; j1<=tj;j1++){ |
for(j1=1; j1<=tj;j1++){ /* For each valid combination of covariates */ |
/*for(i1=1; i1<=ncodemax[t];i1++){ */ |
if (cptcovn>0) { |
/*j1++;*/ |
fprintf(ficresprob, "\n#********** Variable "); |
if (cptcovn>0) { |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprob, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresprob, "\n#********** Variable "); |
fprintf(ficresprob, "**********\n#\n"); |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprob, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresprobcov, "\n#********** Variable "); |
fprintf(ficresprob, "**********\n#\n"); |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcov, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresprobcov, "\n#********** Variable "); |
fprintf(ficresprobcov, "**********\n#\n"); |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcov, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
|
fprintf(ficresprobcov, "**********\n#\n"); |
fprintf(ficgp, "\n#********** Variable "); |
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficgp, " V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficgp, "\n#********** Variable "); |
fprintf(ficgp, "**********\n#\n"); |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficgp, " V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
|
fprintf(ficgp, "**********\n#\n"); |
|
|
fprintf(fichtmcov, "\n<hr size=\"2\" color=\"#EC5E5E\">********** Variable "); |
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(fichtm, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(fichtmcov, "\n<hr size=\"2\" color=\"#EC5E5E\">********** Variable "); |
fprintf(fichtmcov, "**********\n<hr size=\"2\" color=\"#EC5E5E\">"); |
for (z1=1; z1<=cptcoveff; z1++) fprintf(fichtm, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
|
fprintf(fichtmcov, "**********\n<hr size=\"2\" color=\"#EC5E5E\">"); |
fprintf(ficresprobcor, "\n#********** Variable "); |
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcor, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
fprintf(ficresprobcor, "\n#********** Variable "); |
fprintf(ficresprobcor, "**********\n#"); |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcor, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); |
if(invalidvarcomb[j1]){ |
fprintf(ficresprobcor, "**********\n#"); |
fprintf(ficgp,"\n#Combination (%d) ignored because no cases \n",j1); |
} |
fprintf(fichtmcov,"\n<h3>Combination (%d) ignored because no cases </h3>\n",j1); |
|
continue; |
gradg=matrix(1,npar,1,(nlstate)*(nlstate+ndeath)); |
} |
trgradg=matrix(1,(nlstate)*(nlstate+ndeath),1,npar); |
} |
gp=vector(1,(nlstate)*(nlstate+ndeath)); |
gradg=matrix(1,npar,1,(nlstate)*(nlstate+ndeath)); |
gm=vector(1,(nlstate)*(nlstate+ndeath)); |
trgradg=matrix(1,(nlstate)*(nlstate+ndeath),1,npar); |
for (age=bage; age<=fage; age ++){ |
gp=vector(1,(nlstate)*(nlstate+ndeath)); |
cov[2]=age; |
gm=vector(1,(nlstate)*(nlstate+ndeath)); |
if(nagesqr==1) |
for (age=bage; age<=fage; age ++){ |
cov[3]= age*age; |
cov[2]=age; |
for (k=1; k<=cptcovn;k++) { |
if(nagesqr==1) |
cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(j1,k)]; |
cov[3]= age*age; |
/*cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(j1,Tvar[k])];*//* j1 1 2 3 4 |
for (k=1; k<=cptcovn;k++) { |
* 1 1 1 1 1 |
cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(j1,k)]; |
* 2 2 1 1 1 |
/*cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(j1,Tvar[k])];*//* j1 1 2 3 4 |
* 3 1 2 1 1 |
* 1 1 1 1 1 |
*/ |
* 2 2 1 1 1 |
/* nbcode[1][1]=0 nbcode[1][2]=1;*/ |
* 3 1 2 1 1 |
} |
*/ |
/* for (k=1; k<=cptcovage;k++) cov[2+Tage[k]]=cov[2+Tage[k]]*cov[2]; */ |
/* nbcode[1][1]=0 nbcode[1][2]=1;*/ |
for (k=1; k<=cptcovage;k++) cov[2+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; |
} |
for (k=1; k<=cptcovprod;k++) |
/* for (k=1; k<=cptcovage;k++) cov[2+Tage[k]]=cov[2+Tage[k]]*cov[2]; */ |
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)]*nbcode[Tvard[k][2]][codtabm(ij,k)]; |
for (k=1; k<=cptcovage;k++) cov[2+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; |
|
for (k=1; k<=cptcovprod;k++) |
|
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)]*nbcode[Tvard[k][2]][codtabm(ij,k)]; |
for(theta=1; theta <=npar; theta++){ |
|
for(i=1; i<=npar; i++) |
|
xp[i] = x[i] + (i==theta ?delti[theta]:(double)0); |
for(theta=1; theta <=npar; theta++){ |
|
for(i=1; i<=npar; i++) |
pmij(pmmij,cov,ncovmodel,xp,nlstate); |
xp[i] = x[i] + (i==theta ?delti[theta]:(double)0); |
|
|
k=0; |
pmij(pmmij,cov,ncovmodel,xp,nlstate); |
for(i=1; i<= (nlstate); i++){ |
|
for(j=1; j<=(nlstate+ndeath);j++){ |
k=0; |
k=k+1; |
for(i=1; i<= (nlstate); i++){ |
gp[k]=pmmij[i][j]; |
for(j=1; j<=(nlstate+ndeath);j++){ |
} |
k=k+1; |
} |
gp[k]=pmmij[i][j]; |
|
} |
for(i=1; i<=npar; i++) |
} |
xp[i] = x[i] - (i==theta ?delti[theta]:(double)0); |
|
|
for(i=1; i<=npar; i++) |
pmij(pmmij,cov,ncovmodel,xp,nlstate); |
xp[i] = x[i] - (i==theta ?delti[theta]:(double)0); |
k=0; |
|
for(i=1; i<=(nlstate); i++){ |
pmij(pmmij,cov,ncovmodel,xp,nlstate); |
for(j=1; j<=(nlstate+ndeath);j++){ |
k=0; |
k=k+1; |
for(i=1; i<=(nlstate); i++){ |
gm[k]=pmmij[i][j]; |
for(j=1; j<=(nlstate+ndeath);j++){ |
} |
k=k+1; |
} |
gm[k]=pmmij[i][j]; |
|
} |
for(i=1; i<= (nlstate)*(nlstate+ndeath); i++) |
} |
gradg[theta][i]=(gp[i]-gm[i])/(double)2./delti[theta]; |
|
} |
for(i=1; i<= (nlstate)*(nlstate+ndeath); i++) |
|
gradg[theta][i]=(gp[i]-gm[i])/(double)2./delti[theta]; |
for(j=1; j<=(nlstate)*(nlstate+ndeath);j++) |
} |
for(theta=1; theta <=npar; theta++) |
|
trgradg[j][theta]=gradg[theta][j]; |
|
|
|
matprod2(dnewm,trgradg,1,(nlstate)*(nlstate+ndeath),1,npar,1,npar,matcov); |
|
matprod2(doldm,dnewm,1,(nlstate)*(nlstate+ndeath),1,npar,1,(nlstate)*(nlstate+ndeath),gradg); |
|
|
|
pmij(pmmij,cov,ncovmodel,x,nlstate); |
for(j=1; j<=(nlstate)*(nlstate+ndeath);j++) |
|
for(theta=1; theta <=npar; theta++) |
k=0; |
trgradg[j][theta]=gradg[theta][j]; |
for(i=1; i<=(nlstate); i++){ |
|
for(j=1; j<=(nlstate+ndeath);j++){ |
matprod2(dnewm,trgradg,1,(nlstate)*(nlstate+ndeath),1,npar,1,npar,matcov); |
k=k+1; |
matprod2(doldm,dnewm,1,(nlstate)*(nlstate+ndeath),1,npar,1,(nlstate)*(nlstate+ndeath),gradg); |
mu[k][(int) age]=pmmij[i][j]; |
|
} |
pmij(pmmij,cov,ncovmodel,x,nlstate); |
} |
|
|
k=0; |
|
for(i=1; i<=(nlstate); i++){ |
|
for(j=1; j<=(nlstate+ndeath);j++){ |
|
k=k+1; |
|
mu[k][(int) age]=pmmij[i][j]; |
|
} |
|
} |
for(i=1;i<=(nlstate)*(nlstate+ndeath);i++) |
for(i=1;i<=(nlstate)*(nlstate+ndeath);i++) |
for(j=1;j<=(nlstate)*(nlstate+ndeath);j++) |
for(j=1;j<=(nlstate)*(nlstate+ndeath);j++) |
varpij[i][j][(int)age] = doldm[i][j]; |
varpij[i][j][(int)age] = doldm[i][j]; |
|
|
/*printf("\n%d ",(int)age); |
/*printf("\n%d ",(int)age); |
for (i=1; i<=(nlstate)*(nlstate+ndeath);i++){ |
for (i=1; i<=(nlstate)*(nlstate+ndeath);i++){ |
printf("%e [%e ;%e] ",gm[i],gm[i]-2*sqrt(doldm[i][i]),gm[i]+2*sqrt(doldm[i][i])); |
printf("%e [%e ;%e] ",gm[i],gm[i]-2*sqrt(doldm[i][i]),gm[i]+2*sqrt(doldm[i][i])); |
fprintf(ficlog,"%e [%e ;%e] ",gm[i],gm[i]-2*sqrt(doldm[i][i]),gm[i]+2*sqrt(doldm[i][i])); |
fprintf(ficlog,"%e [%e ;%e] ",gm[i],gm[i]-2*sqrt(doldm[i][i]),gm[i]+2*sqrt(doldm[i][i])); |
}*/ |
}*/ |
|
|
fprintf(ficresprob,"\n%d ",(int)age); |
fprintf(ficresprob,"\n%d ",(int)age); |
fprintf(ficresprobcov,"\n%d ",(int)age); |
fprintf(ficresprobcov,"\n%d ",(int)age); |
fprintf(ficresprobcor,"\n%d ",(int)age); |
fprintf(ficresprobcor,"\n%d ",(int)age); |
|
|
for (i=1; i<=(nlstate)*(nlstate+ndeath);i++) |
for (i=1; i<=(nlstate)*(nlstate+ndeath);i++) |
fprintf(ficresprob,"%11.3e (%11.3e) ",mu[i][(int) age],sqrt(varpij[i][i][(int)age])); |
fprintf(ficresprob,"%11.3e (%11.3e) ",mu[i][(int) age],sqrt(varpij[i][i][(int)age])); |
for (i=1; i<=(nlstate)*(nlstate+ndeath);i++){ |
for (i=1; i<=(nlstate)*(nlstate+ndeath);i++){ |
fprintf(ficresprobcov,"%11.3e ",mu[i][(int) age]); |
fprintf(ficresprobcov,"%11.3e ",mu[i][(int) age]); |
fprintf(ficresprobcor,"%11.3e ",mu[i][(int) age]); |
fprintf(ficresprobcor,"%11.3e ",mu[i][(int) age]); |
} |
} |
i=0; |
i=0; |
for (k=1; k<=(nlstate);k++){ |
for (k=1; k<=(nlstate);k++){ |
for (l=1; l<=(nlstate+ndeath);l++){ |
for (l=1; l<=(nlstate+ndeath);l++){ |
i++; |
i++; |
fprintf(ficresprobcov,"\n%d %d-%d",(int)age,k,l); |
fprintf(ficresprobcov,"\n%d %d-%d",(int)age,k,l); |
fprintf(ficresprobcor,"\n%d %d-%d",(int)age,k,l); |
fprintf(ficresprobcor,"\n%d %d-%d",(int)age,k,l); |
for (j=1; j<=i;j++){ |
for (j=1; j<=i;j++){ |
/* printf(" k=%d l=%d i=%d j=%d\n",k,l,i,j);fflush(stdout); */ |
/* printf(" k=%d l=%d i=%d j=%d\n",k,l,i,j);fflush(stdout); */ |
fprintf(ficresprobcov," %11.3e",varpij[i][j][(int)age]); |
fprintf(ficresprobcov," %11.3e",varpij[i][j][(int)age]); |
fprintf(ficresprobcor," %11.3e",varpij[i][j][(int) age]/sqrt(varpij[i][i][(int) age])/sqrt(varpij[j][j][(int)age])); |
fprintf(ficresprobcor," %11.3e",varpij[i][j][(int) age]/sqrt(varpij[i][i][(int) age])/sqrt(varpij[j][j][(int)age])); |
} |
} |
} |
} |
}/* end of loop for state */ |
}/* end of loop for state */ |
} /* end of loop for age */ |
} /* end of loop for age */ |
free_vector(gp,1,(nlstate+ndeath)*(nlstate+ndeath)); |
free_vector(gp,1,(nlstate+ndeath)*(nlstate+ndeath)); |
free_vector(gm,1,(nlstate+ndeath)*(nlstate+ndeath)); |
free_vector(gm,1,(nlstate+ndeath)*(nlstate+ndeath)); |
free_matrix(trgradg,1,(nlstate+ndeath)*(nlstate+ndeath),1,npar); |
free_matrix(trgradg,1,(nlstate+ndeath)*(nlstate+ndeath),1,npar); |
free_matrix(gradg,1,(nlstate+ndeath)*(nlstate+ndeath),1,npar); |
free_matrix(gradg,1,(nlstate+ndeath)*(nlstate+ndeath),1,npar); |
|
|
/* Confidence intervalle of pij */ |
/* Confidence intervalle of pij */ |
/* |
/* |
fprintf(ficgp,"\nunset parametric;unset label"); |
fprintf(ficgp,"\nunset parametric;unset label"); |
fprintf(ficgp,"\nset log y;unset log x; set xlabel \"Age\";set ylabel \"probability (year-1)\""); |
fprintf(ficgp,"\nset log y;unset log x; set xlabel \"Age\";set ylabel \"probability (year-1)\""); |
fprintf(ficgp,"\nset ter png small\nset size 0.65,0.65"); |
fprintf(ficgp,"\nset ter png small\nset size 0.65,0.65"); |
fprintf(fichtm,"\n<br>Probability with confidence intervals expressed in year<sup>-1</sup> :<a href=\"pijgr%s.png\">pijgr%s.png</A>, ",optionfilefiname,optionfilefiname); |
fprintf(fichtm,"\n<br>Probability with confidence intervals expressed in year<sup>-1</sup> :<a href=\"pijgr%s.png\">pijgr%s.png</A>, ",optionfilefiname,optionfilefiname); |
fprintf(fichtm,"\n<br><img src=\"pijgr%s.png\"> ",optionfilefiname); |
fprintf(fichtm,"\n<br><img src=\"pijgr%s.png\"> ",optionfilefiname); |
fprintf(ficgp,"\nset out \"pijgr%s.png\"",optionfilefiname); |
fprintf(ficgp,"\nset out \"pijgr%s.png\"",optionfilefiname); |
fprintf(ficgp,"\nplot \"%s\" every :::%d::%d u 1:2 \"\%%lf",k1,k2,xfilevarprob); |
fprintf(ficgp,"\nplot \"%s\" every :::%d::%d u 1:2 \"\%%lf",k1,k2,xfilevarprob); |
*/ |
*/ |
|
|
/* Drawing ellipsoids of confidence of two variables p(k1-l1,k2-l2)*/ |
/* Drawing ellipsoids of confidence of two variables p(k1-l1,k2-l2)*/ |
first1=1;first2=2; |
first1=1;first2=2; |
for (k2=1; k2<=(nlstate);k2++){ |
for (k2=1; k2<=(nlstate);k2++){ |
for (l2=1; l2<=(nlstate+ndeath);l2++){ |
for (l2=1; l2<=(nlstate+ndeath);l2++){ |
if(l2==k2) continue; |
if(l2==k2) continue; |
j=(k2-1)*(nlstate+ndeath)+l2; |
j=(k2-1)*(nlstate+ndeath)+l2; |
for (k1=1; k1<=(nlstate);k1++){ |
for (k1=1; k1<=(nlstate);k1++){ |
for (l1=1; l1<=(nlstate+ndeath);l1++){ |
for (l1=1; l1<=(nlstate+ndeath);l1++){ |
if(l1==k1) continue; |
if(l1==k1) continue; |
i=(k1-1)*(nlstate+ndeath)+l1; |
i=(k1-1)*(nlstate+ndeath)+l1; |
if(i<=j) continue; |
if(i<=j) continue; |
for (age=bage; age<=fage; age ++){ |
for (age=bage; age<=fage; age ++){ |
if ((int)age %5==0){ |
if ((int)age %5==0){ |
v1=varpij[i][i][(int)age]/stepm*YEARM/stepm*YEARM; |
v1=varpij[i][i][(int)age]/stepm*YEARM/stepm*YEARM; |
v2=varpij[j][j][(int)age]/stepm*YEARM/stepm*YEARM; |
v2=varpij[j][j][(int)age]/stepm*YEARM/stepm*YEARM; |
cv12=varpij[i][j][(int)age]/stepm*YEARM/stepm*YEARM; |
cv12=varpij[i][j][(int)age]/stepm*YEARM/stepm*YEARM; |
mu1=mu[i][(int) age]/stepm*YEARM ; |
mu1=mu[i][(int) age]/stepm*YEARM ; |
mu2=mu[j][(int) age]/stepm*YEARM; |
mu2=mu[j][(int) age]/stepm*YEARM; |
c12=cv12/sqrt(v1*v2); |
c12=cv12/sqrt(v1*v2); |
/* Computing eigen value of matrix of covariance */ |
/* Computing eigen value of matrix of covariance */ |
lc1=((v1+v2)+sqrt((v1+v2)*(v1+v2) - 4*(v1*v2-cv12*cv12)))/2.; |
lc1=((v1+v2)+sqrt((v1+v2)*(v1+v2) - 4*(v1*v2-cv12*cv12)))/2.; |
lc2=((v1+v2)-sqrt((v1+v2)*(v1+v2) - 4*(v1*v2-cv12*cv12)))/2.; |
lc2=((v1+v2)-sqrt((v1+v2)*(v1+v2) - 4*(v1*v2-cv12*cv12)))/2.; |
if ((lc2 <0) || (lc1 <0) ){ |
if ((lc2 <0) || (lc1 <0) ){ |
if(first2==1){ |
if(first2==1){ |
first1=0; |
first1=0; |
printf("Strange: j1=%d One eigen value of 2x2 matrix of covariance is negative, lc1=%11.3e, lc2=%11.3e, v1=%11.3e, v2=%11.3e, cv12=%11.3e.\n It means that the matrix was not well estimated (varpij), for i=%2d, j=%2d, age=%4d .\n See files %s and %s. Probably WRONG RESULTS. See log file for details...\n", j1, lc1, lc2, v1, v2, cv12, i, j, (int)age,fileresprobcov, fileresprobcor); |
printf("Strange: j1=%d One eigen value of 2x2 matrix of covariance is negative, lc1=%11.3e, lc2=%11.3e, v1=%11.3e, v2=%11.3e, cv12=%11.3e.\n It means that the matrix was not well estimated (varpij), for i=%2d, j=%2d, age=%4d .\n See files %s and %s. Probably WRONG RESULTS. See log file for details...\n", j1, lc1, lc2, v1, v2, cv12, i, j, (int)age,fileresprobcov, fileresprobcor); |
} |
} |
fprintf(ficlog,"Strange: j1=%d One eigen value of 2x2 matrix of covariance is negative, lc1=%11.3e, lc2=%11.3e, v1=%11.3e, v2=%11.3e, cv12=%11.3e.\n It means that the matrix was not well estimated (varpij), for i=%2d, j=%2d, age=%4d .\n See files %s and %s. Probably WRONG RESULTS.\n", j1, lc1, lc2, v1, v2, cv12, i, j, (int)age,fileresprobcov, fileresprobcor);fflush(ficlog); |
fprintf(ficlog,"Strange: j1=%d One eigen value of 2x2 matrix of covariance is negative, lc1=%11.3e, lc2=%11.3e, v1=%11.3e, v2=%11.3e, cv12=%11.3e.\n It means that the matrix was not well estimated (varpij), for i=%2d, j=%2d, age=%4d .\n See files %s and %s. Probably WRONG RESULTS.\n", j1, lc1, lc2, v1, v2, cv12, i, j, (int)age,fileresprobcov, fileresprobcor);fflush(ficlog); |
/* lc1=fabs(lc1); */ /* If we want to have them positive */ |
/* lc1=fabs(lc1); */ /* If we want to have them positive */ |
/* lc2=fabs(lc2); */ |
/* lc2=fabs(lc2); */ |
} |
} |
|
|
/* Eigen vectors */ |
/* Eigen vectors */ |
v11=(1./sqrt(1+(v1-lc1)*(v1-lc1)/cv12/cv12)); |
v11=(1./sqrt(1+(v1-lc1)*(v1-lc1)/cv12/cv12)); |
/*v21=sqrt(1.-v11*v11); *//* error */ |
/*v21=sqrt(1.-v11*v11); *//* error */ |
v21=(lc1-v1)/cv12*v11; |
v21=(lc1-v1)/cv12*v11; |
v12=-v21; |
v12=-v21; |
v22=v11; |
v22=v11; |
tnalp=v21/v11; |
tnalp=v21/v11; |
if(first1==1){ |
if(first1==1){ |
first1=0; |
first1=0; |
printf("%d %d%d-%d%d mu %.4e %.4e Var %.4e %.4e cor %.3f cov %.4e Eig %.3e %.3e 1stv %.3f %.3f tang %.3f\nOthers in log...\n",(int) age,k1,l1,k2,l2,mu1,mu2,v1,v2,c12,cv12,lc1,lc2,v11,v21,tnalp); |
printf("%d %d%d-%d%d mu %.4e %.4e Var %.4e %.4e cor %.3f cov %.4e Eig %.3e %.3e 1stv %.3f %.3f tang %.3f\nOthers in log...\n",(int) age,k1,l1,k2,l2,mu1,mu2,v1,v2,c12,cv12,lc1,lc2,v11,v21,tnalp); |
} |
} |
fprintf(ficlog,"%d %d%d-%d%d mu %.4e %.4e Var %.4e %.4e cor %.3f cov %.4e Eig %.3e %.3e 1stv %.3f %.3f tan %.3f\n",(int) age,k1,l1,k2,l2,mu1,mu2,v1,v2,c12,cv12,lc1,lc2,v11,v21,tnalp); |
fprintf(ficlog,"%d %d%d-%d%d mu %.4e %.4e Var %.4e %.4e cor %.3f cov %.4e Eig %.3e %.3e 1stv %.3f %.3f tan %.3f\n",(int) age,k1,l1,k2,l2,mu1,mu2,v1,v2,c12,cv12,lc1,lc2,v11,v21,tnalp); |
/*printf(fignu*/ |
/*printf(fignu*/ |
/* mu1+ v11*lc1*cost + v12*lc2*sin(t) */ |
/* mu1+ v11*lc1*cost + v12*lc2*sin(t) */ |
/* mu2+ v21*lc1*cost + v22*lc2*sin(t) */ |
/* mu2+ v21*lc1*cost + v22*lc2*sin(t) */ |
if(first==1){ |
if(first==1){ |
first=0; |
first=0; |
fprintf(ficgp,"\n# Ellipsoids of confidence\n#\n"); |
fprintf(ficgp,"\n# Ellipsoids of confidence\n#\n"); |
fprintf(ficgp,"\nset parametric;unset label"); |
fprintf(ficgp,"\nset parametric;unset label"); |
fprintf(ficgp,"\nset log y;set log x; set xlabel \"p%1d%1d (year-1)\";set ylabel \"p%1d%1d (year-1)\"",k1,l1,k2,l2); |
fprintf(ficgp,"\nset log y;set log x; set xlabel \"p%1d%1d (year-1)\";set ylabel \"p%1d%1d (year-1)\"",k1,l1,k2,l2); |
fprintf(ficgp,"\nset ter svg size 640, 480"); |
fprintf(ficgp,"\nset ter svg size 640, 480"); |
fprintf(fichtmcov,"\n<br>Ellipsoids of confidence cov(p%1d%1d,p%1d%1d) expressed in year<sup>-1</sup>\ |
fprintf(fichtmcov,"\n<br>Ellipsoids of confidence cov(p%1d%1d,p%1d%1d) expressed in year<sup>-1</sup>\ |
:<a href=\"%s_%d%1d%1d-%1d%1d.svg\">\ |
:<a href=\"%s_%d%1d%1d-%1d%1d.svg\"> \ |
%s_%d%1d%1d-%1d%1d.svg</A>, ",k1,l1,k2,l2,\ |
%s_%d%1d%1d-%1d%1d.svg</A>, ",k1,l1,k2,l2,\ |
subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2,\ |
subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2, \ |
subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2); |
subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2); |
fprintf(fichtmcov,"\n<br><img src=\"%s_%d%1d%1d-%1d%1d.svg\"> ",subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2); |
fprintf(fichtmcov,"\n<br><img src=\"%s_%d%1d%1d-%1d%1d.svg\"> ",subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2); |
fprintf(fichtmcov,"\n<br> Correlation at age %d (%.3f),",(int) age, c12); |
fprintf(fichtmcov,"\n<br> Correlation at age %d (%.3f),",(int) age, c12); |
fprintf(ficgp,"\nset out \"%s_%d%1d%1d-%1d%1d.svg\"",subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2); |
fprintf(ficgp,"\nset out \"%s_%d%1d%1d-%1d%1d.svg\"",subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2); |
fprintf(ficgp,"\nset label \"%d\" at %11.3e,%11.3e center",(int) age, mu1,mu2); |
fprintf(ficgp,"\nset label \"%d\" at %11.3e,%11.3e center",(int) age, mu1,mu2); |
fprintf(ficgp,"\n# Age %d, p%1d%1d - p%1d%1d",(int) age, k1,l1,k2,l2); |
fprintf(ficgp,"\n# Age %d, p%1d%1d - p%1d%1d",(int) age, k1,l1,k2,l2); |
fprintf(ficgp,"\nplot [-pi:pi] %11.3e+ %.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)), %11.3e +%.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)) not",\ |
fprintf(ficgp,"\nplot [-pi:pi] %11.3e+ %.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)), %11.3e +%.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)) not", \ |
mu1,std,v11,sqrt(lc1),v12,sqrt(lc2),\ |
mu1,std,v11,sqrt(lc1),v12,sqrt(lc2), \ |
mu2,std,v21,sqrt(lc1),v22,sqrt(lc2)); |
mu2,std,v21,sqrt(lc1),v22,sqrt(lc2)); |
}else{ |
}else{ |
first=0; |
first=0; |
fprintf(fichtmcov," %d (%.3f),",(int) age, c12); |
fprintf(fichtmcov," %d (%.3f),",(int) age, c12); |
fprintf(ficgp,"\n# Age %d, p%1d%1d - p%1d%1d",(int) age, k1,l1,k2,l2); |
fprintf(ficgp,"\n# Age %d, p%1d%1d - p%1d%1d",(int) age, k1,l1,k2,l2); |
fprintf(ficgp,"\nset label \"%d\" at %11.3e,%11.3e center",(int) age, mu1,mu2); |
fprintf(ficgp,"\nset label \"%d\" at %11.3e,%11.3e center",(int) age, mu1,mu2); |
fprintf(ficgp,"\nreplot %11.3e+ %.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)), %11.3e +%.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)) not",\ |
fprintf(ficgp,"\nreplot %11.3e+ %.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)), %11.3e +%.3f*(%11.3e*%11.3e*cos(t)+%11.3e*%11.3e*sin(t)) not", \ |
mu1,std,v11,sqrt(lc1),v12,sqrt(lc2),\ |
mu1,std,v11,sqrt(lc1),v12,sqrt(lc2), \ |
mu2,std,v21,sqrt(lc1),v22,sqrt(lc2)); |
mu2,std,v21,sqrt(lc1),v22,sqrt(lc2)); |
}/* if first */ |
}/* if first */ |
} /* age mod 5 */ |
} /* age mod 5 */ |
} /* end loop age */ |
} /* end loop age */ |
fprintf(ficgp,"\nset out;\nset out \"%s_%d%1d%1d-%1d%1d.svg\";replot;set out;",subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2); |
fprintf(ficgp,"\nset out;\nset out \"%s_%d%1d%1d-%1d%1d.svg\";replot;set out;",subdirf2(optionfilefiname,"VARPIJGR_"), j1,k1,l1,k2,l2); |
first=1; |
first=1; |
} /*l12 */ |
} /*l12 */ |
} /* k12 */ |
} /* k12 */ |
} /*l1 */ |
} /*l1 */ |
}/* k1 */ |
}/* k1 */ |
/* } */ /* loop covariates */ |
} /* loop on combination of covariates j1 */ |
} |
|
free_ma3x(varpij,1,nlstate,1,nlstate+ndeath,(int) bage, (int)fage); |
free_ma3x(varpij,1,nlstate,1,nlstate+ndeath,(int) bage, (int)fage); |
free_matrix(mu,1,(nlstate+ndeath)*(nlstate+ndeath),(int) bage, (int)fage); |
free_matrix(mu,1,(nlstate+ndeath)*(nlstate+ndeath),(int) bage, (int)fage); |
free_matrix(doldm,1,(nlstate)*(nlstate+ndeath),1,(nlstate)*(nlstate+ndeath)); |
free_matrix(doldm,1,(nlstate)*(nlstate+ndeath),1,(nlstate)*(nlstate+ndeath)); |
Line 5488 fprintf(fichtm," \n<ul><li><b>Graphs</b>
|
Line 5543 fprintf(fichtm," \n<ul><li><b>Graphs</b>
|
|
|
jj1=0; |
jj1=0; |
for(k1=1; k1<=m;k1++){ |
for(k1=1; k1<=m;k1++){ |
|
|
/* for(i1=1; i1<=ncodemax[k1];i1++){ */ |
/* for(i1=1; i1<=ncodemax[k1];i1++){ */ |
jj1++; |
jj1++; |
if (cptcovn > 0) { |
if (cptcovn > 0) { |
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 ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); |
fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); |
printf(" V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]);fflush(stdout); |
printf(" V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]);fflush(stdout); |
} |
} |
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
} |
if(invalidvarcomb[k1]){ |
/* aij, bij */ |
fprintf(fichtm,"\n<h3>Combination (%d) ignored because no cases </h3>\n",k1); |
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.svg\">%s_%d-1.svg</a><br> \ |
printf("\nCombination (%d) ignored because no cases \n",k1); |
|
continue; |
|
} |
|
} |
|
/* 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.svg\">%s_%d-1.svg</a><br> \ |
<img src=\"%s_%d-1.svg\">",model,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1); |
<img src=\"%s_%d-1.svg\">",model,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1); |
/* 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.svg\">%s_%d-2.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.svg\">%s_%d-2.svg</a><br> \ |
<img src=\"%s_%d-2.svg\">",stepm,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1); |
<img src=\"%s_%d-2.svg\">",stepm,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1); |
/* Quasi-incidences */ |
/* Quasi-incidences */ |
fprintf(fichtm,"<br>\n- I<sub>ij</sub> or Conditional probabilities to be observed in state j being in state i %d (stepm) months\ |
fprintf(fichtm,"<br>\n- I<sub>ij</sub> or Conditional probabilities to be observed in state j being in state i %d (stepm) months\ |
before but expressed in per year i.e. quasi incidences if stepm is small and probabilities too,\ |
before but expressed in per year i.e. quasi incidences if stepm is small and probabilities too, \ |
incidence (rates) are the limit when h tends to zero of the ratio of the probability <sub>h</sub>P<sub>ij</sub> \ |
incidence (rates) are the limit when h tends to zero of the ratio of the probability <sub>h</sub>P<sub>ij</sub> \ |
divided by h: <sub>h</sub>P<sub>ij</sub>/h : <a href=\"%s_%d-3.svg\">%s_%d-3.svg</a><br> \ |
divided by h: <sub>h</sub>P<sub>ij</sub>/h : <a href=\"%s_%d-3.svg\">%s_%d-3.svg</a><br> \ |
<img src=\"%s_%d-3.svg\">",stepm,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1); |
<img src=\"%s_%d-3.svg\">",stepm,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1,subdirf2(optionfilefiname,"PE_"),jj1); |
/* Survival functions (period) in state j */ |
/* Survival functions (period) in state j */ |
for(cpt=1; cpt<=nlstate;cpt++){ |
for(cpt=1; cpt<=nlstate;cpt++){ |
fprintf(fichtm,"<br>\n- Survival functions in state %d. Or probability to survive in state %d being in state (1 to %d) at different ages. <a href=\"%s%d_%d.svg\">%s%d_%d.svg</a><br> \ |
fprintf(fichtm,"<br>\n- Survival functions in state %d. Or probability to survive in state %d being in state (1 to %d) at different ages. <a href=\"%s%d_%d.svg\">%s%d_%d.svg</a><br> \ |
<img src=\"%s_%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"LIJ_"),cpt,jj1,subdirf2(optionfilefiname,"LIJ_"),cpt,jj1,subdirf2(optionfilefiname,"LIJ_"),cpt,jj1); |
<img src=\"%s_%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"LIJ_"),cpt,jj1,subdirf2(optionfilefiname,"LIJ_"),cpt,jj1,subdirf2(optionfilefiname,"LIJ_"),cpt,jj1); |
} |
} |
/* State specific survival functions (period) */ |
/* State specific survival functions (period) */ |
for(cpt=1; cpt<=nlstate;cpt++){ |
for(cpt=1; cpt<=nlstate;cpt++){ |
fprintf(fichtm,"<br>\n- Survival functions from state %d in each live state and total.\ |
fprintf(fichtm,"<br>\n- Survival functions from state %d in each live state and total.\ |
Or probability to survive in various states (1 to %d) being in state %d at different ages.\ |
Or probability to survive in various states (1 to %d) being in state %d at different ages. \ |
<a href=\"%s%d_%d.svg\">%s%d_%d.svg</a><br> <img src=\"%s_%d-%d.svg\">", cpt, nlstate, cpt, subdirf2(optionfilefiname,"LIJT_"),cpt,jj1,subdirf2(optionfilefiname,"LIJT_"),cpt,jj1,subdirf2(optionfilefiname,"LIJT_"),cpt,jj1); |
<a href=\"%s%d_%d.svg\">%s%d_%d.svg</a><br> <img src=\"%s_%d-%d.svg\">", cpt, nlstate, cpt, subdirf2(optionfilefiname,"LIJT_"),cpt,jj1,subdirf2(optionfilefiname,"LIJT_"),cpt,jj1,subdirf2(optionfilefiname,"LIJT_"),cpt,jj1); |
} |
} |
/* 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 being in state (1 to %d) at different ages. <a href=\"%s_%d-%d.svg\">%s_%d-%d.svg</a><br> \ |
fprintf(fichtm,"<br>\n- Convergence 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.svg\">%s_%d-%d.svg</a><br> \ |
<img src=\"%s_%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"P_"),cpt,jj1,subdirf2(optionfilefiname,"P_"),cpt,jj1,subdirf2(optionfilefiname,"P_"),cpt,jj1); |
<img src=\"%s_%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"P_"),cpt,jj1,subdirf2(optionfilefiname,"P_"),cpt,jj1,subdirf2(optionfilefiname,"P_"),cpt,jj1); |
} |
} |
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 period (stable) back 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.svg\">%s_%d-%d.svg</a><br> \ |
fprintf(fichtm,"<br>\n- Convergence to period (stable) back 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.svg\">%s_%d-%d.svg</a><br> \ |
<img src=\"%s_%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"PB_"),cpt,jj1,subdirf2(optionfilefiname,"PB_"),cpt,jj1,subdirf2(optionfilefiname,"PB_"),cpt,jj1); |
<img src=\"%s_%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"PB_"),cpt,jj1,subdirf2(optionfilefiname,"PB_"),cpt,jj1,subdirf2(optionfilefiname,"PB_"),cpt,jj1); |
} |
} |
} |
} |
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.svg\">%s%d_%d.svg</a><br> \ |
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.svg\">%s%d_%d.svg</a><br> \ |
<img src=\"%s_%d-%d.svg\">", dateprev1, dateprev2, cpt, cpt, nlstate, subdirf2(optionfilefiname,"PROJ_"),cpt,jj1,subdirf2(optionfilefiname,"PROJ_"),cpt,jj1,subdirf2(optionfilefiname,"PROJ_"),cpt,jj1); |
<img src=\"%s_%d-%d.svg\">", dateprev1, dateprev2, cpt, cpt, nlstate, subdirf2(optionfilefiname,"PROJ_"),cpt,jj1,subdirf2(optionfilefiname,"PROJ_"),cpt,jj1,subdirf2(optionfilefiname,"PROJ_"),cpt,jj1); |
} |
} |
} |
} |
|
|
for(cpt=1; cpt<=nlstate;cpt++) { |
for(cpt=1; cpt<=nlstate;cpt++) { |
fprintf(fichtm,"\n<br>- Life expectancy by health state (%d) at initial age and its decomposition into health expectancies in each alive state (1 to %d) (or area under each survival functions): <a href=\"%s_%d%d.svg\">%s_%d%d.svg</a> <br> \ |
fprintf(fichtm,"\n<br>- Life expectancy by health state (%d) at initial age and its decomposition into health expectancies in each alive state (1 to %d) (or area under each survival functions): <a href=\"%s_%d%d.svg\">%s_%d%d.svg</a> <br> \ |
<img src=\"%s_%d%d.svg\">",cpt,nlstate,subdirf2(optionfilefiname,"EXP_"),cpt,jj1,subdirf2(optionfilefiname,"EXP_"),cpt,jj1,subdirf2(optionfilefiname,"EXP_"),cpt,jj1); |
<img src=\"%s_%d%d.svg\">",cpt,nlstate,subdirf2(optionfilefiname,"EXP_"),cpt,jj1,subdirf2(optionfilefiname,"EXP_"),cpt,jj1,subdirf2(optionfilefiname,"EXP_"),cpt,jj1); |
} |
} |
/* } /\* end i1 *\/ */ |
/* } /\* end i1 *\/ */ |
}/* End k1 */ |
}/* End k1 */ |
fprintf(fichtm,"</ul>"); |
fprintf(fichtm,"</ul>"); |
Line 5602 See page 'Matrix of variance-covariance
|
Line 5663 See page 'Matrix of variance-covariance
|
|
|
jj1=0; |
jj1=0; |
for(k1=1; k1<=m;k1++){ |
for(k1=1; k1<=m;k1++){ |
/* for(i1=1; i1<=ncodemax[k1];i1++){ */ |
/* for(i1=1; i1<=ncodemax[k1];i1++){ */ |
jj1++; |
jj1++; |
if (cptcovn > 0) { |
if (cptcovn > 0) { |
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 ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); |
fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); |
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
|
|
|
if(invalidvarcomb[k1]){ |
|
fprintf(fichtm,"\n<h4>Combination (%d) ignored because no cases </h4>\n",k1); |
|
continue; |
|
} |
} |
} |
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) and period (incidence based) \ |
Line 5631 true period expectancies (those weighted
|
Line 5697 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]; |
int cpt=0,k1=0,i=0,k=0,j=0,jk=0,k2=0,k3=0,ij=0,l=0; |
int cpt=0,k1=0,i=0,k=0,j=0,jk=0,k2=0,k3=0,ij=0,l=0; |
int lv=0, vlv=0, kl=0; |
int lv=0, vlv=0, kl=0; |
int ng=0; |
int ng=0; |
Line 5680 true period expectancies (those weighted
|
Line 5747 true period expectancies (those weighted
|
strcpy(optfileres,"vpl"); |
strcpy(optfileres,"vpl"); |
/* 1eme*/ |
/* 1eme*/ |
for (cpt=1; cpt<= nlstate ; cpt ++) { /* For each live state */ |
for (cpt=1; cpt<= nlstate ; cpt ++) { /* For each live state */ |
for (k1=1; k1<= m ; k1 ++) { /* For each combination of covariate */ |
for (k1=1; k1<= m ; k1 ++) { /* For each valid combination of covariate */ |
/* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ |
/* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ |
fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'VPL_' files "); |
fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'VPL_' files "); |
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 */ |
Line 5690 true period expectancies (those weighted
|
Line 5757 true period expectancies (those weighted
|
/* 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 is the value of the covariate lv, 0 or 1 */ |
vlv= nbcode[Tvaraff[k]][lv]; /* vlv is the value of the covariate lv, 0 or 1 */ |
/* 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 */ |
fprintf(ficgp," V%d=%d ",k,vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
|
} |
|
|
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"V_"),cpt,k1); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"V_"),cpt,k1); |
fprintf(ficgp,"\n#set out \"V_%s_%d-%d.svg\" \n",optionfilefiname,cpt,k1); |
fprintf(ficgp,"\n#set out \"V_%s_%d-%d.svg\" \n",optionfilefiname,cpt,k1); |
Line 5732 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
Line 5803 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
/*6+1+(i-1)+(nlstate+1)*nlstate; 6+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*/ |
/* '' 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){ |
if(k==cptcoveff){ |
fprintf(ficgp,"$%d==%d && $%d==%d)? $%d : 1/0) t 'Backward prevalence in state %d' with line ",kl+1, k,kl+1+1,nbcode[Tvaraff[k]][lv], \ |
fprintf(ficgp,"$%d==%d && $%d==%d)? $%d : 1/0) t 'Backward prevalence in state %d' with line ",kl+1, Tvaraff[k],kl+1+1,nbcode[Tvaraff[k]][lv], \ |
4+(cpt-1), cpt ); |
6+(cpt-1), cpt ); |
}else{ |
}else{ |
fprintf(ficgp,"$%d==%d && $%d==%d && ",kl+1, k,kl+1+1,nbcode[Tvaraff[k]][lv]); |
fprintf(ficgp,"$%d==%d && $%d==%d && ",kl+1, Tvaraff[k],kl+1+1,nbcode[Tvaraff[k]][lv]); |
kl++; |
kl++; |
} |
} |
} /* end covariate */ |
} /* end covariate */ |
Line 5745 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
Line 5816 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
} /* cpt */ |
} /* cpt */ |
/*2 eme*/ |
/*2 eme*/ |
for (k1=1; k1<= m ; k1 ++) { |
for (k1=1; k1<= m ; k1 ++) { |
|
|
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 */ |
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 5752 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
Line 5824 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
/* decodtabm(1,2,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 */ |
/* 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 ",k,vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
|
} |
|
|
fprintf(ficgp,"\nset out \"%s_%d.svg\" \n",subdirf2(optionfilefiname,"E_"),k1); |
fprintf(ficgp,"\nset out \"%s_%d.svg\" \n",subdirf2(optionfilefiname,"E_"),k1); |
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*/ |
Line 5792 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
Line 5868 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
|
|
/*3eme*/ |
/*3eme*/ |
for (k1=1; k1<= m ; k1 ++) { |
for (k1=1; k1<= m ; k1 ++) { |
|
|
for (cpt=1; cpt<= nlstate ; cpt ++) { |
for (cpt=1; cpt<= nlstate ; cpt ++) { |
fprintf(ficgp,"\n# 3d: Life expectancy with EXP_ files: cov=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n# 3d: Life expectancy with EXP_ 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 */ |
Line 5800 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
Line 5877 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
/* decodtabm(1,2,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 */ |
/* 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 ",k,vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
|
} |
|
|
/* k=2+nlstate*(2*cpt-2); */ |
/* k=2+nlstate*(2*cpt-2); */ |
k=2+(nlstate+1)*(cpt-1); |
k=2+(nlstate+1)*(cpt-1); |
Line 5826 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
Line 5907 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
} |
} |
} |
} |
|
|
|
/* 4eme */ |
/* 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 multivariate if any */ |
for (k1=1; k1<= m ; k1 ++) { /* For each multivariate if any */ |
|
|
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# 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 */ |
/* 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 */ |
/* decodtabm(1,2,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 */ |
/* 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 ",k,vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
|
} |
|
|
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJ_"),cpt,k1); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJ_"),cpt,k1); |
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\n\ |
set ter svg size 640, 480\n \ |
unset log y\n\ |
unset log y\n \ |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
k=3; |
k=3; |
for (i=1; i<= nlstate ; i ++){ |
for (i=1; i<= nlstate ; i ++){ |
if(i==1){ |
if(i==1){ |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
}else{ |
}else{ |
fprintf(ficgp,", '' "); |
fprintf(ficgp,", '' "); |
} |
} |
l=(nlstate+ndeath)*(i-1)+1; |
l=(nlstate+ndeath)*(i-1)+1; |
fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l); |
fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l); |
for (j=2; j<= nlstate+ndeath ; j ++) |
for (j=2; j<= nlstate+ndeath ; j ++) |
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\n"); |
} /* end cpt state*/ |
} /* end cpt state*/ |
} /* end covariate */ |
} /* end covariate */ |
|
|
|
/* 5eme */ |
/* 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 if any */ |
for (k1=1; k1<= m ; k1 ++) { /* For each covariate if any */ |
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); |
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 */ |
/* decodtabm(1,2,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 */ |
/* 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 ",k,vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
|
} |
|
|
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJT_"),cpt,k1); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJT_"),cpt,k1); |
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\n\ |
set ter svg size 640, 480\n \ |
unset log y\n\ |
unset log y\n \ |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
k=3; |
k=3; |
for (j=1; j<= nlstate ; j ++){ /* Lived in state j */ |
for (j=1; j<= nlstate ; j ++){ /* Lived in state j */ |
if(j==1) |
if(j==1) |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
else |
else |
fprintf(ficgp,", '' "); |
fprintf(ficgp,", '' "); |
l=(nlstate+ndeath)*(cpt-1) +j; |
l=(nlstate+ndeath)*(cpt-1) +j; |
fprintf(ficgp," u (($1==%d && (floor($2)%%5 == 0)) ? ($3):1/0):($%d",k1,k+l); |
fprintf(ficgp," u (($1==%d && (floor($2)%%5 == 0)) ? ($3):1/0):($%d",k1,k+l); |
/* for (i=2; i<= nlstate+ndeath ; i ++) */ |
/* for (i=2; i<= nlstate+ndeath ; i ++) */ |
/* fprintf(ficgp,"+$%d",k+l+i-1); */ |
/* fprintf(ficgp,"+$%d",k+l+i-1); */ |
fprintf(ficgp,") t \"l(%d,%d)\" w l",cpt,j); |
fprintf(ficgp,") t \"l(%d,%d)\" w l",cpt,j); |
} /* nlstate */ |
} /* nlstate */ |
fprintf(ficgp,", '' "); |
fprintf(ficgp,", '' "); |
fprintf(ficgp," u (($1==%d && (floor($2)%%5 == 0)) ? ($3):1/0):(",k1); |
fprintf(ficgp," u (($1==%d && (floor($2)%%5 == 0)) ? ($3):1/0):(",k1); |
for (j=1; j<= nlstate ; j ++){ /* Lived in state j */ |
for (j=1; j<= nlstate ; j ++){ /* Lived in state j */ |
l=(nlstate+ndeath)*(cpt-1) +j; |
l=(nlstate+ndeath)*(cpt-1) +j; |
if(j < nlstate) |
if(j < nlstate) |
fprintf(ficgp,"$%d +",k+l); |
fprintf(ficgp,"$%d +",k+l); |
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\n"); |
} /* end cpt state*/ |
} /* end cpt state*/ |
} /* end covariate */ |
} /* end covariate */ |
|
|
|
/* 6eme */ |
/* CV preval stable (period) for each covariate */ |
/* CV preval stable (period) for each covariate */ |
for (k1=1; k1<= m ; k1 ++) { /* For each covariate combination (1 to m=2**k), if any covariate is present */ |
for (k1=1; k1<= m ; k1 ++) { /* For each covariate combination (1 to m=2**k), if any covariate is present */ |
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 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 */ |
/* 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 */ |
/* decodtabm(1,2,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 */ |
/* 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 ",k,vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
|
} |
|
|
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"P_"),cpt,k1); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"P_"),cpt,k1); |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ |
Line 5927 unset log y\n\
|
Line 6026 unset log y\n\
|
plot [%.f:%.f] ", ageminpar, agemaxpar); |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
k=3; /* Offset */ |
k=3; /* Offset */ |
for (i=1; i<= nlstate ; i ++){ |
for (i=1; i<= nlstate ; i ++){ |
if(i==1) |
if(i==1) |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
else |
else |
fprintf(ficgp,", '' "); |
fprintf(ficgp,", '' "); |
l=(nlstate+ndeath)*(i-1)+1; |
l=(nlstate+ndeath)*(i-1)+1; |
fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l); |
fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l); |
for (j=2; j<= nlstate ; j ++) |
for (j=2; j<= nlstate ; j ++) |
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\n"); |
} /* end cpt state*/ |
} /* end cpt state*/ |
} /* end covariate */ |
} /* end covariate */ |
|
|
|
|
|
/* 7eme */ |
if(backcast == 1){ |
if(backcast == 1){ |
/* 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 (1 to m=2**k), if any covariate is present */ |
for (k1=1; k1<= m ; k1 ++) { /* For each covariate combination (1 to m=2**k), if any covariate is present */ |
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); |
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 */ |
/* decodtabm(1,2,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 */ |
/* 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 ",k,vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"PB_"),cpt,k1); |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ |
continue; |
set ter svg size 640, 480\n \ |
} |
unset log y\n \ |
|
|
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"PB_"),cpt,k1); |
|
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ |
|
set ter svg size 640, 480\n \ |
|
unset log y\n \ |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
k=3; /* Offset */ |
k=3; /* Offset */ |
for (i=1; i<= nlstate ; i ++){ |
for (i=1; i<= nlstate ; i ++){ |
if(i==1) |
if(i==1) |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJB_")); |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJB_")); |
else |
else |
fprintf(ficgp,", '' "); |
fprintf(ficgp,", '' "); |
/* l=(nlstate+ndeath)*(i-1)+1; */ |
/* l=(nlstate+ndeath)*(i-1)+1; */ |
l=(nlstate+ndeath)*(cpt-1)+1; |
l=(nlstate+ndeath)*(cpt-1)+1; |
/* fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l); /\* a vérifier *\/ */ |
/* fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l); /\* a vérifier *\/ */ |
/* fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l+(cpt-1)+i-1); /\* a vérifier *\/ */ |
/* fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l+(cpt-1)+i-1); /\* a vérifier *\/ */ |
fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d",k1,k+l+(cpt-1)+i-1); /* a vérifier */ |
fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d",k1,k+l+(cpt-1)+i-1); /* a vérifier */ |
/* for (j=2; j<= nlstate ; j ++) */ |
/* for (j=2; j<= nlstate ; j ++) */ |
/* fprintf(ficgp,"+$%d",k+l+j-1); */ |
/* fprintf(ficgp,"+$%d",k+l+j-1); */ |
/* /\* 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\n"); |
} /* end cpt state*/ |
} /* end cpt state*/ |
} /* end covariate */ |
} /* end covariate */ |
} /* End if backcast */ |
} /* End if backcast */ |
|
|
|
/* 8eme */ |
if(prevfcast==1){ |
if(prevfcast==1){ |
/* Projection from cross-sectional to stable (period) for each covariate */ |
/* Projection from cross-sectional to stable (period) for each covariate */ |
|
|
Line 5993 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6100 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
/* decodtabm(1,2,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 */ |
/* 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 ",k,vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
|
} |
|
|
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.svg\" \n",subdirf2(optionfilefiname,"PROJ_"),cpt,k1); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"PROJ_"),cpt,k1); |
Line 6034 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6145 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
/*# V1 = 1 V2 = 0 yearproj age p11 p21 p.1 p12 p22 p.2 p13 p23 p.3*/ |
/*# V1 = 1 V2 = 0 yearproj age p11 p21 p.1 p12 p22 p.2 p13 p23 p.3*/ |
/*# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ |
/*# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ |
} |
} |
fprintf(ficgp," u %d:((",ioffset); |
fprintf(ficgp," u %d:(",ioffset); |
kl=0; |
kl=0; |
for (k=1; k<=cptcoveff; k++){ /* For each covariate */ |
strcpy(gplotcondition,"("); |
|
for (k=1; k<=cptcoveff; k++){ /* For each covariate writing the chain of conditions */ |
lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate value corresponding to combination k1 and covariate k */ |
lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate value corresponding to combination k1 and covariate k */ |
/* 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 */ |
/* decodtabm(1,2,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 */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
vlv= nbcode[Tvaraff[k]][lv]; |
vlv= nbcode[Tvaraff[k]][lv]; /* Value of the modality of Tvaraff[k] */ |
kl++; |
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 *\/ */ |
sprintf(gplotcondition+strlen(gplotcondition),"$%d==%d && $%d==%d " ,kl,Tvaraff[k], kl+1, nbcode[Tvaraff[k]][lv]); |
/*6+(cpt-1)*(nlstate+1)+1+(i-1)+(nlstate+1)*nlstate; 6+(1-1)*(2+1)+1+(1-1) +(2+1)*2=13 */ |
kl++; |
/*6+1+(i-1)+(nlstate+1)*nlstate; 6+1+(1-1) +(2+1)*2=13 */ |
if(k <cptcoveff && cptcoveff>1) |
/* '' 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*/ |
sprintf(gplotcondition+strlen(gplotcondition)," && "); |
if(k==cptcoveff){ |
} |
if(i==nlstate+1){ |
strcpy(gplotcondition+strlen(gplotcondition),")"); |
if(cptcoveff ==1){ |
/* 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 *\/ */ |
fprintf(ficgp,"$%d==%d && $%d==%d)? $%d/(1.-$%d) : 1/0) t 'p.%d' with line ",kl, k,kl+1,nbcode[Tvaraff[k]][lv], \ |
/*6+(cpt-1)*(nlstate+1)+1+(i-1)+(nlstate+1)*nlstate; 6+(1-1)*(2+1)+1+(1-1) +(2+1)*2=13 */ |
ioffset+(cpt-1)*(nlstate+1)+1+(i-1), ioffset+1+(i-1)+(nlstate+1)*nlstate,cpt ); |
/*6+1+(i-1)+(nlstate+1)*nlstate; 6+1+(1-1) +(2+1)*2=13 */ |
}else{ |
/* '' 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*/ |
fprintf(ficgp,"$%d==%d && $%d==%d)? $%d/(1.-$%d) : 1/0) t 'p.%d' with line ",kl, k,kl+1,nbcode[Tvaraff[k]][lv], \ |
if(i==nlstate+1){ |
ioffset+(cpt-1)*(nlstate+1)+1+(i-1), ioffset+1+(i-1)+(nlstate+1)*nlstate,cpt ); |
fprintf(ficgp,"%s ? $%d/(1.-$%d) : 1/0) t 'p.%d' with line ", gplotcondition, \ |
} |
ioffset+(cpt-1)*(nlstate+1)+1+(i-1), ioffset+1+(i-1)+(nlstate+1)*nlstate,cpt ); |
}else{ |
}else{ |
if(cptcoveff ==1){ |
fprintf(ficgp,"%s ? $%d/(1.-$%d) : 1/0) t 'p%d%d' with line ", gplotcondition, \ |
fprintf(ficgp,"$%d==%d && $%d==%d)? $%d/(1.-$%d) : 1/0) t 'p%d%d' with line ",kl, k,kl+1,nbcode[Tvaraff[k]][lv], \ |
ioffset+(cpt-1)*(nlstate+1)+1+(i-1), ioffset +1+(i-1)+(nlstate+1)*nlstate,i,cpt ); |
ioffset+(cpt-1)*(nlstate+1)+1+(i-1), ioffset +1+(i-1)+(nlstate+1)*nlstate,i,cpt ); |
} |
}else{ |
|
fprintf(ficgp,"$%d==%d && $%d==%d)? $%d/(1.-$%d) : 1/0) t 'p%d%d' with line ",kl, k,kl+1,nbcode[Tvaraff[k]][lv], \ |
|
ioffset+(cpt-1)*(nlstate+1)+1+(i-1), ioffset +1+(i-1)+(nlstate+1)*nlstate,i,cpt ); |
|
} |
|
} |
|
}else{ /* k < cptcoveff */ |
|
fprintf(ficgp,"$%d==%d && $%d==%d && ",kl, k,kl+1,nbcode[Tvaraff[k]][lv]); |
|
kl++; |
|
} |
|
} /* end covariate */ |
|
} /* end if covariate */ |
} /* end if covariate */ |
} /* nlstate */ |
} /* nlstate */ |
fprintf(ficgp,"\nset out\n"); |
fprintf(ficgp,"\nset out\n"); |
Line 6235 int movingaverage(double ***probs, doubl
|
Line 6337 int movingaverage(double ***probs, doubl
|
double *agemingood, *agemaxgood; /* Currently identical for all covariates */ |
double *agemingood, *agemaxgood; /* Currently identical for all covariates */ |
|
|
|
|
modcovmax=2*cptcoveff;/* Max number of modalities. We suppose |
/* modcovmax=2*cptcoveff;/\* Max number of modalities. We suppose */ |
a covariate has 2 modalities, should be equal to ncovcombmax */ |
/* a covariate has 2 modalities, should be equal to ncovcombmax *\/ */ |
|
|
sumnewp = vector(1,modcovmax); |
sumnewp = vector(1,ncovcombmax); |
sumnewm = vector(1,modcovmax); |
sumnewm = vector(1,ncovcombmax); |
agemingood = vector(1,modcovmax); |
agemingood = vector(1,ncovcombmax); |
agemaxgood = vector(1,modcovmax); |
agemaxgood = vector(1,ncovcombmax); |
|
|
for (cptcod=1;cptcod<=modcovmax;cptcod++){ |
for (cptcod=1;cptcod<=ncovcombmax;cptcod++){ |
sumnewm[cptcod]=0.; |
sumnewm[cptcod]=0.; |
sumnewp[cptcod]=0.; |
sumnewp[cptcod]=0.; |
agemingood[cptcod]=0; |
agemingood[cptcod]=0; |
agemaxgood[cptcod]=0; |
agemaxgood[cptcod]=0; |
} |
} |
if (cptcovn<1) modcovmax=1; /* At least 1 pass */ |
if (cptcovn<1) ncovcombmax=1; /* At least 1 pass */ |
|
|
if(mobilav==1||mobilav ==3 ||mobilav==5 ||mobilav== 7){ |
if(mobilav==1||mobilav ==3 ||mobilav==5 ||mobilav== 7){ |
if(mobilav==1) mobilavrange=5; /* default */ |
if(mobilav==1) mobilavrange=5; /* default */ |
else mobilavrange=mobilav; |
else mobilavrange=mobilav; |
for (age=bage; age<=fage; age++) |
for (age=bage; age<=fage; age++) |
for (i=1; i<=nlstate;i++) |
for (i=1; i<=nlstate;i++) |
for (cptcod=1;cptcod<=modcovmax;cptcod++) |
for (cptcod=1;cptcod<=ncovcombmax;cptcod++) |
mobaverage[(int)age][i][cptcod]=probs[(int)age][i][cptcod]; |
mobaverage[(int)age][i][cptcod]=probs[(int)age][i][cptcod]; |
/* We keep the original values on the extreme ages bage, fage and for |
/* We keep the original values on the extreme ages bage, fage and for |
fage+1 and bage-1 we use a 3 terms moving average; for fage+2 bage+2 |
fage+1 and bage-1 we use a 3 terms moving average; for fage+2 bage+2 |
Line 6265 int movingaverage(double ***probs, doubl
|
Line 6367 int movingaverage(double ***probs, doubl
|
for (mob=3;mob <=mobilavrange;mob=mob+2){ |
for (mob=3;mob <=mobilavrange;mob=mob+2){ |
for (age=bage+(mob-1)/2; age<=fage-(mob-1)/2; age++){ |
for (age=bage+(mob-1)/2; age<=fage-(mob-1)/2; age++){ |
for (i=1; i<=nlstate;i++){ |
for (i=1; i<=nlstate;i++){ |
for (cptcod=1;cptcod<=modcovmax;cptcod++){ |
for (cptcod=1;cptcod<=ncovcombmax;cptcod++){ |
mobaverage[(int)age][i][cptcod] =probs[(int)age][i][cptcod]; |
mobaverage[(int)age][i][cptcod] =probs[(int)age][i][cptcod]; |
for (cpt=1;cpt<=(mob-1)/2;cpt++){ |
for (cpt=1;cpt<=(mob-1)/2;cpt++){ |
mobaverage[(int)age][i][cptcod] +=probs[(int)age-cpt][i][cptcod]; |
mobaverage[(int)age][i][cptcod] +=probs[(int)age-cpt][i][cptcod]; |
Line 6278 int movingaverage(double ***probs, doubl
|
Line 6380 int movingaverage(double ***probs, doubl
|
}/* end mob */ |
}/* end mob */ |
}else |
}else |
return -1; |
return -1; |
for (cptcod=1;cptcod<=modcovmax;cptcod++){ |
for (cptcod=1;cptcod<=ncovcombmax;cptcod++){ |
/* for (age=bage+(mob-1)/2; age<=fage-(mob-1)/2; age++){ */ |
/* for (age=bage+(mob-1)/2; age<=fage-(mob-1)/2; age++){ */ |
agemingood[cptcod]=fage-(mob-1)/2; |
agemingood[cptcod]=fage-(mob-1)/2; |
for (age=fage-(mob-1)/2; age>=bage; age--){/* From oldest to youngest, finding the youngest wrong */ |
for (age=fage-(mob-1)/2; age>=bage; age--){/* From oldest to youngest, finding the youngest wrong */ |
Line 6362 int movingaverage(double ***probs, doubl
|
Line 6464 int movingaverage(double ***probs, doubl
|
} |
} |
} |
} |
}/* end cptcod */ |
}/* end cptcod */ |
free_vector(sumnewm,1, modcovmax); |
free_vector(sumnewm,1, ncovcombmax); |
free_vector(sumnewp,1, modcovmax); |
free_vector(sumnewp,1, ncovcombmax); |
free_vector(agemaxgood,1, modcovmax); |
free_vector(agemaxgood,1, ncovcombmax); |
free_vector(agemingood,1, modcovmax); |
free_vector(agemingood,1, ncovcombmax); |
return 0; |
return 0; |
}/* End movingaverage */ |
}/* End movingaverage */ |
|
|
Line 6921 double gompertz(double x[])
|
Line 7023 double gompertz(double x[])
|
double A,B,L=0.0,sump=0.,num=0.; |
double A,B,L=0.0,sump=0.,num=0.; |
int i,n=0; /* n is the size of the sample */ |
int i,n=0; /* n is the size of the sample */ |
|
|
for (i=0;i<=imx-1 ; i++) { |
for (i=1;i<=imx ; i++) { |
sump=sump+weight[i]; |
sump=sump+weight[i]; |
/* sump=sump+1;*/ |
/* sump=sump+1;*/ |
num=num+1; |
num=num+1; |
Line 7765 int prevalence_limit(double *p, double *
|
Line 7867 int prevalence_limit(double *p, double *
|
i1=pow(2,cptcoveff); |
i1=pow(2,cptcoveff); |
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
for(cptcov=1,k=0;cptcov<=i1;cptcov++){ |
for(k=1; k<=i1;k++){ |
|
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */ |
//for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){ |
//for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){ |
k=k+1; |
/* k=k+1; */ |
/* to clean */ |
/* to clean */ |
//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(ficrespl,"#******"); |
fprintf(ficrespl,"#******"); |
Line 7782 int prevalence_limit(double *p, double *
|
Line 7885 int prevalence_limit(double *p, double *
|
fprintf(ficrespl,"******\n"); |
fprintf(ficrespl,"******\n"); |
printf("******\n"); |
printf("******\n"); |
fprintf(ficlog,"******\n"); |
fprintf(ficlog,"******\n"); |
|
if(invalidvarcomb[k]){ |
|
printf("\nCombination (%d) ignored because no cases \n",k); |
|
fprintf(ficrespl,"#Combination (%d) ignored because no cases \n",k); |
|
fprintf(ficlog,"\nCombination (%d) ignored because no cases \n",k); |
|
continue; |
|
} |
|
|
fprintf(ficrespl,"#Age "); |
fprintf(ficrespl,"#Age "); |
for(j=1;j<=cptcoveff;j++) { |
for(j=1;j<=cptcoveff;j++) { |
Line 7795 int prevalence_limit(double *p, double *
|
Line 7904 int prevalence_limit(double *p, double *
|
prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, ncvyearp, k); |
prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, ncvyearp, k); |
fprintf(ficrespl,"%.0f ",age ); |
fprintf(ficrespl,"%.0f ",age ); |
for(j=1;j<=cptcoveff;j++) |
for(j=1;j<=cptcoveff;j++) |
fprintf(ficrespl,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficrespl,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
tot=0.; |
tot=0.; |
for(i=1; i<=nlstate;i++){ |
for(i=1; i<=nlstate;i++){ |
tot += prlim[i][i]; |
tot += prlim[i][i]; |
fprintf(ficrespl," %.5f", prlim[i][i]); |
fprintf(ficrespl," %.5f", prlim[i][i]); |
} |
} |
fprintf(ficrespl," %.3f %d\n", tot, *ncvyearp); |
fprintf(ficrespl," %.3f %d\n", tot, *ncvyearp); |
} /* Age */ |
} /* Age */ |
Line 7844 int back_prevalence_limit(double *p, dou
|
Line 7953 int back_prevalence_limit(double *p, dou
|
|
|
i1=pow(2,cptcoveff); |
i1=pow(2,cptcoveff); |
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
for(cptcov=1,k=0;cptcov<=i1;cptcov++){ |
for(k=1; k<=i1;k++){ |
|
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */ |
//for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){ |
//for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){ |
k=k+1; |
/* k=k+1; */ |
/* to clean */ |
/* to clean */ |
//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 7862 int back_prevalence_limit(double *p, dou
|
Line 7972 int back_prevalence_limit(double *p, dou
|
fprintf(ficresplb,"******\n"); |
fprintf(ficresplb,"******\n"); |
printf("******\n"); |
printf("******\n"); |
fprintf(ficlog,"******\n"); |
fprintf(ficlog,"******\n"); |
|
if(invalidvarcomb[k]){ |
|
printf("\nCombination (%d) ignored because no cases \n",k); |
|
fprintf(ficresplb,"#Combination (%d) ignored because no cases \n",k); |
|
fprintf(ficlog,"\nCombination (%d) ignored because no cases \n",k); |
|
continue; |
|
} |
|
|
fprintf(ficresplb,"#Age "); |
fprintf(ficresplb,"#Age "); |
for(j=1;j<=cptcoveff;j++) { |
for(j=1;j<=cptcoveff;j++) { |
Line 8432 int main(int argc, char *argv[])
|
Line 8548 int main(int argc, char *argv[])
|
fclose (ficlog); |
fclose (ficlog); |
goto end; |
goto end; |
exit(0); |
exit(0); |
} |
} else if(mle==-5) { /* Main Wizard */ |
else if(mle==-3) { /* Main Wizard */ |
|
prwizard(ncovmodel, nlstate, ndeath, model, ficparo); |
prwizard(ncovmodel, nlstate, ndeath, model, ficparo); |
printf(" You chose mle=-3, look at file %s for a template of covariance matrix \n",filereso); |
printf(" You chose mle=-3, look at file %s for a template of covariance matrix \n",filereso); |
fprintf(ficlog," You chose mle=-3, look at file %s for a template of covariance matrix \n",filereso); |
fprintf(ficlog," You chose mle=-3, look at file %s for a template of covariance matrix \n",filereso); |
param= ma3x(1,nlstate,1,nlstate+ndeath-1,1,ncovmodel); |
param= ma3x(1,nlstate,1,nlstate+ndeath-1,1,ncovmodel); |
matcov=matrix(1,npar,1,npar); |
matcov=matrix(1,npar,1,npar); |
hess=matrix(1,npar,1,npar); |
hess=matrix(1,npar,1,npar); |
} |
} else{ /* Begin of mle != -1 or -5 */ |
else{ |
|
/* Read guessed parameters */ |
/* Read guessed parameters */ |
/* Reads comments: lines beginning with '#' */ |
/* Reads comments: lines beginning with '#' */ |
while((c=getc(ficpar))=='#' && c!= EOF){ |
while((c=getc(ficpar))=='#' && c!= EOF){ |
Line 8456 int main(int argc, char *argv[])
|
Line 8570 int main(int argc, char *argv[])
|
|
|
param= ma3x(1,nlstate,1,nlstate+ndeath-1,1,ncovmodel); |
param= ma3x(1,nlstate,1,nlstate+ndeath-1,1,ncovmodel); |
for(i=1; i <=nlstate; i++){ |
for(i=1; i <=nlstate; i++){ |
j=0; |
j=0; |
for(jj=1; jj <=nlstate+ndeath; jj++){ |
for(jj=1; jj <=nlstate+ndeath; jj++){ |
if(jj==i) continue; |
if(jj==i) continue; |
j++; |
j++; |
fscanf(ficpar,"%1d%1d",&i1,&j1); |
fscanf(ficpar,"%1d%1d",&i1,&j1); |
if ((i1 != i) || (j1 != jj)){ |
if ((i1 != i) || (j1 != jj)){ |
printf("Error in line parameters number %d, %1d%1d instead of %1d%1d \n \ |
printf("Error in line parameters number %d, %1d%1d instead of %1d%1d \n \ |
It might be a problem of design; if ncovcol and the model are correct\n \ |
It might be a problem of design; if ncovcol and the model are correct\n \ |
run imach with mle=-1 to get a correct template of the parameter file.\n",numlinepar, i,j, i1, j1); |
run imach with mle=-1 to get a correct template of the parameter file.\n",numlinepar, i,j, i1, j1); |
exit(1); |
exit(1); |
} |
} |
fprintf(ficparo,"%1d%1d",i1,j1); |
fprintf(ficparo,"%1d%1d",i1,j1); |
if(mle==1) |
if(mle==1) |
printf("%1d%1d",i,jj); |
printf("%1d%1d",i,jj); |
fprintf(ficlog,"%1d%1d",i,jj); |
fprintf(ficlog,"%1d%1d",i,jj); |
for(k=1; k<=ncovmodel;k++){ |
for(k=1; k<=ncovmodel;k++){ |
fscanf(ficpar," %lf",¶m[i][j][k]); |
fscanf(ficpar," %lf",¶m[i][j][k]); |
if(mle==1){ |
if(mle==1){ |
printf(" %lf",param[i][j][k]); |
printf(" %lf",param[i][j][k]); |
fprintf(ficlog," %lf",param[i][j][k]); |
fprintf(ficlog," %lf",param[i][j][k]); |
} |
} |
else |
else |
fprintf(ficlog," %lf",param[i][j][k]); |
fprintf(ficlog," %lf",param[i][j][k]); |
fprintf(ficparo," %lf",param[i][j][k]); |
fprintf(ficparo," %lf",param[i][j][k]); |
} |
} |
fscanf(ficpar,"\n"); |
fscanf(ficpar,"\n"); |
numlinepar++; |
numlinepar++; |
if(mle==1) |
if(mle==1) |
printf("\n"); |
printf("\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficparo,"\n"); |
fprintf(ficparo,"\n"); |
} |
} |
} |
} |
fflush(ficlog); |
fflush(ficlog); |
Line 8507 run imach with mle=-1 to get a correct t
|
Line 8621 run imach with mle=-1 to get a correct t
|
|
|
for(i=1; i <=nlstate; i++){ |
for(i=1; i <=nlstate; i++){ |
for(j=1; j <=nlstate+ndeath-1; j++){ |
for(j=1; j <=nlstate+ndeath-1; j++){ |
fscanf(ficpar,"%1d%1d",&i1,&j1); |
fscanf(ficpar,"%1d%1d",&i1,&j1); |
if ( (i1-i) * (j1-j) != 0){ |
if ( (i1-i) * (j1-j) != 0){ |
printf("Error in line parameters number %d, %1d%1d instead of %1d%1d \n",numlinepar, i,j, i1, j1); |
printf("Error in line parameters number %d, %1d%1d instead of %1d%1d \n",numlinepar, i,j, i1, j1); |
exit(1); |
exit(1); |
} |
} |
printf("%1d%1d",i,j); |
printf("%1d%1d",i,j); |
fprintf(ficparo,"%1d%1d",i1,j1); |
fprintf(ficparo,"%1d%1d",i1,j1); |
fprintf(ficlog,"%1d%1d",i1,j1); |
fprintf(ficlog,"%1d%1d",i1,j1); |
for(k=1; k<=ncovmodel;k++){ |
for(k=1; k<=ncovmodel;k++){ |
fscanf(ficpar,"%le",&delti3[i][j][k]); |
fscanf(ficpar,"%le",&delti3[i][j][k]); |
printf(" %le",delti3[i][j][k]); |
printf(" %le",delti3[i][j][k]); |
fprintf(ficparo," %le",delti3[i][j][k]); |
fprintf(ficparo," %le",delti3[i][j][k]); |
fprintf(ficlog," %le",delti3[i][j][k]); |
fprintf(ficlog," %le",delti3[i][j][k]); |
} |
} |
fscanf(ficpar,"\n"); |
fscanf(ficpar,"\n"); |
numlinepar++; |
numlinepar++; |
printf("\n"); |
printf("\n"); |
fprintf(ficparo,"\n"); |
fprintf(ficparo,"\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficlog,"\n"); |
} |
} |
} |
} |
fflush(ficlog); |
fflush(ficlog); |
|
|
/* Reads covariance matrix */ |
/* Reads covariance matrix */ |
delti=delti3[1][1]; |
delti=delti3[1][1]; |
|
|
|
|
/* free_ma3x(delti3,1,nlstate,1,nlstate+ndeath-1,1,ncovmodel); */ /* Hasn't to to freed here otherwise delti is no more allocated */ |
/* free_ma3x(delti3,1,nlstate,1,nlstate+ndeath-1,1,ncovmodel); */ /* Hasn't to to freed here otherwise delti is no more allocated */ |
|
|
/* Reads comments: lines beginning with '#' */ |
/* Reads comments: lines beginning with '#' */ |
while((c=getc(ficpar))=='#' && c!= EOF){ |
while((c=getc(ficpar))=='#' && c!= EOF){ |
ungetc(c,ficpar); |
ungetc(c,ficpar); |
Line 8546 run imach with mle=-1 to get a correct t
|
Line 8660 run imach with mle=-1 to get a correct t
|
fputs(line,ficlog); |
fputs(line,ficlog); |
} |
} |
ungetc(c,ficpar); |
ungetc(c,ficpar); |
|
|
matcov=matrix(1,npar,1,npar); |
matcov=matrix(1,npar,1,npar); |
hess=matrix(1,npar,1,npar); |
hess=matrix(1,npar,1,npar); |
for(i=1; i <=npar; i++) |
for(i=1; i <=npar; i++) |
for(j=1; j <=npar; j++) matcov[i][j]=0.; |
for(j=1; j <=npar; j++) matcov[i][j]=0.; |
|
|
/* Scans npar lines */ |
/* Scans npar lines */ |
for(i=1; i <=npar; i++){ |
for(i=1; i <=npar; i++){ |
count=fscanf(ficpar,"%1d%1d%1d",&i1,&j1,&jk); |
count=fscanf(ficpar,"%1d%1d%1d",&i1,&j1,&jk); |
if(count != 3){ |
if(count != 3){ |
printf("Error! Error in parameter file %s at line %d after line starting with %1d%1d%1d\n\ |
printf("Error! Error in parameter file %s at line %d after line starting with %1d%1d%1d\n\ |
This is probably because your covariance matrix doesn't \n contain exactly %d lines corresponding to your model line '1+age+%s'.\n\ |
This is probably because your covariance matrix doesn't \n contain exactly %d lines corresponding to your model line '1+age+%s'.\n\ |
Please run with mle=-1 to get a correct covariance matrix.\n",optionfile,numlinepar, i1,j1,jk, npar, model); |
Please run with mle=-1 to get a correct covariance matrix.\n",optionfile,numlinepar, i1,j1,jk, npar, model); |
fprintf(ficlog,"Error! Error in parameter file %s at line %d after line starting with %1d%1d%1d\n\ |
fprintf(ficlog,"Error! Error in parameter file %s at line %d after line starting with %1d%1d%1d\n\ |
This is probably because your covariance matrix doesn't \n contain exactly %d lines corresponding to your model line '1+age+%s'.\n\ |
This is probably because your covariance matrix doesn't \n contain exactly %d lines corresponding to your model line '1+age+%s'.\n\ |
Please run with mle=-1 to get a correct covariance matrix.\n",optionfile,numlinepar, i1,j1,jk, npar, model); |
Please run with mle=-1 to get a correct covariance matrix.\n",optionfile,numlinepar, i1,j1,jk, npar, model); |
exit(1); |
exit(1); |
}else |
}else{ |
if(mle==1) |
if(mle==1) |
printf("%1d%1d%1d",i1,j1,jk); |
printf("%1d%1d%1d",i1,j1,jk); |
|
} |
fprintf(ficlog,"%1d%1d%1d",i1,j1,jk); |
fprintf(ficlog,"%1d%1d%1d",i1,j1,jk); |
fprintf(ficparo,"%1d%1d%1d",i1,j1,jk); |
fprintf(ficparo,"%1d%1d%1d",i1,j1,jk); |
for(j=1; j <=i; j++){ |
for(j=1; j <=i; j++){ |
fscanf(ficpar," %le",&matcov[i][j]); |
fscanf(ficpar," %le",&matcov[i][j]); |
if(mle==1){ |
if(mle==1){ |
printf(" %.5le",matcov[i][j]); |
printf(" %.5le",matcov[i][j]); |
} |
} |
fprintf(ficlog," %.5le",matcov[i][j]); |
fprintf(ficlog," %.5le",matcov[i][j]); |
fprintf(ficparo," %.5le",matcov[i][j]); |
fprintf(ficparo," %.5le",matcov[i][j]); |
} |
} |
fscanf(ficpar,"\n"); |
fscanf(ficpar,"\n"); |
numlinepar++; |
numlinepar++; |
if(mle==1) |
if(mle==1) |
printf("\n"); |
printf("\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficparo,"\n"); |
fprintf(ficparo,"\n"); |
} |
} |
/* End of read covariance matrix npar lines */ |
/* End of read covariance matrix npar lines */ |
for(i=1; i <=npar; i++) |
for(i=1; i <=npar; i++) |
for(j=i+1;j<=npar;j++) |
for(j=i+1;j<=npar;j++) |
matcov[i][j]=matcov[j][i]; |
matcov[i][j]=matcov[j][i]; |
|
|
if(mle==1) |
if(mle==1) |
printf("\n"); |
printf("\n"); |
Line 8614 Please run with mle=-1 to get a correct
|
Line 8729 Please run with mle=-1 to get a correct
|
annais=vector(1,n); |
annais=vector(1,n); |
moisdc=vector(1,n); |
moisdc=vector(1,n); |
andc=vector(1,n); |
andc=vector(1,n); |
|
weight=vector(1,n); |
agedc=vector(1,n); |
agedc=vector(1,n); |
cod=ivector(1,n); |
cod=ivector(1,n); |
weight=vector(1,n); |
for(i=1;i<=n;i++){ |
for(i=1;i<=n;i++) weight[i]=1.0; /* Equal weights, 1 by default */ |
num[i]=0; |
|
moisnais[i]=0; |
|
annais[i]=0; |
|
moisdc[i]=0; |
|
andc[i]=0; |
|
agedc[i]=0; |
|
cod[i]=0; |
|
weight[i]=1.0; /* Equal weights, 1 by default */ |
|
} |
mint=matrix(1,maxwav,1,n); |
mint=matrix(1,maxwav,1,n); |
anint=matrix(1,maxwav,1,n); |
anint=matrix(1,maxwav,1,n); |
s=imatrix(1,maxwav+1,1,n); /* s[i][j] health state for wave i and individual j */ |
s=imatrix(1,maxwav+1,1,n); /* s[i][j] health state for wave i and individual j */ |
Line 8714 Please run with mle=-1 to get a correct
|
Line 8838 Please run with mle=-1 to get a correct
|
free_vector(andc,1,n); |
free_vector(andc,1,n); |
|
|
/* Routine tricode is to calculate cptcoveff (real number of unique covariates) and to associate covariable number and modality */ |
/* Routine tricode is to calculate cptcoveff (real number of unique covariates) and to associate covariable number and modality */ |
|
|
nbcode=imatrix(0,NCOVMAX,0,NCOVMAX); |
nbcode=imatrix(0,NCOVMAX,0,NCOVMAX); |
ncodemax[1]=1; |
ncodemax[1]=1; |
Ndum =ivector(-1,NCOVMAX); |
Ndum =ivector(-1,NCOVMAX); |
if (ncovmodel-nagesqr > 2 ) /* That is if covariate other than cst, age and age*age */ |
cptcoveff=0; |
tricode(Tvar,nbcode,imx, Ndum); /**< Fills nbcode[Tvar[j]][l]; */ |
if (ncovmodel-nagesqr > 2 ){ /* That is if covariate other than cst, age and age*age */ |
|
tricode(&cptcoveff,Tvar,nbcode,imx, Ndum); /**< Fills nbcode[Tvar[j]][l]; */ |
|
} |
|
|
|
ncovcombmax=pow(2,cptcoveff); |
|
invalidvarcomb=ivector(1, ncovcombmax); |
|
for(i=1;i<ncovcombmax;i++) |
|
invalidvarcomb[i]=0; |
|
|
/* Nbcode gives the value of the lth modality (currently 1 to 2) of jth covariate, in |
/* Nbcode gives the value of the lth modality (currently 1 to 2) of jth covariate, in |
V2+V1*age, there are 3 covariates Tvar[2]=1 (V1).*/ |
V2+V1*age, there are 3 covariates Tvar[2]=1 (V1).*/ |
/* 1 to ncodemax[j] which is the maximum value of this jth covariate */ |
/* 1 to ncodemax[j] which is the maximum value of this jth covariate */ |
Line 8735 Please run with mle=-1 to get a correct
|
Line 8866 Please run with mle=-1 to get a correct
|
*/ |
*/ |
|
|
h=0; |
h=0; |
|
|
|
|
/*if (cptcovn > 0) */ |
/*if (cptcovn > 0) */ |
|
|
|
|
m=pow(2,cptcoveff); |
m=pow(2,cptcoveff); |
|
|
/**< codtab(h,k) k = codtab[h,k]=( (h-1) - mod(k-1,2**(k-1) )/2**(k-1) + 1 |
/**< codtab(h,k) k = codtab[h,k]=( (h-1) - mod(k-1,2**(k-1) )/2**(k-1) + 1 |
Line 8806 Please run with mle=-1 to get a correct
|
Line 8933 Please run with mle=-1 to get a correct
|
* 2211 |
* 2211 |
* V1=1+1, V2=0+1, V3=1+1, V4=1+1 |
* V1=1+1, V2=0+1, V3=1+1, V4=1+1 |
* V3=2 |
* V3=2 |
|
* codtabm and decodtabm are identical |
*/ |
*/ |
|
|
/* /\* for(h=1; h <=100 ;h++){ *\/ */ |
|
/* /\* printf("h=%2d ", h); *\/ */ |
|
/* /\* for(k=1; k <=10; k++){ *\/ */ |
|
/* /\* printf("k=%d %d ",k,codtabm(h,k)); *\/ */ |
|
/* /\* codtab[h][k]=codtabm(h,k); *\/ */ |
|
/* /\* } *\/ */ |
|
/* /\* printf("\n"); *\/ */ |
|
/* } */ |
|
/* for(k=1;k<=cptcoveff; k++){ /\* scans any effective covariate *\/ */ |
|
/* for(i=1; i <=pow(2,cptcoveff-k);i++){ /\* i=1 to 8/1=8; i=1 to 8/2=4; i=1 to 8/8=1 *\/ */ |
|
/* for(j=1; j <= ncodemax[k]; j++){ /\* For each modality of this covariate ncodemax=2*\/ */ |
|
/* for(cpt=1; cpt <=pow(2,k-1); cpt++){ /\* cpt=1 to 8/2**(3+1-1 or 3+1-3) =1 or 4 *\/ */ |
|
/* h++; */ |
|
/* if (h>m) */ |
|
/* h=1; */ |
|
/* codtab[h][k]=j; */ |
|
/* /\* codtab[12][3]=1; *\/ */ |
|
/* /\*codtab[h][Tvar[k]]=j;*\/ */ |
|
/* /\* printf("h=%d k=%d j=%d codtab[h][k]=%d Tvar[k]=%d codtab[h][Tvar[k]]=%d \n",h, k,j,codtab[h][k],Tvar[k],codtab[h][Tvar[k]]); *\/ */ |
|
/* } */ |
|
/* } */ |
|
/* } */ |
|
/* } */ |
|
/* printf("codtab[1][2]=%d codtab[2][2]=%d",codtab[1][2],codtab[2][2]); |
|
codtab[1][2]=1;codtab[2][2]=2; */ |
|
/* for(i=1; i <=m ;i++){ */ |
|
/* for(k=1; k <=cptcovn; k++){ */ |
|
/* printf("i=%d k=%d %d %d ",i,k,codtab[i][k], cptcoveff); */ |
|
/* } */ |
|
/* printf("\n"); */ |
|
/* } */ |
|
/* scanf("%d",i);*/ |
|
|
|
free_ivector(Ndum,-1,NCOVMAX); |
free_ivector(Ndum,-1,NCOVMAX); |
|
|
Line 8914 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 9010 Title=%s <br>Datafile=%s Firstpass=%d La
|
#endif |
#endif |
|
|
|
|
/* Calculates basic frequencies. Computes observed prevalence at single age |
/* Calculates basic frequencies. Computes observed prevalence at single age |
|
and for any valid combination of covariates |
and prints on file fileres'p'. */ |
and prints on file fileres'p'. */ |
freqsummary(fileres, agemin, agemax, s, agev, nlstate, imx,Tvaraff,nbcode, ncodemax,mint,anint,strstart,\ |
freqsummary(fileres, agemin, agemax, s, agev, nlstate, imx, Tvaraff, invalidvarcomb, nbcode, ncodemax,mint,anint,strstart, \ |
firstpass, lastpass, stepm, weightopt, model); |
firstpass, lastpass, stepm, weightopt, model); |
|
|
fprintf(fichtm,"\n"); |
fprintf(fichtm,"\n"); |
Line 8925 Youngest age at first (selected) pass %.
|
Line 9022 Youngest age at first (selected) pass %.
|
Interval (in months) between two waves: Min=%d Max=%d Mean=%.2lf<br>\n",\ |
Interval (in months) between two waves: Min=%d Max=%d Mean=%.2lf<br>\n",\ |
imx,agemin,agemax,jmin,jmax,jmean); |
imx,agemin,agemax,jmin,jmax,jmean); |
pmmij= matrix(1,nlstate+ndeath,1,nlstate+ndeath); /* creation */ |
pmmij= matrix(1,nlstate+ndeath,1,nlstate+ndeath); /* creation */ |
oldms= matrix(1,nlstate+ndeath,1,nlstate+ndeath); /* creation */ |
oldms= matrix(1,nlstate+ndeath,1,nlstate+ndeath); /* creation */ |
newms= matrix(1,nlstate+ndeath,1,nlstate+ndeath); /* creation */ |
newms= matrix(1,nlstate+ndeath,1,nlstate+ndeath); /* creation */ |
savms= matrix(1,nlstate+ndeath,1,nlstate+ndeath); /* creation */ |
savms= matrix(1,nlstate+ndeath,1,nlstate+ndeath); /* creation */ |
oldm=oldms; newm=newms; savm=savms; /* Keeps fixed addresses to free */ |
oldm=oldms; newm=newms; savm=savms; /* Keeps fixed addresses to free */ |
|
|
/* For Powell, parameters are in a vector p[] starting at p[1] |
/* For Powell, parameters are in a vector p[] starting at p[1] |
so we point p on param[1][1] so that p[1] maps on param[1][1][1] */ |
so we point p on param[1][1] so that p[1] maps on param[1][1][1] */ |
Line 8938 Interval (in months) between two waves:
|
Line 9035 Interval (in months) between two waves:
|
/* For mortality only */ |
/* For mortality only */ |
if (mle==-3){ |
if (mle==-3){ |
ximort=matrix(1,NDIM,1,NDIM); |
ximort=matrix(1,NDIM,1,NDIM); |
|
for(i=1;i<=NDIM;i++) |
|
for(j=1;j<=NDIM;j++) |
|
ximort[i][j]=0.; |
/* ximort=gsl_matrix_alloc(1,NDIM,1,NDIM); */ |
/* ximort=gsl_matrix_alloc(1,NDIM,1,NDIM); */ |
cens=ivector(1,n); |
cens=ivector(1,n); |
ageexmed=vector(1,n); |
ageexmed=vector(1,n); |
Line 9086 Interval (in months) between two waves:
|
Line 9186 Interval (in months) between two waves:
|
|
|
for(i=1; i <=NDIM; i++) |
for(i=1; i <=NDIM; i++) |
for(j=i+1;j<=NDIM;j++) |
for(j=i+1;j<=NDIM;j++) |
matcov[i][j]=matcov[j][i]; |
matcov[i][j]=matcov[j][i]; |
|
|
printf("\nCovariance matrix\n "); |
printf("\nCovariance matrix\n "); |
fprintf(ficlog,"\nCovariance matrix\n "); |
fprintf(ficlog,"\nCovariance matrix\n "); |
for(i=1; i <=NDIM; i++) { |
for(i=1; i <=NDIM; i++) { |
for(j=1;j<=NDIM;j++){ |
for(j=1;j<=NDIM;j++){ |
printf("%f ",matcov[i][j]); |
printf("%f ",matcov[i][j]); |
fprintf(ficlog,"%f ",matcov[i][j]); |
fprintf(ficlog,"%f ",matcov[i][j]); |
} |
} |
printf("\n "); fprintf(ficlog,"\n "); |
printf("\n "); fprintf(ficlog,"\n "); |
} |
} |
Line 9134 Interval (in months) between two waves:
|
Line 9234 Interval (in months) between two waves:
|
|
|
|
|
replace_back_to_slash(pathc,pathcd); /* Even gnuplot wants a / */ |
replace_back_to_slash(pathc,pathcd); /* Even gnuplot wants a / */ |
|
ageminpar=50; |
|
agemaxpar=100; |
if(ageminpar == AGEOVERFLOW ||agemaxpar == AGEOVERFLOW){ |
if(ageminpar == AGEOVERFLOW ||agemaxpar == AGEOVERFLOW){ |
printf("Warning! Error in gnuplot file with ageminpar %f or agemaxpar %f overflow\n\ |
printf("Warning! Error in gnuplot file with ageminpar %f or agemaxpar %f overflow\n\ |
This is probably because your parameter file doesn't \n contain the exact number of lines (or columns) corresponding to your model line.\n\ |
This is probably because your parameter file doesn't \n contain the exact number of lines (or columns) corresponding to your model line.\n\ |
Line 9141 Please run with mle=-1 to get a correct
|
Line 9243 Please run with mle=-1 to get a correct
|
fprintf(ficlog,"Warning! Error in gnuplot file with ageminpar %f or agemaxpar %f overflow\n\ |
fprintf(ficlog,"Warning! Error in gnuplot file with ageminpar %f or agemaxpar %f overflow\n\ |
This is probably because your parameter file doesn't \n contain the exact number of lines (or columns) corresponding to your model line.\n\ |
This is probably because your parameter file doesn't \n contain the exact number of lines (or columns) corresponding to your model line.\n\ |
Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpar); |
Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpar); |
}else |
}else{ |
|
printf("Warning! ageminpar %f and agemaxpar %f have been fixed because for simplification until it is fixed...\n\n",ageminpar,agemaxpar); |
|
fprintf(ficlog,"Warning! ageminpar %f and agemaxpar %f have been fixed because for simplification until it is fixed...\n\n",ageminpar,agemaxpar); |
printinggnuplotmort(fileresu, optionfilefiname,ageminpar,agemaxpar,fage, pathc,p); |
printinggnuplotmort(fileresu, optionfilefiname,ageminpar,agemaxpar,fage, pathc,p); |
|
} |
printinghtmlmort(fileresu,title,datafile, firstpass, lastpass, \ |
printinghtmlmort(fileresu,title,datafile, firstpass, lastpass, \ |
stepm, weightopt,\ |
stepm, weightopt,\ |
model,imx,p,matcov,agemortsup); |
model,imx,p,matcov,agemortsup); |
Line 9150 Please run with mle=-1 to get a correct
|
Line 9255 Please run with mle=-1 to get a correct
|
free_vector(lsurv,1,AGESUP); |
free_vector(lsurv,1,AGESUP); |
free_vector(lpop,1,AGESUP); |
free_vector(lpop,1,AGESUP); |
free_vector(tpop,1,AGESUP); |
free_vector(tpop,1,AGESUP); |
#ifdef GSL |
free_matrix(ximort,1,NDIM,1,NDIM); |
free_ivector(cens,1,n); |
free_ivector(cens,1,n); |
free_vector(agecens,1,n); |
free_vector(agecens,1,n); |
free_ivector(dcwave,1,n); |
free_ivector(dcwave,1,n); |
free_matrix(ximort,1,NDIM,1,NDIM); |
#ifdef GSL |
#endif |
#endif |
} /* Endof if mle==-3 mortality only */ |
} /* Endof if mle==-3 mortality only */ |
/* Standard */ |
/* Standard */ |
Line 9191 Please run with mle=-1 to get a correct
|
Line 9296 Please run with mle=-1 to get a correct
|
fprintf(ficlog,"# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
fprintf(ficlog,"# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
for(i=1,jk=1; i <=nlstate; i++){ |
for(i=1,jk=1; i <=nlstate; i++){ |
for(k=1; k <=(nlstate+ndeath); k++){ |
for(k=1; k <=(nlstate+ndeath); k++){ |
if (k != i) { |
if (k != i) { |
printf("%d%d ",i,k); |
printf("%d%d ",i,k); |
fprintf(ficlog,"%d%d ",i,k); |
fprintf(ficlog,"%d%d ",i,k); |
fprintf(ficres,"%1d%1d ",i,k); |
fprintf(ficres,"%1d%1d ",i,k); |
for(j=1; j <=ncovmodel; j++){ |
for(j=1; j <=ncovmodel; j++){ |
printf("%12.7f ",p[jk]); |
printf("%12.7f ",p[jk]); |
fprintf(ficlog,"%12.7f ",p[jk]); |
fprintf(ficlog,"%12.7f ",p[jk]); |
fprintf(ficres,"%12.7f ",p[jk]); |
fprintf(ficres,"%12.7f ",p[jk]); |
jk++; |
jk++; |
} |
} |
printf("\n"); |
printf("\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficres,"\n"); |
fprintf(ficres,"\n"); |
} |
} |
} |
} |
} |
} |
if(mle != 0){ |
if(mle != 0){ |
Line 9214 Please run with mle=-1 to get a correct
|
Line 9319 Please run with mle=-1 to get a correct
|
printf("Parameters and 95%% confidence intervals\n W is simply the result of the division of the parameter by the square root of covariance of the parameter.\n And Wald-based confidence intervals plus and minus 1.96 * W .\n But be careful that parameters are highly correlated because incidence of disability is highly correlated to incidence of recovery.\n It might be better to visualize the covariance matrix. See the page 'Matrix of variance-covariance of one-step probabilities' and its graphs.\n"); |
printf("Parameters and 95%% confidence intervals\n W is simply the result of the division of the parameter by the square root of covariance of the parameter.\n And Wald-based confidence intervals plus and minus 1.96 * W .\n But be careful that parameters are highly correlated because incidence of disability is highly correlated to incidence of recovery.\n It might be better to visualize the covariance matrix. See the page 'Matrix of variance-covariance of one-step probabilities' and its graphs.\n"); |
fprintf(ficlog, "Parameters, Wald tests and Wald-based confidence intervals\n W is simply the result of the division of the parameter by the square root of covariance of the parameter.\n And Wald-based confidence intervals plus and minus 1.96 * W \n It might be better to visualize the covariance matrix. See the page 'Matrix of variance-covariance of one-step probabilities' and its graphs.\n"); |
fprintf(ficlog, "Parameters, Wald tests and Wald-based confidence intervals\n W is simply the result of the division of the parameter by the square root of covariance of the parameter.\n And Wald-based confidence intervals plus and minus 1.96 * W \n It might be better to visualize the covariance matrix. See the page 'Matrix of variance-covariance of one-step probabilities' and its graphs.\n"); |
for(i=1,jk=1; i <=nlstate; i++){ |
for(i=1,jk=1; i <=nlstate; i++){ |
for(k=1; k <=(nlstate+ndeath); k++){ |
for(k=1; k <=(nlstate+ndeath); k++){ |
if (k != i) { |
if (k != i) { |
printf("%d%d ",i,k); |
printf("%d%d ",i,k); |
fprintf(ficlog,"%d%d ",i,k); |
fprintf(ficlog,"%d%d ",i,k); |
for(j=1; j <=ncovmodel; j++){ |
for(j=1; j <=ncovmodel; j++){ |
printf("%12.7f W=%8.3f CI=[%12.7f ; %12.7f] ",p[jk], p[jk]/sqrt(matcov[jk][jk]), p[jk]-1.96*sqrt(matcov[jk][jk]),p[jk]+1.96*sqrt(matcov[jk][jk])); |
printf("%12.7f W=%8.3f CI=[%12.7f ; %12.7f] ",p[jk], p[jk]/sqrt(matcov[jk][jk]), p[jk]-1.96*sqrt(matcov[jk][jk]),p[jk]+1.96*sqrt(matcov[jk][jk])); |
fprintf(ficlog,"%12.7f W=%8.3f CI=[%12.7f ; %12.7f] ",p[jk], p[jk]/sqrt(matcov[jk][jk]), p[jk]-1.96*sqrt(matcov[jk][jk]),p[jk]+1.96*sqrt(matcov[jk][jk])); |
fprintf(ficlog,"%12.7f W=%8.3f CI=[%12.7f ; %12.7f] ",p[jk], p[jk]/sqrt(matcov[jk][jk]), p[jk]-1.96*sqrt(matcov[jk][jk]),p[jk]+1.96*sqrt(matcov[jk][jk])); |
jk++; |
jk++; |
} |
} |
printf("\n"); |
printf("\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficlog,"\n"); |
} |
} |
} |
} |
} |
} |
} /* end of hesscov and Wald tests */ |
} /* end of hesscov and Wald tests */ |
|
|
/* */ |
/* */ |
fprintf(ficres,"# Scales (for hessian or gradient estimation)\n"); |
fprintf(ficres,"# Scales (for hessian or gradient estimation)\n"); |
printf("# Scales (for hessian or gradient estimation)\n"); |
printf("# Scales (for hessian or gradient estimation)\n"); |
fprintf(ficlog,"# Scales (for hessian or gradient estimation)\n"); |
fprintf(ficlog,"# Scales (for hessian or gradient estimation)\n"); |
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) { |
fprintf(ficres,"%1d%1d",i,j); |
fprintf(ficres,"%1d%1d",i,j); |
printf("%1d%1d",i,j); |
printf("%1d%1d",i,j); |
fprintf(ficlog,"%1d%1d",i,j); |
fprintf(ficlog,"%1d%1d",i,j); |
for(k=1; k<=ncovmodel;k++){ |
for(k=1; k<=ncovmodel;k++){ |
printf(" %.5e",delti[jk]); |
printf(" %.5e",delti[jk]); |
fprintf(ficlog," %.5e",delti[jk]); |
fprintf(ficlog," %.5e",delti[jk]); |
fprintf(ficres," %.5e",delti[jk]); |
fprintf(ficres," %.5e",delti[jk]); |
jk++; |
jk++; |
} |
} |
printf("\n"); |
printf("\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficres,"\n"); |
fprintf(ficres,"\n"); |
} |
} |
} |
} |
} |
} |
|
|
Line 9273 Please run with mle=-1 to get a correct
|
Line 9378 Please run with mle=-1 to get a correct
|
for(itimes=1;itimes<=2;itimes++){ |
for(itimes=1;itimes<=2;itimes++){ |
jj=0; |
jj=0; |
for(i=1; i <=nlstate; i++){ |
for(i=1; i <=nlstate; i++){ |
for(j=1; j <=nlstate+ndeath; j++){ |
for(j=1; j <=nlstate+ndeath; j++){ |
if(j==i) continue; |
if(j==i) continue; |
for(k=1; k<=ncovmodel;k++){ |
for(k=1; k<=ncovmodel;k++){ |
jj++; |
jj++; |
ca[0]= k+'a'-1;ca[1]='\0'; |
ca[0]= k+'a'-1;ca[1]='\0'; |
if(itimes==1){ |
if(itimes==1){ |
if(mle>=1) |
if(mle>=1) |
printf("#%1d%1d%d",i,j,k); |
printf("#%1d%1d%d",i,j,k); |
fprintf(ficlog,"#%1d%1d%d",i,j,k); |
fprintf(ficlog,"#%1d%1d%d",i,j,k); |
fprintf(ficres,"#%1d%1d%d",i,j,k); |
fprintf(ficres,"#%1d%1d%d",i,j,k); |
}else{ |
}else{ |
if(mle>=1) |
if(mle>=1) |
printf("%1d%1d%d",i,j,k); |
printf("%1d%1d%d",i,j,k); |
fprintf(ficlog,"%1d%1d%d",i,j,k); |
fprintf(ficlog,"%1d%1d%d",i,j,k); |
fprintf(ficres,"%1d%1d%d",i,j,k); |
fprintf(ficres,"%1d%1d%d",i,j,k); |
} |
} |
ll=0; |
ll=0; |
for(li=1;li <=nlstate; li++){ |
for(li=1;li <=nlstate; li++){ |
for(lj=1;lj <=nlstate+ndeath; lj++){ |
for(lj=1;lj <=nlstate+ndeath; lj++){ |
if(lj==li) continue; |
if(lj==li) continue; |
for(lk=1;lk<=ncovmodel;lk++){ |
for(lk=1;lk<=ncovmodel;lk++){ |
ll++; |
ll++; |
if(ll<=jj){ |
if(ll<=jj){ |
cb[0]= lk +'a'-1;cb[1]='\0'; |
cb[0]= lk +'a'-1;cb[1]='\0'; |
if(ll<jj){ |
if(ll<jj){ |
if(itimes==1){ |
if(itimes==1){ |
if(mle>=1) |
if(mle>=1) |
printf(" Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
printf(" Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
fprintf(ficlog," Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
fprintf(ficlog," Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
fprintf(ficres," Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
fprintf(ficres," Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj); |
}else{ |
}else{ |
if(mle>=1) |
if(mle>=1) |
printf(" %.5e",matcov[jj][ll]); |
printf(" %.5e",matcov[jj][ll]); |
fprintf(ficlog," %.5e",matcov[jj][ll]); |
fprintf(ficlog," %.5e",matcov[jj][ll]); |
fprintf(ficres," %.5e",matcov[jj][ll]); |
fprintf(ficres," %.5e",matcov[jj][ll]); |
} |
} |
}else{ |
}else{ |
if(itimes==1){ |
if(itimes==1){ |
if(mle>=1) |
if(mle>=1) |
printf(" Var(%s%1d%1d)",ca,i,j); |
printf(" Var(%s%1d%1d)",ca,i,j); |
fprintf(ficlog," Var(%s%1d%1d)",ca,i,j); |
fprintf(ficlog," Var(%s%1d%1d)",ca,i,j); |
fprintf(ficres," Var(%s%1d%1d)",ca,i,j); |
fprintf(ficres," Var(%s%1d%1d)",ca,i,j); |
}else{ |
}else{ |
if(mle>=1) |
if(mle>=1) |
printf(" %.7e",matcov[jj][ll]); |
printf(" %.7e",matcov[jj][ll]); |
fprintf(ficlog," %.7e",matcov[jj][ll]); |
fprintf(ficlog," %.7e",matcov[jj][ll]); |
fprintf(ficres," %.7e",matcov[jj][ll]); |
fprintf(ficres," %.7e",matcov[jj][ll]); |
} |
} |
} |
} |
} |
} |
} /* end lk */ |
} /* end lk */ |
} /* end lj */ |
} /* end lj */ |
} /* end li */ |
} /* end li */ |
if(mle>=1) |
if(mle>=1) |
printf("\n"); |
printf("\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficres,"\n"); |
fprintf(ficres,"\n"); |
numlinepar++; |
numlinepar++; |
} /* end k*/ |
} /* end k*/ |
} /*end j */ |
} /*end j */ |
} /* end i */ |
} /* end i */ |
} /* end itimes */ |
} /* end itimes */ |
|
|
fflush(ficlog); |
fflush(ficlog); |
fflush(ficres); |
fflush(ficres); |
while(fgets(line, MAXLINE, ficpar)) { |
while(fgets(line, MAXLINE, ficpar)) { |
/* If line starts with a # it is a comment */ |
/* If line starts with a # it is a comment */ |
if (line[0] == '#') { |
if (line[0] == '#') { |
numlinepar++; |
numlinepar++; |
fputs(line,stdout); |
fputs(line,stdout); |
fputs(line,ficparo); |
fputs(line,ficparo); |
fputs(line,ficlog); |
fputs(line,ficlog); |
continue; |
continue; |
}else |
}else |
break; |
break; |
} |
} |
|
|
/* while((c=getc(ficpar))=='#' && c!= EOF){ */ |
/* while((c=getc(ficpar))=='#' && c!= EOF){ */ |
/* ungetc(c,ficpar); */ |
/* ungetc(c,ficpar); */ |
/* fgets(line, MAXLINE, ficpar); */ |
/* fgets(line, MAXLINE, ficpar); */ |
Line 9360 Please run with mle=-1 to get a correct
|
Line 9465 Please run with mle=-1 to get a correct
|
|
|
estepm=0; |
estepm=0; |
if((num_filled=sscanf(line,"agemin=%lf agemax=%lf bage=%lf fage=%lf estepm=%d ftolpl=%lf\n",&ageminpar,&agemaxpar, &bage, &fage, &estepm, &ftolpl)) !=EOF){ |
if((num_filled=sscanf(line,"agemin=%lf agemax=%lf bage=%lf fage=%lf estepm=%d ftolpl=%lf\n",&ageminpar,&agemaxpar, &bage, &fage, &estepm, &ftolpl)) !=EOF){ |
|
|
if (num_filled != 6) { |
if (num_filled != 6) { |
printf("Error: Not 6 parameters in line, for example:agemin=60 agemax=95 bage=55 fage=95 estepm=24 ftolpl=6e-4\n, your line=%s . Probably you are running an older format.\n",line); |
printf("Error: Not 6 parameters in line, for example:agemin=60 agemax=95 bage=55 fage=95 estepm=24 ftolpl=6e-4\n, your line=%s . Probably you are running an older format.\n",line); |
fprintf(ficlog,"Error: Not 6 parameters in line, for example:agemin=60 agemax=95 bage=55 fage=95 estepm=24 ftolpl=6e-4\n, your line=%s . Probably you are running an older format.\n",line); |
fprintf(ficlog,"Error: Not 6 parameters in line, for example:agemin=60 agemax=95 bage=55 fage=95 estepm=24 ftolpl=6e-4\n, your line=%s . Probably you are running an older format.\n",line); |
goto end; |
goto end; |
} |
} |
printf("agemin=%lf agemax=%lf bage=%lf fage=%lf estepm=%d ftolpl=%lf\n",ageminpar,agemaxpar, bage, fage, estepm, ftolpl); |
printf("agemin=%lf agemax=%lf bage=%lf fage=%lf estepm=%d ftolpl=%lf\n",ageminpar,agemaxpar, bage, fage, estepm, ftolpl); |
} |
} |
/* ftolpl=6*ftol*1.e5; /\* 6.e-3 make convergences in less than 80 loops for the prevalence limit *\/ */ |
/* ftolpl=6*ftol*1.e5; /\* 6.e-3 make convergences in less than 80 loops for the prevalence limit *\/ */ |
/*ftolpl=6.e-4;*/ /* 6.e-3 make convergences in less than 80 loops for the prevalence limit */ |
/*ftolpl=6.e-4;*/ /* 6.e-3 make convergences in less than 80 loops for the prevalence limit */ |
|
|
/* fscanf(ficpar,"agemin=%lf agemax=%lf bage=%lf fage=%lf estepm=%d ftolpl=%\n",&ageminpar,&agemaxpar, &bage, &fage, &estepm); */ |
/* fscanf(ficpar,"agemin=%lf agemax=%lf bage=%lf fage=%lf estepm=%d ftolpl=%\n",&ageminpar,&agemaxpar, &bage, &fage, &estepm); */ |
if (estepm==0 || estepm < stepm) estepm=stepm; |
if (estepm==0 || estepm < stepm) estepm=stepm; |
if (fage <= 2) { |
if (fage <= 2) { |
Line 9381 Please run with mle=-1 to get a correct
|
Line 9486 Please run with mle=-1 to get a correct
|
fprintf(ficres,"# agemin agemax for life expectancy, bage fage (if mle==0 ie no data nor Max likelihood).\n"); |
fprintf(ficres,"# agemin agemax for life expectancy, bage fage (if mle==0 ie no data nor Max likelihood).\n"); |
fprintf(ficres,"agemin=%.0f agemax=%.0f bage=%.0f fage=%.0f estepm=%d ftolpl=%e\n",ageminpar,agemaxpar,bage,fage, estepm, ftolpl); |
fprintf(ficres,"agemin=%.0f agemax=%.0f bage=%.0f fage=%.0f estepm=%d ftolpl=%e\n",ageminpar,agemaxpar,bage,fage, estepm, ftolpl); |
fprintf(ficparo,"agemin=%.0f agemax=%.0f bage=%.0f fage=%.0f estepm=%d, ftolpl=%e\n",ageminpar,agemaxpar,bage,fage, estepm, ftolpl); |
fprintf(ficparo,"agemin=%.0f agemax=%.0f bage=%.0f fage=%.0f estepm=%d, ftolpl=%e\n",ageminpar,agemaxpar,bage,fage, estepm, ftolpl); |
|
|
/* Other stuffs, more or less useful */ |
/* Other stuffs, more or less useful */ |
while((c=getc(ficpar))=='#' && c!= EOF){ |
while((c=getc(ficpar))=='#' && c!= EOF){ |
ungetc(c,ficpar); |
ungetc(c,ficpar); |
Line 9444 Please run with mle=-1 to get a correct
|
Line 9549 Please run with mle=-1 to get a correct
|
/* day and month of proj2 are not used but only year anproj2.*/ |
/* day and month of proj2 are not used but only year anproj2.*/ |
|
|
|
|
/* 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); */ |
|
|
replace_back_to_slash(pathc,pathcd); /* Even gnuplot wants a / */ |
replace_back_to_slash(pathc,pathcd); /* Even gnuplot wants a / */ |
if(ageminpar == AGEOVERFLOW ||agemaxpar == -AGEOVERFLOW){ |
if(ageminpar == AGEOVERFLOW ||agemaxpar == -AGEOVERFLOW){ |
printf("Warning! Error in gnuplot file with ageminpar %f or agemaxpar %f overflow\n\ |
printf("Warning! Error in gnuplot file with ageminpar %f or agemaxpar %f overflow\n\ |
This is probably because your parameter file doesn't \n contain the exact number of lines (or columns) corresponding to your model line.\n\ |
This is probably because your parameter file doesn't \n contain the exact number of lines (or columns) corresponding to your model line.\n\ |
Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpar); |
Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpar); |
fprintf(ficlog,"Warning! Error in gnuplot file with ageminpar %f or agemaxpar %f overflow\n\ |
fprintf(ficlog,"Warning! Error in gnuplot file with ageminpar %f or agemaxpar %f overflow\n\ |
This is probably because your parameter file doesn't \n contain the exact number of lines (or columns) corresponding to your model line.\n\ |
This is probably because your parameter file doesn't \n contain the exact number of lines (or columns) corresponding to your model line.\n\ |
Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpar); |
Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpar); |
}else |
}else{ |
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,prevfcast,backcast, estepm, \ |
jprev1,mprev1,anprev1,dateprev1,jprev2,mprev2,anprev2,dateprev2); |
jprev1,mprev1,anprev1,dateprev1,jprev2,mprev2,anprev2,dateprev2); |
|
|
/*------------ free_vector -------------*/ |
/*------------ free_vector -------------*/ |
/* chdir(path); */ |
/* chdir(path); */ |
|
|
/* free_ivector(wav,1,imx); */ /* Moved after last prevalence call */ |
/* free_ivector(wav,1,imx); */ /* Moved after last prevalence call */ |
/* free_imatrix(dh,1,lastpass-firstpass+2,1,imx); */ |
/* free_imatrix(dh,1,lastpass-firstpass+2,1,imx); */ |
/* free_imatrix(bh,1,lastpass-firstpass+2,1,imx); */ |
/* free_imatrix(bh,1,lastpass-firstpass+2,1,imx); */ |
Line 9475 Please run with mle=-1 to get a correct
|
Line 9580 Please run with mle=-1 to get a correct
|
/*free_matrix(covar,1,NCOVMAX,1,n);*/ |
/*free_matrix(covar,1,NCOVMAX,1,n);*/ |
fclose(ficparo); |
fclose(ficparo); |
fclose(ficres); |
fclose(ficres); |
|
|
|
|
/* Other results (useful)*/ |
/* Other results (useful)*/ |
|
|
|
|
/*--------------- Prevalence limit (period or stable prevalence) --------------*/ |
/*--------------- Prevalence limit (period or stable prevalence) --------------*/ |
/*#include "prevlim.h"*/ /* Use ficrespl, ficlog */ |
/*#include "prevlim.h"*/ /* Use ficrespl, ficlog */ |
prlim=matrix(1,nlstate,1,nlstate); |
prlim=matrix(1,nlstate,1,nlstate); |
Line 9491 Please run with mle=-1 to get a correct
|
Line 9596 Please run with mle=-1 to get a correct
|
hPijx(p, bage, fage); |
hPijx(p, bage, fage); |
fclose(ficrespij); |
fclose(ficrespij); |
|
|
ncovcombmax= pow(2,cptcoveff); |
/* ncovcombmax= pow(2,cptcoveff); */ |
/*-------------- Variance of one-step probabilities---*/ |
/*-------------- Variance of one-step probabilities---*/ |
k=1; |
k=1; |
varprob(optionfilefiname, matcov, p, delti, nlstate, bage, fage,k,Tvar,nbcode, ncodemax,strstart); |
varprob(optionfilefiname, matcov, p, delti, nlstate, bage, fage,k,Tvar,nbcode, ncodemax,strstart); |
Line 9543 Please run with mle=-1 to get a correct
|
Line 9648 Please run with mle=-1 to get a correct
|
back_prevalence_limit(p, bprlim, ageminpar, agemaxpar, ftolpl, &ncvyear, dateprev1, dateprev2, firstpass, lastpass, mobilavproj); |
back_prevalence_limit(p, bprlim, ageminpar, agemaxpar, ftolpl, &ncvyear, dateprev1, dateprev2, firstpass, lastpass, mobilavproj); |
fclose(ficresplb); |
fclose(ficresplb); |
|
|
hBijx(p, bage, fage, mobaverage); |
/* hBijx(p, bage, fage, mobaverage); */ |
fclose(ficrespijb); |
/* fclose(ficrespijb); */ |
free_matrix(bprlim,1,nlstate,1,nlstate); /*here or after loop ? */ |
free_matrix(bprlim,1,nlstate,1,nlstate); /*here or after loop ? */ |
|
|
/* prevbackforecast(fileresu, anback1, mback1, jback1, agemin, agemax, dateprev1, dateprev2, mobilavproj, |
/* prevbackforecast(fileresu, anback1, mback1, jback1, agemin, agemax, dateprev1, dateprev2, mobilavproj, |
Line 9577 Please run with mle=-1 to get a correct
|
Line 9682 Please run with mle=-1 to get a correct
|
for (k=1; k <= (int) pow(2,cptcoveff); k++){ |
for (k=1; k <= (int) pow(2,cptcoveff); k++){ |
fprintf(ficreseij,"\n#****** "); |
fprintf(ficreseij,"\n#****** "); |
for(j=1;j<=cptcoveff;j++) { |
for(j=1;j<=cptcoveff;j++) { |
fprintf(ficreseij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficreseij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
} |
} |
fprintf(ficreseij,"******\n"); |
fprintf(ficreseij,"******\n"); |
|
|
Line 9671 Please run with mle=-1 to get a correct
|
Line 9776 Please run with mle=-1 to get a correct
|
|
|
|
|
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*/ |
oldm=oldms;savm=savms; /* ZZ Segmentation fault */ |
oldm=oldms;savm=savms; /* ZZ Segmentation fault */ |
cptcod= 0; /* To be deleted */ |
cptcod= 0; /* To be deleted */ |
printf("varevsij %d \n",vpopbased); |
printf("varevsij %d \n",vpopbased); |
fprintf(ficlog, "varevsij %d \n",vpopbased); |
fprintf(ficlog, "varevsij %d \n",vpopbased); |
varevsij(optionfilefiname, vareij, matcov, p, delti, nlstate, stepm, (int) bage, (int) fage, oldm, savm, prlim, ftolpl, &ncvyear, k, estepm, cptcov,cptcod,vpopbased,mobilav, strstart); /* cptcod not initialized Intel */ |
varevsij(optionfilefiname, vareij, matcov, p, delti, nlstate, stepm, (int) bage, (int) fage, oldm, savm, prlim, ftolpl, &ncvyear, k, estepm, cptcov,cptcod,vpopbased,mobilav, strstart); /* cptcod not initialized Intel */ |
fprintf(ficrest,"# Total life expectancy with std error and decomposition into time to be expected in each health state\n# (weighted average of eij where weights are "); |
fprintf(ficrest,"# Total life expectancy with std error and decomposition into time to be expected in each health state\n# (weighted average of eij where weights are "); |
if(vpopbased==1) |
if(vpopbased==1) |
fprintf(ficrest,"the age specific prevalence observed (cross-sectionally) in the population i.e cross-sectionally\n in each health state (popbased=1) (mobilav=%d)\n",mobilav); |
fprintf(ficrest,"the age specific prevalence observed (cross-sectionally) in the population i.e cross-sectionally\n in each health state (popbased=1) (mobilav=%d)\n",mobilav); |
else |
else |
fprintf(ficrest,"the age specific period (stable) prevalences in each health state \n"); |
fprintf(ficrest,"the age specific period (stable) prevalences in each health state \n"); |
fprintf(ficrest,"# Age popbased mobilav e.. (std) "); |
fprintf(ficrest,"# Age popbased mobilav e.. (std) "); |
for (i=1;i<=nlstate;i++) fprintf(ficrest,"e.%d (std) ",i); |
for (i=1;i<=nlstate;i++) fprintf(ficrest,"e.%d (std) ",i); |
fprintf(ficrest,"\n"); |
fprintf(ficrest,"\n"); |
/* printf("Which p?\n"); for(i=1;i<=npar;i++)printf("p[i=%d]=%lf,",i,p[i]);printf("\n"); */ |
/* printf("Which p?\n"); for(i=1;i<=npar;i++)printf("p[i=%d]=%lf,",i,p[i]);printf("\n"); */ |
epj=vector(1,nlstate+1); |
epj=vector(1,nlstate+1); |
printf("Computing age specific period (stable) prevalences in each health state \n"); |
printf("Computing age specific period (stable) prevalences in each health state \n"); |
fprintf(ficlog,"Computing age specific period (stable) prevalences in each health state \n"); |
fprintf(ficlog,"Computing age specific period (stable) prevalences in each health state \n"); |
for(age=bage; age <=fage ;age++){ |
for(age=bage; age <=fage ;age++){ |
prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, &ncvyear, k); /*ZZ Is it the correct prevalim */ |
prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, &ncvyear, k); /*ZZ Is it the correct prevalim */ |
if (vpopbased==1) { |
if (vpopbased==1) { |
if(mobilav ==0){ |
if(mobilav ==0){ |
for(i=1; i<=nlstate;i++) |
for(i=1; i<=nlstate;i++) |
prlim[i][i]=probs[(int)age][i][k]; |
prlim[i][i]=probs[(int)age][i][k]; |
}else{ /* mobilav */ |
}else{ /* mobilav */ |
for(i=1; i<=nlstate;i++) |
for(i=1; i<=nlstate;i++) |
prlim[i][i]=mobaverage[(int)age][i][k]; |
prlim[i][i]=mobaverage[(int)age][i][k]; |
} |
} |
} |
} |
|
|
fprintf(ficrest," %4.0f %d %d",age, vpopbased, mobilav); |
fprintf(ficrest," %4.0f %d %d",age, vpopbased, mobilav); |
/* fprintf(ficrest," %4.0f %d %d %d %d",age, vpopbased, mobilav,Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); */ /* to be done */ |
/* fprintf(ficrest," %4.0f %d %d %d %d",age, vpopbased, mobilav,Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); */ /* to be done */ |
/* printf(" age %4.0f ",age); */ |
/* printf(" age %4.0f ",age); */ |
for(j=1, epj[nlstate+1]=0.;j <=nlstate;j++){ |
for(j=1, epj[nlstate+1]=0.;j <=nlstate;j++){ |
for(i=1, epj[j]=0.;i <=nlstate;i++) { |
for(i=1, epj[j]=0.;i <=nlstate;i++) { |
epj[j] += prlim[i][i]*eij[i][j][(int)age]; |
epj[j] += prlim[i][i]*eij[i][j][(int)age]; |
/*ZZZ printf("%lf %lf ", prlim[i][i] ,eij[i][j][(int)age]);*/ |
/*ZZZ printf("%lf %lf ", prlim[i][i] ,eij[i][j][(int)age]);*/ |
/* printf("%lf %lf ", prlim[i][i] ,eij[i][j][(int)age]); */ |
/* printf("%lf %lf ", prlim[i][i] ,eij[i][j][(int)age]); */ |
} |
} |
epj[nlstate+1] +=epj[j]; |
epj[nlstate+1] +=epj[j]; |
} |
} |
/* printf(" age %4.0f \n",age); */ |
/* printf(" age %4.0f \n",age); */ |
|
|
for(i=1, vepp=0.;i <=nlstate;i++) |
for(i=1, vepp=0.;i <=nlstate;i++) |
for(j=1;j <=nlstate;j++) |
for(j=1;j <=nlstate;j++) |
vepp += vareij[i][j][(int)age]; |
vepp += vareij[i][j][(int)age]; |
fprintf(ficrest," %7.3f (%7.3f)", epj[nlstate+1],sqrt(vepp)); |
fprintf(ficrest," %7.3f (%7.3f)", epj[nlstate+1],sqrt(vepp)); |
for(j=1;j <=nlstate;j++){ |
for(j=1;j <=nlstate;j++){ |
fprintf(ficrest," %7.3f (%7.3f)", epj[j],sqrt(vareij[j][j][(int)age])); |
fprintf(ficrest," %7.3f (%7.3f)", epj[j],sqrt(vareij[j][j][(int)age])); |
} |
} |
fprintf(ficrest,"\n"); |
fprintf(ficrest,"\n"); |
} |
} |
} /* End vpopbased */ |
} /* End vpopbased */ |
free_ma3x(eij,1,nlstate,1,nlstate,(int) bage, (int)fage); |
free_ma3x(eij,1,nlstate,1,nlstate,(int) bage, (int)fage); |
free_ma3x(vareij,1,nlstate,1,nlstate,(int) bage, (int)fage); |
free_ma3x(vareij,1,nlstate,1,nlstate,(int) bage, (int)fage); |
Line 9781 Please run with mle=-1 to get a correct
|
Line 9886 Please run with mle=-1 to get a correct
|
if (mobilav!=0 ||mobilavproj !=0) |
if (mobilav!=0 ||mobilavproj !=0) |
free_ma3x(mobaverages,1, AGESUP,1,nlstate+ndeath, 1,ncovcombmax); /* We need to have a squared matrix with prevalence of the dead! */ |
free_ma3x(mobaverages,1, AGESUP,1,nlstate+ndeath, 1,ncovcombmax); /* We need to have a squared matrix with prevalence of the dead! */ |
free_ma3x(probs,1,AGESUP,1,nlstate+ndeath, 1,ncovcombmax); |
free_ma3x(probs,1,AGESUP,1,nlstate+ndeath, 1,ncovcombmax); |
} /* mle==-3 arrives here for freeing */ |
|
/* endfree:*/ |
|
free_matrix(prlim,1,nlstate,1,nlstate); /*here or after loop ? */ |
free_matrix(prlim,1,nlstate,1,nlstate); /*here or after loop ? */ |
free_matrix(pmmij,1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(pmmij,1,nlstate+ndeath,1,nlstate+ndeath); |
|
} /* mle==-3 arrives here for freeing */ |
|
/* endfree:*/ |
free_matrix(oldms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(oldms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(newms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(newms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(savms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(savms, 1,nlstate+ndeath,1,nlstate+ndeath); |
Line 9801 Please run with mle=-1 to get a correct
|
Line 9906 Please run with mle=-1 to get a correct
|
free_ivector(Tvar,1,NCOVMAX); |
free_ivector(Tvar,1,NCOVMAX); |
free_ivector(Tprod,1,NCOVMAX); |
free_ivector(Tprod,1,NCOVMAX); |
free_ivector(Tvaraff,1,NCOVMAX); |
free_ivector(Tvaraff,1,NCOVMAX); |
|
free_ivector(invalidvarcomb,1,ncovcombmax); |
free_ivector(Tage,1,NCOVMAX); |
free_ivector(Tage,1,NCOVMAX); |
|
|
free_imatrix(nbcode,0,NCOVMAX,0,NCOVMAX); |
free_imatrix(nbcode,0,NCOVMAX,0,NCOVMAX); |