version 1.234, 2016/08/23 16:51:20
|
version 1.239, 2016/08/26 15:51:03
|
Line 1
|
Line 1
|
/* $Id$ |
/* $Id$ |
$State$ |
$State$ |
$Log$ |
$Log$ |
|
Revision 1.239 2016/08/26 15:51:03 brouard |
|
Summary: Improvement in Powell output in order to copy and paste |
|
|
|
Author: |
|
|
|
Revision 1.238 2016/08/26 14:23:35 brouard |
|
Summary: Starting tests of 0.99 |
|
|
|
Revision 1.237 2016/08/26 09:20:19 brouard |
|
Summary: to valgrind |
|
|
|
Revision 1.236 2016/08/25 10:50:18 brouard |
|
*** empty log message *** |
|
|
|
Revision 1.235 2016/08/25 06:59:23 brouard |
|
*** empty log message *** |
|
|
Revision 1.234 2016/08/23 16:51:20 brouard |
Revision 1.234 2016/08/23 16:51:20 brouard |
*** empty log message *** |
*** empty log message *** |
|
|
Line 1105 int *TvarsDind;
|
Line 1122 int *TvarsDind;
|
int *TvarsQ; |
int *TvarsQ; |
int *TvarsQind; |
int *TvarsQind; |
|
|
|
#define MAXRESULTLINES 10 |
|
int nresult=0; |
|
int TKresult[MAXRESULTLINES]; |
|
int Tresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ |
|
int Tinvresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ |
|
int Tvresult[MAXRESULTLINES][NCOVMAX]; /* For dummy variable , variable # (output) */ |
|
double Tqresult[MAXRESULTLINES][NCOVMAX]; /* For quantitative variable , value (output) */ |
|
double Tqinvresult[MAXRESULTLINES][NCOVMAX]; /* For quantitative variable , value (output) */ |
|
int Tvqresult[MAXRESULTLINES][NCOVMAX]; /* For quantitative variable , variable # (output) */ |
|
|
/* int *TDvar; /\**< TDvar[1]=4, TDvarF[2]=3, TDvar[3]=6 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 *\/ */ |
/* int *TDvar; /\**< TDvar[1]=4, TDvarF[2]=3, TDvar[3]=6 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 *\/ */ |
int *TvarF; /**< TvarF[1]=Tvar[6]=2, TvarF[2]=Tvar[7]=7, TvarF[3]=Tvar[9]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
int *TvarF; /**< TvarF[1]=Tvar[6]=2, TvarF[2]=Tvar[7]=7, TvarF[3]=Tvar[9]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
int *TvarFind; /**< TvarFind[1]=6, TvarFind[2]=7, Tvarind[3]=9 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
int *TvarFind; /**< TvarFind[1]=6, TvarFind[2]=7, Tvarind[3]=9 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
Line 1126 double *Tvalsel; /**< Selected modality
|
Line 1153 double *Tvalsel; /**< Selected modality
|
int *Typevar; /**< 0 for simple covariate (dummy, quantitative, fixed or varying), 1 for age product, 2 for product */ |
int *Typevar; /**< 0 for simple covariate (dummy, quantitative, fixed or varying), 1 for age product, 2 for product */ |
int *Fixed; /** Fixed[k] 0=fixed, 1 varying, 2 fixed with age product, 3 varying with age product */ |
int *Fixed; /** Fixed[k] 0=fixed, 1 varying, 2 fixed with age product, 3 varying with age product */ |
int *Dummy; /** Dummy[k] 0=dummy (0 1), 1 quantitative (single or product without age), 2 dummy with age product, 3 quant with age product */ |
int *Dummy; /** Dummy[k] 0=dummy (0 1), 1 quantitative (single or product without age), 2 dummy with age product, 3 quant with age product */ |
|
int *DummyV; /** Dummy[v] 0=dummy (0 1), 1 quantitative */ |
|
int *FixedV; /** FixedV[v] 0 fixed, 1 varying */ |
int *Tage; |
int *Tage; |
int anyvaryingduminmodel=0; /**< Any varying dummy in Model=1 yes, 0 no, to avoid a loop on waves in freq */ |
int anyvaryingduminmodel=0; /**< Any varying dummy in Model=1 yes, 0 no, to avoid a loop on waves in freq */ |
int *Tmodelind; /** Tmodelind[Tvaraff[3]]=9 for V1 position,Tvaraff[1]@9={4, 3, 1, 0, 0, 0, 0, 0, 0}, model=V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1*/ |
int *Tmodelind; /** Tmodelind[Tvaraff[3]]=9 for V1 position,Tvaraff[1]@9={4, 3, 1, 0, 0, 0, 0, 0, 0}, model=V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1*/ |
Line 1135 int *Ndum; /** Freq of modality (tricode
|
Line 1164 int *Ndum; /** Freq of modality (tricode
|
/* int **codtab;*/ /**< codtab=imatrix(1,100,1,10); */ |
/* int **codtab;*/ /**< codtab=imatrix(1,100,1,10); */ |
int **Tvard; |
int **Tvard; |
int *Tprod;/**< Gives the k position of the k1 product */ |
int *Tprod;/**< Gives the k position of the k1 product */ |
|
/* Tprod[k1=1]=3(=V1*V4) for V2+V1+V1*V4+age*V3 */ |
int *Tposprod; /**< Gives the k1 product from the k position */ |
int *Tposprod; /**< Gives the k1 product from the k position */ |
/* Tprod[k1=1]=3(=V1*V4) for V2+V1+V1*V4+age*V3 |
/* if V2+V1+V1*V4+age*V3+V3*V2 TProd[k1=2]=5 (V3*V2) */ |
if V2+V1+V1*V4+age*V3+V3*V2 TProd[k1=2]=5 (V3*V2) |
/* Tposprod[k]=k1 , Tposprod[3]=1, Tposprod[5(V3*V2)]=2 (2nd product without age) */ |
Tposprod[k]=k1 , Tposprod[3]=1, Tposprod[5]=2 |
|
*/ |
|
int cptcovprod, *Tvaraff, *invalidvarcomb; |
int cptcovprod, *Tvaraff, *invalidvarcomb; |
double *lsurv, *lpop, *tpop; |
double *lsurv, *lpop, *tpop; |
|
|
Line 2041 void powell(double p[], double **xi, int
|
Line 2069 void powell(double p[], double **xi, int
|
void linmin(double p[], double xi[], int n, double *fret, |
void linmin(double p[], double xi[], int n, double *fret, |
double (*func)(double []),int *flat); |
double (*func)(double []),int *flat); |
#endif |
#endif |
int i,ibig,j; |
int i,ibig,j,jk,k; |
double del,t,*pt,*ptt,*xit; |
double del,t,*pt,*ptt,*xit; |
double directest; |
double directest; |
double fp,fptt; |
double fp,fptt; |
Line 2073 void powell(double p[], double **xi, int
|
Line 2101 void powell(double p[], double **xi, int
|
fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f %ld sec. %ld sec.",*iter,*fret,rcurr_time-rlast_time, rcurr_time-rstart_time); fflush(ficlog); |
fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f %ld sec. %ld sec.",*iter,*fret,rcurr_time-rlast_time, rcurr_time-rstart_time); fflush(ficlog); |
/* fprintf(ficrespow,"%d %.12f %ld",*iter,*fret,curr_time.tm_sec-start_time.tm_sec); */ |
/* fprintf(ficrespow,"%d %.12f %ld",*iter,*fret,curr_time.tm_sec-start_time.tm_sec); */ |
for (i=1;i<=n;i++) { |
for (i=1;i<=n;i++) { |
printf(" %d %.12f",i, p[i]); |
|
fprintf(ficlog," %d %.12lf",i, p[i]); |
|
fprintf(ficrespow," %.12lf", p[i]); |
fprintf(ficrespow," %.12lf", p[i]); |
} |
} |
|
fprintf(ficrespow,"\n");fflush(ficrespow); |
|
printf("\n#model= 1 + age "); |
|
fprintf(ficlog,"\n#model= 1 + age "); |
|
if(nagesqr==1){ |
|
printf(" + age*age ",Tvar[j]); |
|
fprintf(ficlog," + age*age ",Tvar[j]); |
|
} |
|
for(j=1;j <=ncovmodel-2;j++){ |
|
if(Typevar[j]==0) { |
|
printf(" + V%d ",Tvar[j]); |
|
fprintf(ficlog," + V%d ",Tvar[j]); |
|
}else if(Typevar[j]==1) { |
|
printf(" + V%d*age ",Tvar[j]); |
|
fprintf(ficlog," + V%d*age ",Tvar[j]); |
|
}else if(Typevar[j]==2) { |
|
printf(" + V%d*V%d ",Tvard[Tposprod[j]][1],Tvard[Tposprod[j]][2]); |
|
fprintf(ficlog," + V%d*V%d ",Tvard[Tposprod[j]][1],Tvard[Tposprod[j]][2]); |
|
} |
|
} |
printf("\n"); |
printf("\n"); |
|
/* printf("12 47.0114589 0.0154322 33.2424412 0.3279905 2.3731903 */ |
|
/* 13 -21.5392400 0.1118147 1.2680506 1.2973408 -1.0663662 */ |
fprintf(ficlog,"\n"); |
fprintf(ficlog,"\n"); |
fprintf(ficrespow,"\n");fflush(ficrespow); |
for(i=1,jk=1; i <=nlstate; i++){ |
|
for(k=1; k <=(nlstate+ndeath); k++){ |
|
if (k != i) { |
|
printf("%d%d ",i,k); |
|
fprintf(ficlog,"%d%d ",i,k); |
|
fprintf(ficres,"%1d%1d ",i,k); |
|
for(j=1; j <=ncovmodel; j++){ |
|
printf("%12.7f ",p[jk]); |
|
fprintf(ficlog,"%12.7f ",p[jk]); |
|
fprintf(ficres,"%12.7f ",p[jk]); |
|
jk++; |
|
} |
|
printf("\n"); |
|
fprintf(ficlog,"\n"); |
|
fprintf(ficres,"\n"); |
|
} |
|
} |
|
} |
if(*iter <=3){ |
if(*iter <=3){ |
tml = *localtime(&rcurr_time); |
tml = *localtime(&rcurr_time); |
strcpy(strcurr,asctime(&tml)); |
strcpy(strcurr,asctime(&tml)); |
Line 2333 void powell(double p[], double **xi, int
|
Line 2397 void powell(double p[], double **xi, int
|
|
|
/**** Prevalence limit (stable or period prevalence) ****************/ |
/**** Prevalence limit (stable or period prevalence) ****************/ |
|
|
double **prevalim(double **prlim, int nlstate, double x[], double age, double **oldm, double **savm, double ftolpl, int *ncvyear, int ij) |
double **prevalim(double **prlim, int nlstate, double x[], double age, double **oldm, double **savm, double ftolpl, int *ncvyear, int ij, int nres) |
{ |
{ |
/* Computes the prevalence limit in each live state at age x and for covariate combiation ij by left multiplying the unit |
/* Computes the prevalence limit in each live state at age x and for covariate combination ij |
|
(and selected quantitative values in nres) |
|
by left multiplying the unit |
matrix by transitions matrix until convergence is reached with precision ftolpl */ |
matrix by transitions matrix until convergence is reached with precision ftolpl */ |
/* Wx= Wx-1 Px-1= Wx-2 Px-2 Px-1 = Wx-n Px-n ... Px-2 Px-1 I */ |
/* Wx= Wx-1 Px-1= Wx-2 Px-2 Px-1 = Wx-n Px-n ... Px-2 Px-1 I */ |
/* Wx is row vector: population in state 1, population in state 2, population dead */ |
/* Wx is row vector: population in state 1, population in state 2, population dead */ |
Line 2387 double **prevalim(double **prlim, int nl
|
Line 2453 double **prevalim(double **prlim, int nl
|
for (k=1; k<=nsd;k++) { /* For single dummy covariates only */ |
for (k=1; k<=nsd;k++) { /* For single dummy covariates only */ |
/* Here comes the value of the covariate 'ij' after renumbering k with single dummy covariates */ |
/* Here comes the value of the covariate 'ij' after renumbering k with single dummy covariates */ |
cov[2+nagesqr+TvarsDind[k]]=nbcode[TvarsD[k]][codtabm(ij,k)]; |
cov[2+nagesqr+TvarsDind[k]]=nbcode[TvarsD[k]][codtabm(ij,k)]; |
printf("prevalim ij=%d k=%d TvarsD[%d]=%d TvarsDind[%d]=%d nbcode=%d cov=%lf codtabm(%d,Tvar[%d])=%d \n",ij,k, k, TvarsD[k],k,TvarsDind[k],nbcode[TvarsD[k]][codtabm(ij,k)],cov[2+nagesqr+TvarsDind[k]], ij, k, codtabm(ij,k)); |
/* printf("prevalim Dummy combi=%d k=%d TvarsD[%d]=V%d TvarsDind[%d]=%d nbcode=%d cov=%lf codtabm(%d,Tvar[%d])=%d \n",ij,k, k, TvarsD[k],k,TvarsDind[k],nbcode[TvarsD[k]][codtabm(ij,k)],cov[2+nagesqr+TvarsDind[k]], ij, k, codtabm(ij,k)); */ |
} |
} |
for (k=1; k<=nsq;k++) { /* For single varying covariates only */ |
for (k=1; k<=nsq;k++) { /* For single varying covariates only */ |
/* Here comes the value of quantitative after renumbering k with single quantitative covariates */ |
/* Here comes the value of quantitative after renumbering k with single quantitative covariates */ |
/* cov[2+nagesqr+TvarsQind[k]]=qselvar[k]; */ |
cov[2+nagesqr+TvarsQind[k]]=Tqresult[nres][k]; |
printf("prevalim ij=%d k=%d TvarsQind[%d]=%d \n",ij,k,k,TvarsQind[k]); |
/* printf("prevalim Quantitative k=%d TvarsQind[%d]=%d, TvarsQ[%d]=V%d,Tqresult[%d][%d]=%f\n",k,k,TvarsQind[k],k,TvarsQ[k],nres,k,Tqresult[nres][k]); */ |
} |
} |
/*wrong? for (k=1; k<=cptcovage;k++) cov[2+Tage[k]]=cov[2+Tage[k]]*cov[2]; */ |
for (k=1; k<=cptcovage;k++){ /* For product with age */ |
/* for (k=1; k<=cptcovage;k++) cov[2+nagesqr+Tage[k]]=nbcode[Tvar[k]][codtabm(ij,Tvar[k])]*cov[2]; */ |
|
for (k=1; k<=cptcovage;k++){ |
|
if(Dummy[Tvar[Tage[k]]]){ |
if(Dummy[Tvar[Tage[k]]]){ |
cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; |
cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; |
} else{ |
} else{ |
; |
cov[2+nagesqr+Tage[k]]=Tqresult[nres][k]; |
/* cov[2+nagesqr+Tage[k]]=qselvar[k]; */ |
|
} |
} |
printf("prevalim Age ij=%d k=%d Tage[%d]=%d \n",ij,k,k,Tage[k]); |
/* printf("prevalim Age combi=%d k=%d Tage[%d]=V%d Tqresult[%d][%d]=%f\n",ij,k,k,Tage[k],nres,k,Tqresult[nres][k]); */ |
} |
} |
for (k=1; k<=cptcovprod;k++){ /* */ |
for (k=1; k<=cptcovprod;k++){ /* For product without age */ |
printf("prevalim Prod ij=%d k=%d Tprod[%d]=%d Tvard[%d][1]=%d, Tvard[%d][2]=%d\n",ij,k,k,Tprod[k], k,Tvard[k][1], k,Tvard[k][2]); |
/* printf("prevalim Prod ij=%d k=%d Tprod[%d]=%d Tvard[%d][1]=V%d, Tvard[%d][2]=V%d\n",ij,k,k,Tprod[k], k,Tvard[k][1], k,Tvard[k][2]); */ |
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)] * nbcode[Tvard[k][2]][codtabm(ij,k)]; |
if(Dummy[Tvard[k][1]==0]){ |
|
if(Dummy[Tvard[k][2]==0]){ |
|
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)] * nbcode[Tvard[k][2]][codtabm(ij,k)]; |
|
}else{ |
|
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)] * Tqresult[nres][k]; |
|
} |
|
}else{ |
|
if(Dummy[Tvard[k][2]==0]){ |
|
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][2]][codtabm(ij,k)] * Tqinvresult[nres][Tvard[k][1]]; |
|
}else{ |
|
cov[2+nagesqr+Tprod[k]]=Tqinvresult[nres][Tvard[k][1]]* Tqinvresult[nres][Tvard[k][2]]; |
|
} |
|
} |
} |
} |
/*printf("ij=%d cptcovprod=%d tvar=%d ", ij, cptcovprod, Tvar[1]);*/ |
/*printf("ij=%d cptcovprod=%d tvar=%d ", ij, cptcovprod, Tvar[1]);*/ |
/*printf("ij=%d cov[3]=%lf cov[4]=%lf \n",ij, cov[3],cov[4]);*/ |
/*printf("ij=%d cov[3]=%lf cov[4]=%lf \n",ij, cov[3],cov[4]);*/ |
Line 2530 Earliest age to start was %d-%d=%d, ncvl
|
Line 2605 Earliest age to start was %d-%d=%d, ncvl
|
cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(ij,k)]; |
cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(ij,k)]; |
/* printf("prevalim ij=%d k=%d Tvar[%d]=%d nbcode=%d cov=%lf codtabm(%d,Tvar[%d])=%d \n",ij,k, k, Tvar[k],nbcode[Tvar[k]][codtabm(ij,Tvar[k])],cov[2+k], ij, k, codtabm(ij,Tvar[k])]); */ |
/* printf("prevalim ij=%d k=%d Tvar[%d]=%d nbcode=%d cov=%lf codtabm(%d,Tvar[%d])=%d \n",ij,k, k, Tvar[k],nbcode[Tvar[k]][codtabm(ij,Tvar[k])],cov[2+k], ij, k, codtabm(ij,Tvar[k])]); */ |
} |
} |
/*wrong? for (k=1; k<=cptcovage;k++) cov[2+Tage[k]]=cov[2+Tage[k]]*cov[2]; */ |
|
/* for (k=1; k<=cptcovage;k++) cov[2+nagesqr+Tage[k]]=nbcode[Tvar[k]][codtabm(ij,Tvar[k])]*cov[2]; */ |
|
for (k=1; k<=cptcovage;k++) cov[2+nagesqr+Tage[k]]=nbcode[Tvar[k]][codtabm(ij,k)]*cov[2]; |
for (k=1; k<=cptcovage;k++) cov[2+nagesqr+Tage[k]]=nbcode[Tvar[k]][codtabm(ij,k)]*cov[2]; |
for (k=1; k<=cptcovprod;k++) /* Useless */ |
for (k=1; k<=cptcovprod;k++) /* Useless */ |
/* cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,Tvard[k][1])] * nbcode[Tvard[k][2]][codtabm(ij,Tvard[k][2])]; */ |
/* cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,Tvard[k][1])] * nbcode[Tvard[k][2]][codtabm(ij,Tvard[k][2])]; */ |
Line 2856 double **matprod2(double **out, double *
|
Line 2929 double **matprod2(double **out, double *
|
|
|
/************* Higher Matrix Product ***************/ |
/************* Higher Matrix Product ***************/ |
|
|
double ***hpxij(double ***po, int nhstepm, double age, int hstepm, double *x, int nlstate, int stepm, double **oldm, double **savm, int ij ) |
double ***hpxij(double ***po, int nhstepm, double age, int hstepm, double *x, int nlstate, int stepm, double **oldm, double **savm, int ij, int nres ) |
{ |
{ |
/* Computes the transition matrix starting at age 'age' and combination of covariate values corresponding to ij over |
/* Computes the transition matrix starting at age 'age' and combination of covariate values corresponding to ij over |
'nhstepm*hstepm*stepm' months (i.e. until |
'nhstepm*hstepm*stepm' months (i.e. until |
Line 2892 double ***hpxij(double ***po, int nhstep
|
Line 2965 double ***hpxij(double ***po, int nhstep
|
cov[2]=agexact; |
cov[2]=agexact; |
if(nagesqr==1) |
if(nagesqr==1) |
cov[3]= agexact*agexact; |
cov[3]= agexact*agexact; |
for (k=1; k<=cptcovn;k++) |
for (k=1; k<=nsd;k++) { /* For single dummy covariates only */ |
cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(ij,k)]; |
/* Here comes the value of the covariate 'ij' after renumbering k with single dummy covariates */ |
/* cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(ij,Tvar[k])]; */ |
cov[2+nagesqr+TvarsDind[k]]=nbcode[TvarsD[k]][codtabm(ij,k)]; |
for (k=1; k<=cptcovage;k++) /* Should start at cptcovn+1 */ |
/* printf("hpxij Dummy combi=%d k=%d TvarsD[%d]=V%d TvarsDind[%d]=%d nbcode=%d cov=%lf codtabm(%d,Tvar[%d])=%d \n",ij,k, k, TvarsD[k],k,TvarsDind[k],nbcode[TvarsD[k]][codtabm(ij,k)],cov[2+nagesqr+TvarsDind[k]], ij, k, codtabm(ij,k)); */ |
/* cov[2+Tage[k]]=cov[2+Tage[k]]*cov[2]; */ |
} |
cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; |
for (k=1; k<=nsq;k++) { /* For single varying covariates only */ |
/* cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,Tvar[Tage[k]])]*cov[2]; */ |
/* Here comes the value of quantitative after renumbering k with single quantitative covariates */ |
for (k=1; k<=cptcovprod;k++) /* Useless because included in cptcovn */ |
cov[2+nagesqr+TvarsQind[k]]=Tqresult[nres][k]; |
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)]*nbcode[Tvard[k][2]][codtabm(ij,k)]; |
/* printf("hPxij Quantitative k=%d TvarsQind[%d]=%d, TvarsQ[%d]=V%d,Tqresult[%d][%d]=%f\n",k,k,TvarsQind[k],k,TvarsQ[k],nres,k,Tqresult[nres][k]); */ |
/* cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,Tvard[k][1])]*nbcode[Tvard[k][2]][codtabm(ij,Tvard[k][2])]; */ |
} |
|
for (k=1; k<=cptcovage;k++){ |
|
if(Dummy[Tvar[Tage[k]]]){ |
|
cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; |
|
} else{ |
|
cov[2+nagesqr+Tage[k]]=Tqresult[nres][k]; |
|
} |
|
/* printf("hPxij Age combi=%d k=%d Tage[%d]=V%d Tqresult[%d][%d]=%f\n",ij,k,k,Tage[k],nres,k,Tqresult[nres][k]); */ |
|
} |
|
for (k=1; k<=cptcovprod;k++){ /* */ |
|
/* printf("hPxij Prod ij=%d k=%d Tprod[%d]=%d Tvard[%d][1]=V%d, Tvard[%d][2]=V%d\n",ij,k,k,Tprod[k], k,Tvard[k][1], k,Tvard[k][2]); */ |
|
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)] * nbcode[Tvard[k][2]][codtabm(ij,k)]; |
|
} |
|
/* for (k=1; k<=cptcovn;k++) */ |
|
/* cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(ij,k)]; */ |
|
/* for (k=1; k<=cptcovage;k++) /\* Should start at cptcovn+1 *\/ */ |
|
/* cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; */ |
|
/* for (k=1; k<=cptcovprod;k++) /\* Useless because included in cptcovn *\/ */ |
|
/* cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)]*nbcode[Tvard[k][2]][codtabm(ij,k)]; */ |
|
|
|
|
/*printf("hxi cptcov=%d cptcode=%d\n",cptcov,cptcode);*/ |
/*printf("hxi cptcov=%d cptcode=%d\n",cptcov,cptcode);*/ |
Line 4058 void freqsummary(char fileres[], int ia
|
Line 4149 void freqsummary(char fileres[], int ia
|
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 and dummy covariate value at beginning 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) { |
Line 4862 void concatwav(int wav[], int **dh, int
|
Line 4953 void concatwav(int wav[], int **dh, int
|
|
|
/*********** Health Expectancies ****************/ |
/*********** Health Expectancies ****************/ |
|
|
void evsij(double ***eij, double x[], int nlstate, int stepm, int bage, int fage, double **oldm, double **savm, int cij, int estepm,char strstart[] ) |
void evsij(double ***eij, double x[], int nlstate, int stepm, int bage, int fage, double **oldm, double **savm, int cij, int estepm,char strstart[], int nres ) |
|
|
{ |
{ |
/* Health expectancies, no variances */ |
/* Health expectancies, no variances */ |
Line 4872 void evsij(double ***eij, double x[], in
|
Line 4963 void evsij(double ***eij, double x[], in
|
double ***p3mat; |
double ***p3mat; |
double eip; |
double eip; |
|
|
pstamp(ficreseij); |
/* pstamp(ficreseij); */ |
fprintf(ficreseij,"# (a) Life expectancies by health status at initial age and (b) health expectancies by health status at initial age\n"); |
fprintf(ficreseij,"# (a) Life expectancies by health status at initial age and (b) health expectancies by health status at initial age\n"); |
fprintf(ficreseij,"# Age"); |
fprintf(ficreseij,"# Age"); |
for(i=1; i<=nlstate;i++){ |
for(i=1; i<=nlstate;i++){ |
Line 4935 void evsij(double ***eij, double x[], in
|
Line 5026 void evsij(double ***eij, double x[], in
|
/* Computed by stepm unit matrices, product of hstepma matrices, stored |
/* Computed by stepm unit matrices, product of hstepma matrices, stored |
in an array of nhstepma length: nhstepma=10, hstepm=4, stepm=6 months */ |
in an array of nhstepma length: nhstepma=10, hstepm=4, stepm=6 months */ |
|
|
hpxij(p3mat,nhstepma,age,hstepm,x,nlstate,stepm,oldm, savm, cij); |
hpxij(p3mat,nhstepma,age,hstepm,x,nlstate,stepm,oldm, savm, cij, nres); |
|
|
hf=hstepm*stepm/YEARM; /* Duration of hstepm expressed in year unit. */ |
hf=hstepm*stepm/YEARM; /* Duration of hstepm expressed in year unit. */ |
|
|
Line 4970 void evsij(double ***eij, double x[], in
|
Line 5061 void evsij(double ***eij, double x[], in
|
|
|
} |
} |
|
|
void cvevsij(double ***eij, double x[], int nlstate, int stepm, int bage, int fage, double **oldm, double **savm, int cij, int estepm,double delti[],double **matcov,char strstart[] ) |
void cvevsij(double ***eij, double x[], int nlstate, int stepm, int bage, int fage, double **oldm, double **savm, int cij, int estepm,double delti[],double **matcov,char strstart[], int nres ) |
|
|
{ |
{ |
/* Covariances of health expectancies eij and of total life expectancies according |
/* Covariances of health expectancies eij and of total life expectancies according |
Line 5083 void cvevsij(double ***eij, double x[],
|
Line 5174 void cvevsij(double ***eij, double x[],
|
xp[i] = x[i] + (i==theta ?delti[theta]:0); |
xp[i] = x[i] + (i==theta ?delti[theta]:0); |
xm[i] = x[i] - (i==theta ?delti[theta]:0); |
xm[i] = x[i] - (i==theta ?delti[theta]:0); |
} |
} |
hpxij(p3matp,nhstepm,age,hstepm,xp,nlstate,stepm,oldm,savm, cij); |
hpxij(p3matp,nhstepm,age,hstepm,xp,nlstate,stepm,oldm,savm, cij, nres); |
hpxij(p3matm,nhstepm,age,hstepm,xm,nlstate,stepm,oldm,savm, cij); |
hpxij(p3matm,nhstepm,age,hstepm,xm,nlstate,stepm,oldm,savm, cij, nres); |
|
|
for(j=1; j<= nlstate; j++){ |
for(j=1; j<= nlstate; j++){ |
for(i=1; i<=nlstate; i++){ |
for(i=1; i<=nlstate; i++){ |
Line 5125 void cvevsij(double ***eij, double x[],
|
Line 5216 void cvevsij(double ***eij, double x[],
|
} |
} |
|
|
/* Computing expectancies */ |
/* Computing expectancies */ |
hpxij(p3matm,nhstepm,age,hstepm,x,nlstate,stepm,oldm, savm, cij); |
hpxij(p3matm,nhstepm,age,hstepm,x,nlstate,stepm,oldm, savm, cij,nres); |
for(i=1; i<=nlstate;i++) |
for(i=1; i<=nlstate;i++) |
for(j=1; j<=nlstate;j++) |
for(j=1; j<=nlstate;j++) |
for (h=0, eij[i][j][(int)age]=0; h<=nhstepm-1; h++){ |
for (h=0, eij[i][j][(int)age]=0; h<=nhstepm-1; h++){ |
Line 5180 void cvevsij(double ***eij, double x[],
|
Line 5271 void cvevsij(double ***eij, double x[],
|
} |
} |
|
|
/************ Variance ******************/ |
/************ Variance ******************/ |
void varevsij(char optionfilefiname[], double ***vareij, double **matcov, double x[], double delti[], int nlstate, int stepm, double bage, double fage, double **oldm, double **savm, double **prlim, double ftolpl, int *ncvyearp, int ij, int estepm, int cptcov, int cptcod, int popbased, int mobilav, char strstart[]) |
void varevsij(char optionfilefiname[], double ***vareij, double **matcov, double x[], double delti[], int nlstate, int stepm, double bage, double fage, double **oldm, double **savm, double **prlim, double ftolpl, int *ncvyearp, int ij, int estepm, int cptcov, int cptcod, int popbased, int mobilav, char strstart[], int nres) |
{ |
{ |
/* Variance of health expectancies */ |
/* Variance of health expectancies */ |
/* double **prevalim(double **prlim, int nlstate, double *xp, double age, double **oldm, double ** savm,double ftolpl);*/ |
/* double **prevalim(double **prlim, int nlstate, double *xp, double age, double **oldm, double ** savm,double ftolpl);*/ |
Line 5237 void cvevsij(double ***eij, double x[],
|
Line 5328 void cvevsij(double ***eij, double x[],
|
fprintf(ficlog,"Computing total mortality p.j=w1*p1j+w2*p2j+..: result on file '%s' \n",fileresprobmorprev); |
fprintf(ficlog,"Computing total mortality p.j=w1*p1j+w2*p2j+..: result on file '%s' \n",fileresprobmorprev); |
pstamp(ficresprobmorprev); |
pstamp(ficresprobmorprev); |
fprintf(ficresprobmorprev,"# probabilities of dying before estepm=%d months for people of exact age and weighted probabilities w1*p1j+w2*p2j+... stand dev in()\n",estepm); |
fprintf(ficresprobmorprev,"# probabilities of dying before estepm=%d months for people of exact age and weighted probabilities w1*p1j+w2*p2j+... stand dev in()\n",estepm); |
|
fprintf(ficresprobmorprev,"# Selected quantitative variables and dummies"); |
|
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficresprobmorprev," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
} |
|
for(j=1;j<=cptcoveff;j++) |
|
fprintf(ficresprobmorprev,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(ij,j)]); |
|
fprintf(ficresprobmorprev,"\n"); |
|
|
fprintf(ficresprobmorprev,"# Age cov=%-d",ij); |
fprintf(ficresprobmorprev,"# Age cov=%-d",ij); |
for(j=nlstate+1; j<=(nlstate+ndeath);j++){ |
for(j=nlstate+1; j<=(nlstate+ndeath);j++){ |
fprintf(ficresprobmorprev," p.%-d SE",j); |
fprintf(ficresprobmorprev," p.%-d SE",j); |
Line 5306 void cvevsij(double ***eij, double x[],
|
Line 5405 void cvevsij(double ***eij, double x[],
|
xp[i] = x[i] + (i==theta ?delti[theta]:0); |
xp[i] = x[i] + (i==theta ?delti[theta]:0); |
} |
} |
|
|
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij); |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij, nresult); |
|
|
if (popbased==1) { |
if (popbased==1) { |
if(mobilav ==0){ |
if(mobilav ==0){ |
Line 5318 void cvevsij(double ***eij, double x[],
|
Line 5417 void cvevsij(double ***eij, double x[],
|
} |
} |
} |
} |
|
|
hpxij(p3mat,nhstepm,age,hstepm,xp,nlstate,stepm,oldm,savm, ij); /* Returns p3mat[i][j][h] for h=1 to nhstepm */ |
hpxij(p3mat,nhstepm,age,hstepm,xp,nlstate,stepm,oldm,savm, ij,nres); /* Returns p3mat[i][j][h] for h=1 to nhstepm */ |
for(j=1; j<= nlstate; j++){ |
for(j=1; j<= nlstate; j++){ |
for(h=0; h<=nhstepm; h++){ |
for(h=0; h<=nhstepm; h++){ |
for(i=1, gp[h][j]=0.;i<=nlstate;i++) |
for(i=1, gp[h][j]=0.;i<=nlstate;i++) |
Line 5338 void cvevsij(double ***eij, double x[],
|
Line 5437 void cvevsij(double ***eij, double x[],
|
for(i=1; i<=npar; i++) /* Computes gradient x - delta */ |
for(i=1; i<=npar; i++) /* Computes gradient x - delta */ |
xp[i] = x[i] - (i==theta ?delti[theta]:0); |
xp[i] = x[i] - (i==theta ?delti[theta]:0); |
|
|
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp, ij); |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp, ij, nresult); |
|
|
if (popbased==1) { |
if (popbased==1) { |
if(mobilav ==0){ |
if(mobilav ==0){ |
Line 5350 void cvevsij(double ***eij, double x[],
|
Line 5449 void cvevsij(double ***eij, double x[],
|
} |
} |
} |
} |
|
|
hpxij(p3mat,nhstepm,age,hstepm,xp,nlstate,stepm,oldm,savm, ij); |
hpxij(p3mat,nhstepm,age,hstepm,xp,nlstate,stepm,oldm,savm, ij,nres); |
|
|
for(j=1; j<= nlstate; j++){ /* Sum of wi * eij = e.j */ |
for(j=1; j<= nlstate; j++){ /* Sum of wi * eij = e.j */ |
for(h=0; h<=nhstepm; h++){ |
for(h=0; h<=nhstepm; h++){ |
Line 5415 void cvevsij(double ***eij, double x[],
|
Line 5514 void cvevsij(double ***eij, double x[],
|
/* end ppptj */ |
/* end ppptj */ |
/* x centered again */ |
/* x centered again */ |
|
|
prevalim(prlim,nlstate,x,age,oldm,savm,ftolpl,ncvyearp,ij); |
prevalim(prlim,nlstate,x,age,oldm,savm,ftolpl,ncvyearp,ij, nresult); |
|
|
if (popbased==1) { |
if (popbased==1) { |
if(mobilav ==0){ |
if(mobilav ==0){ |
Line 5431 void cvevsij(double ***eij, double x[],
|
Line 5530 void cvevsij(double ***eij, double x[],
|
computed over hstepm (estepm) matrices product = hstepm*stepm months) |
computed over hstepm (estepm) matrices product = hstepm*stepm months) |
as a weighted average of prlim. |
as a weighted average of prlim. |
*/ |
*/ |
hpxij(p3mat,nhstepm,age,hstepm,x,nlstate,stepm,oldm,savm, ij); |
hpxij(p3mat,nhstepm,age,hstepm,x,nlstate,stepm,oldm,savm, ij, nres); |
for(j=nlstate+1;j<=nlstate+ndeath;j++){ |
for(j=nlstate+1;j<=nlstate+ndeath;j++){ |
for(i=1,gmp[j]=0.;i<= nlstate; i++) |
for(i=1,gmp[j]=0.;i<= nlstate; i++) |
gmp[j] += prlim[i][i]*p3mat[i][j][1]; |
gmp[j] += prlim[i][i]*p3mat[i][j][1]; |
Line 5494 void cvevsij(double ***eij, double x[],
|
Line 5593 void cvevsij(double ***eij, double x[],
|
} /* end varevsij */ |
} /* end varevsij */ |
|
|
/************ Variance of prevlim ******************/ |
/************ Variance of prevlim ******************/ |
void varprevlim(char fileres[], double **varpl, double **matcov, double x[], double delti[], int nlstate, int stepm, double bage, double fage, double **oldm, double **savm, double **prlim, double ftolpl, int *ncvyearp, int ij, char strstart[]) |
void varprevlim(char fileres[], double **varpl, double **matcov, double x[], double delti[], int nlstate, int stepm, double bage, double fage, double **oldm, double **savm, double **prlim, double ftolpl, int *ncvyearp, int ij, char strstart[], int nres) |
{ |
{ |
/* Variance of prevalence limit for each state ij using current parameters x[] and estimates of neighbourhood give by delti*/ |
/* Variance of prevalence limit for each state ij using current parameters x[] and estimates of neighbourhood give by delti*/ |
/* double **prevalim(double **prlim, int nlstate, double *xp, double age, double **oldm, double **savm,double ftolpl);*/ |
/* double **prevalim(double **prlim, int nlstate, double *xp, double age, double **oldm, double **savm,double ftolpl);*/ |
Line 5537 void cvevsij(double ***eij, double x[],
|
Line 5636 void cvevsij(double ***eij, double x[],
|
xp[i] = x[i] + (i==theta ?delti[theta]:0); |
xp[i] = x[i] + (i==theta ?delti[theta]:0); |
} |
} |
if((int)age==79 ||(int)age== 80 ||(int)age== 81 ) |
if((int)age==79 ||(int)age== 80 ||(int)age== 81 ) |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij); |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij,nres); |
else |
else |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij); |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij,nres); |
for(i=1;i<=nlstate;i++){ |
for(i=1;i<=nlstate;i++){ |
gp[i] = prlim[i][i]; |
gp[i] = prlim[i][i]; |
mgp[theta][i] = prlim[i][i]; |
mgp[theta][i] = prlim[i][i]; |
Line 5547 void cvevsij(double ***eij, double x[],
|
Line 5646 void cvevsij(double ***eij, double x[],
|
for(i=1; i<=npar; i++) /* Computes gradient */ |
for(i=1; i<=npar; i++) /* Computes gradient */ |
xp[i] = x[i] - (i==theta ?delti[theta]:0); |
xp[i] = x[i] - (i==theta ?delti[theta]:0); |
if((int)age==79 ||(int)age== 80 ||(int)age== 81 ) |
if((int)age==79 ||(int)age== 80 ||(int)age== 81 ) |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij); |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij,nres); |
else |
else |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij); |
prevalim(prlim,nlstate,xp,age,oldm,savm,ftolpl,ncvyearp,ij,nres); |
for(i=1;i<=nlstate;i++){ |
for(i=1;i<=nlstate;i++){ |
gm[i] = prlim[i][i]; |
gm[i] = prlim[i][i]; |
mgm[theta][i] = prlim[i][i]; |
mgm[theta][i] = prlim[i][i]; |
Line 5957 void printinghtml(char fileresu[], char
|
Line 6056 void printinghtml(char fileresu[], char
|
int popforecast, int prevfcast, int backcast, int estepm , \ |
int popforecast, int prevfcast, int backcast, int estepm , \ |
double jprev1, double mprev1,double anprev1, double dateprev1, \ |
double jprev1, double mprev1,double anprev1, double dateprev1, \ |
double jprev2, double mprev2,double anprev2, double dateprev2){ |
double jprev2, double mprev2,double anprev2, double dateprev2){ |
int jj1, k1, i1, cpt; |
int jj1, k1, i1, cpt, k4, nres; |
|
|
fprintf(fichtm,"<ul><li><a href='#firstorder'>Result files (first order: no variance)</a>\n \ |
fprintf(fichtm,"<ul><li><a href='#firstorder'>Result files (first order: no variance)</a>\n \ |
<li><a href='#secondorder'>Result files (second order (variance)</a>\n \ |
<li><a href='#secondorder'>Result files (second order (variance)</a>\n \ |
</ul>"); |
</ul>"); |
|
fprintf(fichtm,"<ul><li> model=1+age+%s\n \ |
|
</ul>", model); |
fprintf(fichtm,"<ul><li><h4><a name='firstorder'>Result files (first order: no variance)</a></h4>\n"); |
fprintf(fichtm,"<ul><li><h4><a name='firstorder'>Result files (first order: no variance)</a></h4>\n"); |
fprintf(fichtm,"<li>- Observed frequency between two states (during the period defined between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf): <a href=\"%s\">%s</a> (html file)<br/>\n", |
fprintf(fichtm,"<li>- Observed frequency between two states (during the period defined between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf): <a href=\"%s\">%s</a> (html file)<br/>\n", |
jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,subdirfext3(optionfilefiname,"PHTMFR_",".htm"),subdirfext3(optionfilefiname,"PHTMFR_",".htm")); |
jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,subdirfext3(optionfilefiname,"PHTMFR_",".htm"),subdirfext3(optionfilefiname,"PHTMFR_",".htm")); |
Line 5996 void printinghtml(char fileresu[], char
|
Line 6097 void printinghtml(char fileresu[], char
|
if (cptcovn < 1) {m=1;ncodemax[1]=1;} |
if (cptcovn < 1) {m=1;ncodemax[1]=1;} |
|
|
jj1=0; |
jj1=0; |
|
|
|
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(k1=1; k1<=m;k1++){ |
for(k1=1; k1<=m;k1++){ |
|
if(TKresult[nres]!= k1) |
|
continue; |
|
|
/* 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 ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
printf(" V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]);fflush(stdout); |
printf(" V%d=%d ",Tvresult[nres][cpt],Tresult[nres][cpt]);fflush(stdout); |
|
/* 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); */ |
} |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);fflush(stdout); |
|
} |
|
|
/* if(nqfveff+nqtveff 0) */ /* Test to be done */ |
/* if(nqfveff+nqtveff 0) */ /* Test to be done */ |
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
Line 6117 See page 'Matrix of variance-covariance
|
Line 6229 See page 'Matrix of variance-covariance
|
if (cptcovn < 1) {m=1;ncodemax[1]=1;} |
if (cptcovn < 1) {m=1;ncodemax[1]=1;} |
|
|
jj1=0; |
jj1=0; |
|
|
|
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(k1=1; k1<=m;k1++){ |
for(k1=1; k1<=m;k1++){ |
|
if(TKresult[nres]!= k1) |
|
continue; |
/* 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++) /**< cptcoveff number of variables */ |
for (cpt=1; cpt<=cptcoveff;cpt++) /**< cptcoveff number of variables */ |
fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); |
fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],Tresult[nres][cpt]); |
|
/* fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); */ |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
|
|
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">"); |
|
|
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
Line 6153 void printinggnuplot(char fileresu[], ch
|
Line 6274 void printinggnuplot(char fileresu[], ch
|
|
|
char dirfileres[132],optfileres[132]; |
char dirfileres[132],optfileres[132]; |
char gplotcondition[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,k4=0,ij=0, ijp=0, l=0; |
int lv=0, vlv=0, kl=0; |
int lv=0, vlv=0, kl=0; |
int ng=0; |
int ng=0; |
int vpopbased; |
int vpopbased; |
int ioffset; /* variable offset for columns */ |
int ioffset; /* variable offset for columns */ |
|
int nres=0; /* Index of resultline */ |
|
|
/* if((ficgp=fopen(optionfilegnuplot,"a"))==NULL) { */ |
/* if((ficgp=fopen(optionfilegnuplot,"a"))==NULL) { */ |
/* printf("Problem with file %s",optionfilegnuplot); */ |
/* printf("Problem with file %s",optionfilegnuplot); */ |
Line 6201 void printinggnuplot(char fileresu[], ch
|
Line 6323 void printinggnuplot(char fileresu[], ch
|
strcpy(dirfileres,optionfilefiname); |
strcpy(dirfileres,optionfilefiname); |
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 && selected(k1) ; k1 ++) { /* For each valid combination of covariate */ |
for (k1=1; k1<= m ; k1 ++){ /* For each valid combination of covariate */ |
/* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'VPL_' files "); |
/* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ |
for (k=1; k<=cptcoveff; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
if(TKresult[nres]!= k1) |
lv= decodtabm(k1,k,cptcoveff); /* Should be the value of the covariate corresponding to k1 combination */ |
continue; |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* We are interested in selected combination by the resultline */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
printf("\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); |
vlv= nbcode[Tvaraff[k]][lv]; /* vlv is the value of the covariate lv, 0 or 1 */ |
for (k=1; k<=cptcoveff; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
/* For each combination of covariate k1 (V1=1, V3=0), we printed the current covariate k and its value vlv */ |
lv= decodtabm(k1,k,cptcoveff); /* Should be the value of the covariate corresponding to k1 combination */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* 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 */ |
fprintf(ficgp,"\n#\n"); |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
if(invalidvarcomb[k1]){ |
vlv= nbcode[Tvaraff[k]][lv]; /* vlv is the value of the covariate lv, 0 or 1 */ |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
/* For each combination of covariate k1 (V1=1, V3=0), we printed the current covariate k and its value vlv */ |
continue; |
printf(" V%d=%d ",Tvaraff[k],vlv); |
} |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
|
} |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"V_"),cpt,k1); |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
fprintf(ficgp,"\n#set out \"V_%s_%d-%d.svg\" \n",optionfilefiname,cpt,k1); |
printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
fprintf(ficgp,"set xlabel \"Age\" \n\ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
set ylabel \"Probability\" \n \ |
} |
set ter svg size 640, 480\n \ |
printf("\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,"\n#set out \"V_%s_%d-%d.svg\" \n",optionfilefiname,cpt,k1); |
|
fprintf(ficgp,"set xlabel \"Age\" \n\ |
|
set ylabel \"Probability\" \n \ |
|
set ter svg size 640, 480\n \ |
plot [%.f:%.f] \"%s\" every :::%d::%d u 1:2 \"%%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),k1-1,k1-1); |
plot [%.f:%.f] \"%s\" every :::%d::%d u 1:2 \"%%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),k1-1,k1-1); |
|
|
for (i=1; i<= nlstate ; i ++) { |
for (i=1; i<= nlstate ; i ++) { |
if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
else fprintf(ficgp," %%*lf (%%*lf)"); |
else fprintf(ficgp," %%*lf (%%*lf)"); |
} |
} |
fprintf(ficgp,"\" t\"Period (stable) prevalence\" w l lt 0,\"%s\" every :::%d::%d u 1:($2+1.96*$3) \"%%lf",subdirf2(fileresu,"VPL_"),k1-1,k1-1); |
fprintf(ficgp,"\" t\"Period (stable) prevalence\" w l lt 0,\"%s\" every :::%d::%d u 1:($2+1.96*$3) \"%%lf",subdirf2(fileresu,"VPL_"),k1-1,k1-1); |
for (i=1; i<= nlstate ; i ++) { |
for (i=1; i<= nlstate ; i ++) { |
if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
else fprintf(ficgp," %%*lf (%%*lf)"); |
else fprintf(ficgp," %%*lf (%%*lf)"); |
} |
} |
fprintf(ficgp,"\" t\"95%% CI\" w l lt 1,\"%s\" every :::%d::%d u 1:($2-1.96*$3) \"%%lf",subdirf2(fileresu,"VPL_"),k1-1,k1-1); |
fprintf(ficgp,"\" t\"95%% CI\" w l lt 1,\"%s\" every :::%d::%d u 1:($2-1.96*$3) \"%%lf",subdirf2(fileresu,"VPL_"),k1-1,k1-1); |
for (i=1; i<= nlstate ; i ++) { |
for (i=1; i<= nlstate ; i ++) { |
if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
if (i==cpt) fprintf(ficgp," %%lf (%%lf)"); |
else fprintf(ficgp," %%*lf (%%*lf)"); |
else fprintf(ficgp," %%*lf (%%*lf)"); |
} |
} |
fprintf(ficgp,"\" t\"\" w l lt 1,\"%s\" every :::%d::%d u 1:($%d) t\"Observed prevalence\" w l lt 2",subdirf2(fileresu,"P_"),k1-1,k1-1,2+4*(cpt-1)); |
fprintf(ficgp,"\" t\"\" w l lt 1,\"%s\" every :::%d::%d u 1:($%d) t\"Observed prevalence\" w l lt 2",subdirf2(fileresu,"P_"),k1-1,k1-1,2+4*(cpt-1)); |
if(backcast==1){ /* We need to get the corresponding values of the covariates involved in this combination k1 */ |
if(backcast==1){ /* We need to get the corresponding values of the covariates involved in this combination k1 */ |
/* fprintf(ficgp,",\"%s\" every :::%d::%d u 1:($%d) t\"Backward stable prevalence\" w l lt 3",subdirf2(fileresu,"PLB_"),k1-1,k1-1,1+cpt); */ |
/* fprintf(ficgp,",\"%s\" every :::%d::%d u 1:($%d) t\"Backward stable prevalence\" w l lt 3",subdirf2(fileresu,"PLB_"),k1-1,k1-1,1+cpt); */ |
fprintf(ficgp,",\"%s\" u 1:((",subdirf2(fileresu,"PLB_")); /* Age is in 1 */ |
fprintf(ficgp,",\"%s\" u 1:((",subdirf2(fileresu,"PLB_")); /* Age is in 1 */ |
if(cptcoveff ==0){ |
if(cptcoveff ==0){ |
fprintf(ficgp,"$%d)) t 'Backward prevalence in state %d' with line ", 2+(cpt-1), cpt ); |
fprintf(ficgp,"$%d)) t 'Backward prevalence in state %d' with line ", 2+(cpt-1), cpt ); |
}else{ |
}else{ |
kl=0; |
kl=0; |
for (k=1; k<=cptcoveff; k++){ /* For each combination of covariate */ |
for (k=1; k<=cptcoveff; k++){ /* For each combination of covariate */ |
lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate value corresponding to k1 combination and kth covariate */ |
lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate value corresponding to k1 combination and kth covariate */ |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* decodtabm(1,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]; |
kl++; |
|
/* kl=6+(cpt-1)*(nlstate+1)+1+(i-1); /\* 6+(1-1)*(2+1)+1+(1-1)=7, 6+(2-1)(2+1)+1+(1-1)=10 *\/ */ |
|
/*6+(cpt-1)*(nlstate+1)+1+(i-1)+(nlstate+1)*nlstate; 6+(1-1)*(2+1)+1+(1-1) +(2+1)*2=13 */ |
|
/*6+1+(i-1)+(nlstate+1)*nlstate; 6+1+(1-1) +(2+1)*2=13 */ |
|
/* '' u 6:(($1==1 && $2==0 && $3==2 && $4==0)? $9/(1.-$15) : 1/0):($5==2000? 3:2) t 'p.1' with line lc variable*/ |
|
if(k==cptcoveff){ |
|
fprintf(ficgp,"$%d==%d && $%d==%d)? $%d : 1/0) t 'Backward prevalence in state %d' ",kl+1, Tvaraff[k],kl+1+1,nbcode[Tvaraff[k]][lv], \ |
|
4+(cpt-1), cpt ); /* 4 or 6 ?*/ |
|
}else{ |
|
fprintf(ficgp,"$%d==%d && $%d==%d && ",kl+1, Tvaraff[k],kl+1+1,nbcode[Tvaraff[k]][lv]); |
|
kl++; |
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 *\/ */ |
} /* end covariate */ |
/*6+(cpt-1)*(nlstate+1)+1+(i-1)+(nlstate+1)*nlstate; 6+(1-1)*(2+1)+1+(1-1) +(2+1)*2=13 */ |
} /* end if no covariate */ |
/*6+1+(i-1)+(nlstate+1)*nlstate; 6+1+(1-1) +(2+1)*2=13 */ |
} /* end if backcast */ |
/* '' 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,"\nset out \n"); |
if(k==cptcoveff){ |
|
fprintf(ficgp,"$%d==%d && $%d==%d)? $%d : 1/0) t 'Backward prevalence in state %d' ",kl+1, Tvaraff[k],kl+1+1,nbcode[Tvaraff[k]][lv], \ |
|
4+(cpt-1), cpt ); /* 4 or 6 ?*/ |
|
}else{ |
|
fprintf(ficgp,"$%d==%d && $%d==%d && ",kl+1, Tvaraff[k],kl+1+1,nbcode[Tvaraff[k]][lv]); |
|
kl++; |
|
} |
|
} /* end covariate */ |
|
} /* end if no covariate */ |
|
} /* end if backcast */ |
|
fprintf(ficgp,"\nset out \n"); |
|
} /* nres */ |
} /* k1 */ |
} /* k1 */ |
} /* cpt */ |
} /* cpt */ |
/*2 eme*/ |
|
for (k1=1; k1<= m ; k1 ++) { |
|
|
|
fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files "); |
|
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 */ |
|
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
|
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
|
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
|
vlv= nbcode[Tvaraff[k]][lv]; |
|
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
|
} |
|
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); |
|
for(vpopbased=0; vpopbased <= popbased; vpopbased++){ /* Done for vpopbased=0 and vpopbased=1 if popbased==1*/ |
|
if(vpopbased==0) |
|
fprintf(ficgp,"set ylabel \"Years\" \nset ter svg size 640, 480\nplot [%.f:%.f] ",ageminpar,fage); |
|
else |
|
fprintf(ficgp,"\nreplot "); |
|
for (i=1; i<= nlstate+1 ; i ++) { |
|
k=2*i; |
|
fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ?$4 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1, vpopbased); |
|
for (j=1; j<= nlstate+1 ; j ++) { |
|
if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
|
else fprintf(ficgp," %%*lf (%%*lf)"); |
|
} |
|
if (i== 1) fprintf(ficgp,"\" t\"TLE\" w l lt %d, \\\n",i); |
|
else fprintf(ficgp,"\" t\"LE in state (%d)\" w l lt %d, \\\n",i-1,i+1); |
|
fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ? $4-$5*2 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1,vpopbased); |
|
for (j=1; j<= nlstate+1 ; j ++) { |
|
if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
|
else fprintf(ficgp," %%*lf (%%*lf)"); |
|
} |
|
fprintf(ficgp,"\" t\"\" w l lt 0,"); |
|
fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ? $4+$5*2 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1,vpopbased); |
|
for (j=1; j<= nlstate+1 ; j ++) { |
|
if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
|
else fprintf(ficgp," %%*lf (%%*lf)"); |
|
} |
|
if (i== (nlstate+1)) fprintf(ficgp,"\" t\"\" w l lt 0"); |
|
else fprintf(ficgp,"\" t\"\" w l lt 0,\\\n"); |
|
} /* state */ |
|
} /* vpopbased */ |
|
fprintf(ficgp,"\nset out;set out \"%s_%d.svg\"; replot; set out; \n",subdirf2(optionfilefiname,"E_"),k1); /* Buggy gnuplot */ |
|
} /* k1 */ |
|
|
|
|
|
/*3eme*/ |
|
for (k1=1; k1<= m ; k1 ++) { |
|
|
|
for (cpt=1; cpt<= nlstate ; cpt ++) { |
|
fprintf(ficgp,"\n# 3d: Life expectancy with EXP_ files: cov=%d state=%d",k1, cpt); |
/*2 eme*/ |
|
for (k1=1; k1<= m ; k1 ++){ |
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
|
if(TKresult[nres]!= k1) |
|
continue; |
|
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 */ |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
Line 6338 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
Line 6423 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
vlv= nbcode[Tvaraff[k]][lv]; |
vlv= nbcode[Tvaraff[k]][lv]; |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
|
/* for(k=1; k <= ncovds; k++){ */ |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
continue; |
continue; |
} |
} |
|
|
/* k=2+nlstate*(2*cpt-2); */ |
fprintf(ficgp,"\nset out \"%s_%d.svg\" \n",subdirf2(optionfilefiname,"E_"),k1); |
k=2+(nlstate+1)*(cpt-1); |
for(vpopbased=0; vpopbased <= popbased; vpopbased++){ /* Done for vpopbased=0 and vpopbased=1 if popbased==1*/ |
fprintf(ficgp,"\nset out \"%s_%d%d.svg\" \n",subdirf2(optionfilefiname,"EXP_"),cpt,k1); |
if(vpopbased==0) |
fprintf(ficgp,"set ter svg size 640, 480\n\ |
fprintf(ficgp,"set ylabel \"Years\" \nset ter svg size 640, 480\nplot [%.f:%.f] ",ageminpar,fage); |
|
else |
|
fprintf(ficgp,"\nreplot "); |
|
for (i=1; i<= nlstate+1 ; i ++) { |
|
k=2*i; |
|
fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ?$4 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1, vpopbased); |
|
for (j=1; j<= nlstate+1 ; j ++) { |
|
if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
|
else fprintf(ficgp," %%*lf (%%*lf)"); |
|
} |
|
if (i== 1) fprintf(ficgp,"\" t\"TLE\" w l lt %d, \\\n",i); |
|
else fprintf(ficgp,"\" t\"LE in state (%d)\" w l lt %d, \\\n",i-1,i+1); |
|
fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ? $4-$5*2 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1,vpopbased); |
|
for (j=1; j<= nlstate+1 ; j ++) { |
|
if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
|
else fprintf(ficgp," %%*lf (%%*lf)"); |
|
} |
|
fprintf(ficgp,"\" t\"\" w l lt 0,"); |
|
fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2==%d && $4!=0 ? $4+$5*2 : 1/0) \"%%lf %%lf %%lf",subdirf2(fileresu,"T_"),k1-1,k1-1,vpopbased); |
|
for (j=1; j<= nlstate+1 ; j ++) { |
|
if (j==i) fprintf(ficgp," %%lf (%%lf)"); |
|
else fprintf(ficgp," %%*lf (%%*lf)"); |
|
} |
|
if (i== (nlstate+1)) fprintf(ficgp,"\" t\"\" w l lt 0"); |
|
else fprintf(ficgp,"\" t\"\" w l lt 0,\\\n"); |
|
} /* state */ |
|
} /* vpopbased */ |
|
fprintf(ficgp,"\nset out;set out \"%s_%d.svg\"; replot; set out; \n",subdirf2(optionfilefiname,"E_"),k1); /* Buggy gnuplot */ |
|
} /* end nres */ |
|
} /* k1 end 2 eme*/ |
|
|
|
|
|
/*3eme*/ |
|
for (k1=1; k1<= m ; k1 ++){ |
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
|
if(TKresult[nres]!= k) |
|
continue; |
|
|
|
for (cpt=1; cpt<= nlstate ; cpt ++) { |
|
fprintf(ficgp,"\n# 3d: Life expectancy with EXP_ files: combination=%d state=%d",k1, cpt); |
|
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 */ |
|
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
|
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
|
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
|
vlv= nbcode[Tvaraff[k]][lv]; |
|
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
|
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
|
fprintf(ficgp,"\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+1)*(cpt-1); |
|
fprintf(ficgp,"\nset out \"%s_%d%d.svg\" \n",subdirf2(optionfilefiname,"EXP_"),cpt,k1); |
|
fprintf(ficgp,"set ter svg size 640, 480\n\ |
plot [%.f:%.f] \"%s\" every :::%d::%d u 1:%d t \"e%d1\" w l",ageminpar,fage,subdirf2(fileresu,"E_"),k1-1,k1-1,k,cpt); |
plot [%.f:%.f] \"%s\" every :::%d::%d u 1:%d t \"e%d1\" w l",ageminpar,fage,subdirf2(fileresu,"E_"),k1-1,k1-1,k,cpt); |
/*fprintf(ficgp,",\"e%s\" every :::%d::%d u 1:($%d-2*$%d) \"\%%lf ",fileres,k1-1,k1-1,k,k+1); |
/*fprintf(ficgp,",\"e%s\" every :::%d::%d u 1:($%d-2*$%d) \"\%%lf ",fileres,k1-1,k1-1,k,k+1); |
for (i=1; i<= nlstate*2 ; i ++) fprintf(ficgp,"\%%lf (\%%lf) "); |
for (i=1; i<= nlstate*2 ; i ++) fprintf(ficgp,"\%%lf (\%%lf) "); |
fprintf(ficgp,"\" t \"e%d1\" w l",cpt); |
fprintf(ficgp,"\" t \"e%d1\" w l",cpt); |
fprintf(ficgp,",\"e%s\" every :::%d::%d u 1:($%d+2*$%d) \"\%%lf ",fileres,k1-1,k1-1,k,k+1); |
fprintf(ficgp,",\"e%s\" every :::%d::%d u 1:($%d+2*$%d) \"\%%lf ",fileres,k1-1,k1-1,k,k+1); |
for (i=1; i<= nlstate*2 ; i ++) fprintf(ficgp,"\%%lf (\%%lf) "); |
for (i=1; i<= nlstate*2 ; i ++) fprintf(ficgp,"\%%lf (\%%lf) "); |
fprintf(ficgp,"\" t \"e%d1\" w l",cpt); |
fprintf(ficgp,"\" t \"e%d1\" w l",cpt); |
|
|
*/ |
*/ |
for (i=1; i< nlstate ; i ++) { |
for (i=1; i< nlstate ; i ++) { |
fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d%d\" w l",subdirf2(fileresu,"E_"),k1-1,k1-1,k+i,cpt,i+1); |
fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d%d\" w l",subdirf2(fileresu,"E_"),k1-1,k1-1,k+i,cpt,i+1); |
/* fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d%d\" w l",subdirf2(fileres,"e"),k1-1,k1-1,k+2*i,cpt,i+1);*/ |
/* fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d%d\" w l",subdirf2(fileres,"e"),k1-1,k1-1,k+2*i,cpt,i+1);*/ |
|
|
} |
} |
fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d.\" w l",subdirf2(fileresu,"E_"),k1-1,k1-1,k+nlstate,cpt); |
fprintf(ficgp," ,\"%s\" every :::%d::%d u 1:%d t \"e%d.\" w l",subdirf2(fileresu,"E_"),k1-1,k1-1,k+nlstate,cpt); |
} |
} |
} |
} /* end nres */ |
|
} /* end kl 3eme */ |
|
|
/* 4eme */ |
/* 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 covariate and each value */ |
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
if(TKresult[nres]!= k1) |
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 */ |
|
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,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
|
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
|
vlv= nbcode[Tvaraff[k]][lv]; |
|
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
|
} |
|
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
continue; |
} |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state cpt*/ |
|
fprintf(ficgp,"\n#\n#\n# Survival functions in state j : 'LIJ_' files, cov=%d state=%d",k1, cpt); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"LIJ_"),cpt,k1); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability to be alive\" \n\ |
lv= decodtabm(k1,k,cptcoveff); /* Should be the covariate number corresponding to k1 combination */ |
set ter svg size 640, 480\n \ |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
unset log y\n \ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
k=3; |
vlv= nbcode[Tvaraff[k]][lv]; |
for (i=1; i<= nlstate ; i ++){ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
if(i==1){ |
|
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
|
}else{ |
|
fprintf(ficgp,", '' "); |
|
} |
} |
l=(nlstate+ndeath)*(i-1)+1; |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l); |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
for (j=2; j<= nlstate+ndeath ; j ++) |
} |
fprintf(ficgp,"+$%d",k+l+j-1); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,")) t \"l(%d,%d)\" w l",i,cpt); |
if(invalidvarcomb[k1]){ |
} /* nlstate */ |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
fprintf(ficgp,"\nset out\n"); |
continue; |
} /* end cpt state*/ |
} |
} /* end covariate */ |
|
|
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\ |
|
set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
|
k=3; |
|
for (i=1; i<= nlstate ; i ++){ |
|
if(i==1){ |
|
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
|
}else{ |
|
fprintf(ficgp,", '' "); |
|
} |
|
l=(nlstate+ndeath)*(i-1)+1; |
|
fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l); |
|
for (j=2; j<= nlstate+ndeath ; j ++) |
|
fprintf(ficgp,"+$%d",k+l+j-1); |
|
fprintf(ficgp,")) t \"l(%d,%d)\" w l",i,cpt); |
|
} /* nlstate */ |
|
fprintf(ficgp,"\nset out\n"); |
|
} /* end cpt state*/ |
|
} /* end nres */ |
|
} /* end covariate k1 */ |
|
|
/* 5eme */ |
/* 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 combination if any */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each inital state */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
|
if(TKresult[nres]!= k1) |
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 */ |
|
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,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
|
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
|
vlv= nbcode[Tvaraff[k]][lv]; |
|
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
|
} |
|
fprintf(ficgp,"\n#\n"); |
|
if(invalidvarcomb[k1]){ |
|
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
|
continue; |
continue; |
} |
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); |
|
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 */ |
|
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
|
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
|
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
|
vlv= nbcode[Tvaraff[k]][lv]; |
|
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
|
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
|
fprintf(ficgp,"\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\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
unset log y\n \ |
k=3; |
plot [%.f:%.f] ", ageminpar, agemaxpar); |
for (j=1; j<= nlstate ; j ++){ /* Lived in state j */ |
k=3; |
if(j==1) |
for (j=1; j<= nlstate ; j ++){ /* Lived in state j */ |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
if(j==1) |
else |
fprintf(ficgp,"\"%s\"",subdirf2(fileresu,"PIJ_")); |
fprintf(ficgp,", '' "); |
else |
l=(nlstate+ndeath)*(cpt-1) +j; |
fprintf(ficgp,", '' "); |
fprintf(ficgp," u (($1==%d && (floor($2)%%5 == 0)) ? ($3):1/0):($%d",k1,k+l); |
l=(nlstate+ndeath)*(cpt-1) +j; |
/* for (i=2; i<= nlstate+ndeath ; i ++) */ |
fprintf(ficgp," u (($1==%d && (floor($2)%%5 == 0)) ? ($3):1/0):($%d",k1,k+l); |
/* fprintf(ficgp,"+$%d",k+l+i-1); */ |
/* for (i=2; i<= nlstate+ndeath ; i ++) */ |
fprintf(ficgp,") t \"l(%d,%d)\" w l",cpt,j); |
/* fprintf(ficgp,"+$%d",k+l+i-1); */ |
} /* nlstate */ |
fprintf(ficgp,") t \"l(%d,%d)\" w l",cpt,j); |
fprintf(ficgp,", '' "); |
} /* nlstate */ |
fprintf(ficgp," u (($1==%d && (floor($2)%%5 == 0)) ? ($3):1/0):(",k1); |
fprintf(ficgp,", '' "); |
for (j=1; j<= nlstate ; j ++){ /* Lived in state j */ |
fprintf(ficgp," u (($1==%d && (floor($2)%%5 == 0)) ? ($3):1/0):(",k1); |
l=(nlstate+ndeath)*(cpt-1) +j; |
for (j=1; j<= nlstate ; j ++){ /* Lived in state j */ |
if(j < nlstate) |
l=(nlstate+ndeath)*(cpt-1) +j; |
fprintf(ficgp,"$%d +",k+l); |
if(j < nlstate) |
else |
fprintf(ficgp,"$%d +",k+l); |
fprintf(ficgp,"$%d) t\"l(%d,.)\" w l",k+l,cpt); |
else |
} |
fprintf(ficgp,"$%d) t\"l(%d,.)\" w l",k+l,cpt); |
fprintf(ficgp,"\nset out\n"); |
} |
} /* end cpt state*/ |
fprintf(ficgp,"\nset out\n"); |
} /* end covariate */ |
} /* end cpt state*/ |
} /* end nres */ |
} /* end covariate */ |
|
|
|
/* 6eme */ |
/* 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 if any */ |
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
|
if(TKresult[nres]!= k1) |
|
continue; |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
|
|
fprintf(ficgp,"\n#\n#\n#CV 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); |
Line 6472 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6634 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
vlv= nbcode[Tvaraff[k]][lv]; |
vlv= nbcode[Tvaraff[k]][lv]; |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
Line 6480 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6645 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
|
|
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\ |
set ter svg size 640, 480\n \ |
set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
unset log y\n \ |
|
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) |
Line 6503 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6666 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
/* 7eme */ |
/* 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 if any */ |
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
|
if(TKresult[nres]!= k1) |
|
continue; |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
fprintf(ficgp,"\n#\n#\n#CV Back preval stable (period): 'pij' files, covariatecombination#=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n#\n#\n#CV Back preval stable (period): 'pij' files, covariatecombination#=%d state=%d",k1, cpt); |
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 6514 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6680 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
vlv= nbcode[Tvaraff[k]][lv]; |
vlv= nbcode[Tvaraff[k]][lv]; |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
Line 6522 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6691 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
|
|
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"PB_"),cpt,k1); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" \n",subdirf2(optionfilefiname,"PB_"),cpt,k1); |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ |
set ter svg size 640, 480\n \ |
set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
unset log y\n \ |
|
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) |
Line 6550 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6717 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
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 */ |
|
|
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 if any */ |
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
|
if(TKresult[nres]!= k1) |
|
continue; |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
fprintf(ficgp,"\n#\n#\n#Projection of prevalence to stable (period): 'PROJ_' files, covariatecombination#=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n#\n#\n#Projection of prevalence to stable (period): 'PROJ_' files, covariatecombination#=%d state=%d",k1, cpt); |
for (k=1; k<=cptcoveff; k++){ /* For each correspondig covariate value */ |
for (k=1; k<=cptcoveff; k++){ /* For each correspondig covariate value */ |
Line 6561 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6731 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
vlv= nbcode[Tvaraff[k]][lv]; |
vlv= nbcode[Tvaraff[k]][lv]; |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
} |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
fprintf(ficgp,"#Combination (%d) ignored because no cases \n",k1); |
Line 6570 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6743 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
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); |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Prevalence\" \n\ |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Prevalence\" \n\ |
set ter svg size 640, 480\n \ |
set ter svg size 640, 480\nunset log y\nplot [%.f:%.f] ", ageminpar, agemaxpar); |
unset log y\n \ |
|
plot [%.f:%.f] ", ageminpar, agemaxpar); |
|
for (i=1; i<= nlstate+1 ; i ++){ /* nlstate +1 p11 p21 p.1 */ |
for (i=1; i<= nlstate+1 ; i ++){ /* nlstate +1 p11 p21 p.1 */ |
/*# 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 */ |
Line 6639 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6810 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
} /* End if prevfcast */ |
} /* End if prevfcast */ |
|
|
|
|
/* proba elementaires */ |
/* 9eme writing MLE parameters */ |
fprintf(ficgp,"\n##############\n#MLE estimated parameters\n#############\n"); |
fprintf(ficgp,"\n##############\n#9eme MLE estimated parameters\n#############\n"); |
for(i=1,jk=1; i <=nlstate; i++){ |
for(i=1,jk=1; i <=nlstate; i++){ |
fprintf(ficgp,"# initial state %d\n",i); |
fprintf(ficgp,"# initial state %d\n",i); |
for(k=1; k <=(nlstate+ndeath); k++){ |
for(k=1; k <=(nlstate+ndeath); k++){ |
Line 6657 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6828 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
fprintf(ficgp,"##############\n#\n"); |
fprintf(ficgp,"##############\n#\n"); |
|
|
/*goto avoid;*/ |
/*goto avoid;*/ |
fprintf(ficgp,"\n##############\n#Graphics of probabilities or incidences\n#############\n"); |
/* 10eme Graphics of probabilities or incidences using written MLE parameters */ |
|
fprintf(ficgp,"\n##############\n#10eme Graphics of probabilities or incidences\n#############\n"); |
fprintf(ficgp,"# logi(p12/p11)=a12+b12*age+c12age*age+d12*V1+e12*V1*age\n"); |
fprintf(ficgp,"# logi(p12/p11)=a12+b12*age+c12age*age+d12*V1+e12*V1*age\n"); |
fprintf(ficgp,"# logi(p12/p11)=p1 +p2*age +p3*age*age+ p4*V1+ p5*V1*age\n"); |
fprintf(ficgp,"# logi(p12/p11)=p1 +p2*age +p3*age*age+ p4*V1+ p5*V1*age\n"); |
fprintf(ficgp,"# logi(p13/p11)=a13+b13*age+c13age*age+d13*V1+e13*V1*age\n"); |
fprintf(ficgp,"# logi(p13/p11)=a13+b13*age+c13age*age+d13*V1+e13*V1*age\n"); |
Line 6672 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6844 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
fprintf(ficgp,"# +exp(a14+b14*age+c14age*age+d14*V1+e14*V1*age)+...)\n"); |
fprintf(ficgp,"# +exp(a14+b14*age+c14age*age+d14*V1+e14*V1*age)+...)\n"); |
fprintf(ficgp,"#\n"); |
fprintf(ficgp,"#\n"); |
for(ng=1; ng<=3;ng++){ /* Number of graphics: first is logit, 2nd is probabilities, third is incidences per year*/ |
for(ng=1; ng<=3;ng++){ /* Number of graphics: first is logit, 2nd is probabilities, third is incidences per year*/ |
fprintf(ficgp,"# ng=%d\n",ng); |
fprintf(ficgp,"#Number of graphics: first is logit, 2nd is probabilities, third is incidences per year\n"); |
fprintf(ficgp,"# jk=1 to 2^%d=%d\n",cptcoveff,m); |
fprintf(ficgp,"#model=%s \n",model); |
for(jk=1; jk <=m; jk++) { |
fprintf(ficgp,"# Type of graphic ng=%d\n",ng); |
fprintf(ficgp,"# jk=%d\n",jk); |
fprintf(ficgp,"# jk=1 to 2^%d=%d\n",cptcoveff,m);/* to be checked */ |
|
for(jk=1; jk <=m; jk++) /* For each combination of covariate */ |
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
|
if(TKresult[nres]!= jk) |
|
continue; |
|
fprintf(ficgp,"# Combination of dummy jk=%d and ",jk); |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
|
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" ",subdirf2(optionfilefiname,"PE_"),jk,ng); |
fprintf(ficgp,"\nset out \"%s_%d-%d.svg\" ",subdirf2(optionfilefiname,"PE_"),jk,ng); |
fprintf(ficgp,"\nset ter svg size 640, 480 "); |
fprintf(ficgp,"\nset ter svg size 640, 480 "); |
if (ng==1){ |
if (ng==1){ |
Line 6716 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6897 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
break; |
break; |
} |
} |
ij=1;/* To be checked else nbcode[0][0] wrong */ |
ij=1;/* To be checked else nbcode[0][0] wrong */ |
for(j=3; j <=ncovmodel-nagesqr; j++) { |
ijp=1; /* product no age */ |
|
/* for(j=3; j <=ncovmodel-nagesqr; j++) { */ |
|
for(j=1; j <=cptcovt; j++) { /* For each covariate of the simplified model */ |
/* printf("Tage[%d]=%d, j=%d\n", ij, Tage[ij], j); */ |
/* printf("Tage[%d]=%d, j=%d\n", ij, Tage[ij], j); */ |
if(ij <=cptcovage) { /* Bug valgrind */ |
if(j==Tage[ij]) { /* Product by age */ |
if((j-2)==Tage[ij]) { /* Bug valgrind */ |
if(ij <=cptcovage) { /* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1, 2 V5 and V1 */ |
fprintf(ficgp,"+p%d*%d*x",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(jk,j-2)]); |
if(DummyV[j]==0){ |
/* fprintf(ficgp,"+p%d*%d*x",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(jk,Tvar[j-2])]); */ |
fprintf(ficgp,"+p%d*%d*x",i+j+2+nagesqr-1,Tinvresult[nres][Tvar[j]]);; |
|
}else{ /* quantitative */ |
|
fprintf(ficgp,"+p%d*%f*x",i+j+2+nagesqr-1,Tqinvresult[nres][Tvar[j]]); /* Tqinvresult in decoderesult */ |
|
/* fprintf(ficgp,"+p%d*%d*x",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(jk,Tvar[j-2])]); */ |
|
} |
ij++; |
ij++; |
} |
} |
} |
}else if(j==Tprod[ijp]) { /* */ |
else |
/* printf("Tprod[%d]=%d, j=%d\n", ij, Tprod[ijp], j); */ |
fprintf(ficgp,"+p%d*%d",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(jk,j-2)]); /* Valgrind bug nbcode */ |
if(ijp <=cptcovprod) { /* Product */ |
} |
if(DummyV[Tvard[ijp][1]]==0){/* Vn is dummy */ |
|
if(DummyV[Tvard[ijp][2]]==0){/* Vn and Vm are dummy */ |
|
/* fprintf(ficgp,"+p%d*%d*%d",i+j+2+nagesqr-1,nbcode[Tvard[ijp][1]][codtabm(jk,j)],nbcode[Tvard[ijp][2]][codtabm(jk,j)]); */ |
|
fprintf(ficgp,"+p%d*%d*%d",i+j+2+nagesqr-1,Tinvresult[nres][Tvard[ijp][1]],Tinvresult[nres][Tvard[ijp][2]]); |
|
}else{ /* Vn is dummy and Vm is quanti */ |
|
/* fprintf(ficgp,"+p%d*%d*%f",i+j+2+nagesqr-1,nbcode[Tvard[ijp][1]][codtabm(jk,j)],Tqinvresult[nres][Tvard[ijp][2]]); */ |
|
fprintf(ficgp,"+p%d*%d*%f",i+j+2+nagesqr-1,Tinvresult[nres][Tvard[ijp][1]],Tqinvresult[nres][Tvard[ijp][2]]); |
|
} |
|
}else{ /* Vn*Vm Vn is quanti */ |
|
if(DummyV[Tvard[ijp][2]]==0){ |
|
fprintf(ficgp,"+p%d*%d*%f",i+j+2+nagesqr-1,Tinvresult[nres][Tvard[ijp][2]],Tqinvresult[nres][Tvard[ijp][1]]); |
|
}else{ /* Both quanti */ |
|
fprintf(ficgp,"+p%d*%f*%f",i+j+2+nagesqr-1,Tqinvresult[nres][Tvard[ijp][1]],Tqinvresult[nres][Tvard[ijp][2]]); |
|
} |
|
} |
|
ijp++; |
|
} |
|
} else{ /* simple covariate */ |
|
/* fprintf(ficgp,"+p%d*%d",i+j+2+nagesqr-1,nbcode[Tvar[j]][codtabm(jk,j)]); /\* Valgrind bug nbcode *\/ */ |
|
if(Dummy[j]==0){ |
|
fprintf(ficgp,"+p%d*%d",i+j+2+nagesqr-1,Tinvresult[nres][Tvar[j]]); /* */ |
|
}else{ /* quantitative */ |
|
fprintf(ficgp,"+p%d*%f",i+j+2+nagesqr-1,Tqinvresult[nres][Tvar[j]]); /* */ |
|
/* fprintf(ficgp,"+p%d*%d*x",i+j+nagesqr-1,nbcode[Tvar[j-2]][codtabm(jk,Tvar[j-2])]); */ |
|
} |
|
} /* end simple */ |
|
} /* end j */ |
}else{ |
}else{ |
i=i-ncovmodel; |
i=i-ncovmodel; |
if(ng !=1 ) /* For logit formula of log p11 is more difficult to get */ |
if(ng !=1 ) /* For logit formula of log p11 is more difficult to get */ |
Line 6745 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 6958 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
|
|
ij=1; |
ij=1; |
for(j=3; j <=ncovmodel-nagesqr; j++){ |
for(j=3; j <=ncovmodel-nagesqr; j++){ |
if(ij <=cptcovage) { /* Bug valgrind */ |
if((j-2)==Tage[ij]) { /* Bug valgrind */ |
if((j-2)==Tage[ij]) { /* Bug valgrind */ |
if(ij <=cptcovage) { /* Bug valgrind */ |
fprintf(ficgp,"+p%d*%d*x",k3+(k1-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(jk,j-2)]); |
fprintf(ficgp,"+p%d*%d*x",k3+(k1-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(jk,j-2)]); |
/* fprintf(ficgp,"+p%d*%d*x",k3+(k1-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(jk,Tvar[j-2])]); */ |
/* fprintf(ficgp,"+p%d*%d*x",k3+(k1-1)*ncovmodel+1+j-2+nagesqr,nbcode[Tvar[j-2]][codtabm(jk,Tvar[j-2])]); */ |
ij++; |
ij++; |
Line 6898 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 7111 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
} /* end bad */ |
} /* end bad */ |
|
|
for (age=bage; age<=fage; age++){ |
for (age=bage; age<=fage; age++){ |
printf("%d %d ", cptcod, (int)age); |
/* printf("%d %d ", cptcod, (int)age); */ |
sumnewp[cptcod]=0.; |
sumnewp[cptcod]=0.; |
sumnewm[cptcod]=0.; |
sumnewm[cptcod]=0.; |
for (i=1; i<=nlstate;i++){ |
for (i=1; i<=nlstate;i++){ |
Line 6937 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 7150 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
|
|
|
|
/************** Forecasting ******************/ |
/************** Forecasting ******************/ |
void prevforecast(char fileres[], double anproj1, double mproj1, double jproj1, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double bage, double fage, int firstpass, int lastpass, double anproj2, double p[], int cptcoveff){ |
void prevforecast(char fileres[], double anproj1, double mproj1, double jproj1, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double bage, double fage, int firstpass, int lastpass, double anproj2, double p[], int cptcoveff){ |
/* proj1, year, month, day of starting projection |
/* proj1, year, month, day of starting projection |
agemin, agemax range of age |
agemin, agemax range of age |
dateprev1 dateprev2 range of dates during which prevalence is computed |
dateprev1 dateprev2 range of dates during which prevalence is computed |
anproj2 year of en of projection (same day and month as proj1). |
anproj2 year of en of projection (same day and month as proj1). |
*/ |
*/ |
int yearp, stepsize, hstepm, nhstepm, j, k, cptcod, i, h, i1; |
int yearp, stepsize, hstepm, nhstepm, j, k, cptcod, i, h, i1, k4, nres=0; |
double agec; /* generic age */ |
double agec; /* generic age */ |
double agelim, ppij, yp,yp1,yp2,jprojmean,mprojmean,anprojmean; |
double agelim, ppij, yp,yp1,yp2,jprojmean,mprojmean,anprojmean; |
double *popeffectif,*popcount; |
double *popeffectif,*popcount; |
Line 6965 void prevforecast(char fileres[], double
|
Line 7178 void prevforecast(char fileres[], double
|
printf("Problem with forecast resultfile: %s\n", fileresf); |
printf("Problem with forecast resultfile: %s\n", fileresf); |
fprintf(ficlog,"Problem with forecast resultfile: %s\n", fileresf); |
fprintf(ficlog,"Problem with forecast resultfile: %s\n", fileresf); |
} |
} |
printf("Computing forecasting: result on file '%s', please wait... \n", fileresf); |
printf("\nComputing forecasting: result on file '%s', please wait... \n", fileresf); |
fprintf(ficlog,"Computing forecasting: result on file '%s', please wait... \n", fileresf); |
fprintf(ficlog,"\nComputing forecasting: result on file '%s', please wait... \n", fileresf); |
|
|
if (cptcoveff==0) ncodemax[cptcoveff]=1; |
if (cptcoveff==0) ncodemax[cptcoveff]=1; |
|
|
Line 6997 void prevforecast(char fileres[], double
|
Line 7210 void prevforecast(char fileres[], double
|
fprintf(ficresf,"#****** Routine prevforecast **\n"); |
fprintf(ficresf,"#****** Routine prevforecast **\n"); |
|
|
/* if (h==(int)(YEARM*yearp)){ */ |
/* if (h==(int)(YEARM*yearp)){ */ |
for(k=1;k<=i1;k++){ |
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
|
for(k=1; k<=i1;k++){ |
|
if(TKresult[nres]!= k) |
|
continue; |
if(invalidvarcomb[k]){ |
if(invalidvarcomb[k]){ |
printf("\nCombination (%d) projection ignored because no cases \n",k); |
printf("\nCombination (%d) projection ignored because no cases \n",k); |
continue; |
continue; |
Line 7006 void prevforecast(char fileres[], double
|
Line 7222 void prevforecast(char fileres[], double
|
for(j=1;j<=cptcoveff;j++) { |
for(j=1;j<=cptcoveff;j++) { |
fprintf(ficresf," V%d (=) %d",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresf," V%d (=) %d",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
} |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficresf," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
fprintf(ficresf," yearproj age"); |
fprintf(ficresf," yearproj age"); |
for(j=1; j<=nlstate+ndeath;j++){ |
for(j=1; j<=nlstate+ndeath;j++){ |
for(i=1; i<=nlstate;i++) |
for(i=1; i<=nlstate;i++) |
Line 7020 void prevforecast(char fileres[], double
|
Line 7239 void prevforecast(char fileres[], double
|
nhstepm = nhstepm/hstepm; |
nhstepm = nhstepm/hstepm; |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
oldm=oldms;savm=savms; |
oldm=oldms;savm=savms; |
hpxij(p3mat,nhstepm,agec,hstepm,p,nlstate,stepm,oldm,savm, k); |
hpxij(p3mat,nhstepm,agec,hstepm,p,nlstate,stepm,oldm,savm, k,nres); |
|
|
for (h=0; h<=nhstepm; h++){ |
for (h=0; h<=nhstepm; h++){ |
if (h*hstepm/YEARM*stepm ==yearp) { |
if (h*hstepm/YEARM*stepm ==yearp) { |
Line 7650 int readdata(char datafile[], int firsto
|
Line 7869 int readdata(char datafile[], int firsto
|
/* Loops on waves */ |
/* Loops on waves */ |
for (j=maxwav;j>=1;j--){ |
for (j=maxwav;j>=1;j--){ |
for (iv=nqtv;iv>=1;iv--){ /* Loop on time varying quantitative variables */ |
for (iv=nqtv;iv>=1;iv--){ /* Loop on time varying quantitative variables */ |
cutv(stra, strb, line, ' '); |
cutv(stra, strb, line, ' '); |
if(strb[0]=='.') { /* Missing value */ |
if(strb[0]=='.') { /* Missing value */ |
lval=-1; |
lval=-1; |
cotqvar[j][iv][i]=-1; /* 0.0/0.0 */ |
cotqvar[j][iv][i]=-1; /* 0.0/0.0 */ |
cotvar[j][ntv+iv][i]=-1; /* For performance reasons */ |
cotvar[j][ntv+iv][i]=-1; /* For performance reasons */ |
if(isalpha(strb[1])) { /* .m or .d Really Missing value */ |
if(isalpha(strb[1])) { /* .m or .d Really Missing value */ |
printf("Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th quantitative value out of %d measured at wave %d. If missing, you should remove this individual or impute a value. Exiting.\n", strb, linei,i,line,iv, nqtv, j); |
printf("Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th quantitative value out of %d measured at wave %d. If missing, you should remove this individual or impute a value. Exiting.\n", strb, linei,i,line,iv, nqtv, j); |
fprintf(ficlog,"Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th quantitative value out of %d measured at wave %d. If missing, you should remove this individual or impute a value. Exiting.\n", strb, linei,i,line,iv, nqtv, j);fflush(ficlog); |
fprintf(ficlog,"Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th quantitative value out of %d measured at wave %d. If missing, you should remove this individual or impute a value. Exiting.\n", strb, linei,i,line,iv, nqtv, j);fflush(ficlog); |
return 1; |
return 1; |
} |
} |
}else{ |
}else{ |
errno=0; |
errno=0; |
/* what_kind_of_number(strb); */ |
/* what_kind_of_number(strb); */ |
dval=strtod(strb,&endptr); |
dval=strtod(strb,&endptr); |
/* if( strb[0]=='\0' || (*endptr != '\0')){ */ |
/* if( strb[0]=='\0' || (*endptr != '\0')){ */ |
/* if(strb != endptr && *endptr == '\0') */ |
/* if(strb != endptr && *endptr == '\0') */ |
/* dval=dlval; */ |
/* dval=dlval; */ |
/* if (errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN)) */ |
/* if (errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN)) */ |
if( strb[0]=='\0' || (*endptr != '\0')){ |
if( strb[0]=='\0' || (*endptr != '\0')){ |
printf("Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th quantitative value out of %d measured at wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,iv, nqtv, j,maxwav); |
printf("Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th quantitative value out of %d measured at wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,iv, nqtv, j,maxwav); |
fprintf(ficlog,"Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th quantitative value out of %d measured at wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line, iv, nqtv, j,maxwav);fflush(ficlog); |
fprintf(ficlog,"Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th quantitative value out of %d measured at wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line, iv, nqtv, j,maxwav);fflush(ficlog); |
return 1; |
return 1; |
} |
} |
cotqvar[j][iv][i]=dval; |
cotqvar[j][iv][i]=dval; |
cotvar[j][ntv+iv][i]=dval; |
cotvar[j][ntv+iv][i]=dval; |
} |
} |
strcpy(line,stra); |
strcpy(line,stra); |
}/* end loop ntqv */ |
}/* end loop ntqv */ |
|
|
for (iv=ntv;iv>=1;iv--){ /* Loop on time varying dummies */ |
for (iv=ntv;iv>=1;iv--){ /* Loop on time varying dummies */ |
cutv(stra, strb, line, ' '); |
cutv(stra, strb, line, ' '); |
if(strb[0]=='.') { /* Missing value */ |
if(strb[0]=='.') { /* Missing value */ |
lval=-1; |
lval=-1; |
}else{ |
}else{ |
errno=0; |
errno=0; |
lval=strtol(strb,&endptr,10); |
lval=strtol(strb,&endptr,10); |
/* if (errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN))*/ |
/* if (errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN))*/ |
if( strb[0]=='\0' || (*endptr != '\0')){ |
if( strb[0]=='\0' || (*endptr != '\0')){ |
printf("Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th dummy covariate out of %d measured at wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,iv, ntv, j,maxwav); |
printf("Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d th dummy covariate out of %d measured at wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,iv, ntv, j,maxwav); |
fprintf(ficlog,"Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d dummy covariate out of %d measured wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,iv, ntv,j,maxwav);fflush(ficlog); |
fprintf(ficlog,"Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be the %d dummy covariate out of %d measured wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,iv, ntv,j,maxwav);fflush(ficlog); |
return 1; |
return 1; |
} |
} |
} |
} |
if(lval <-1 || lval >1){ |
if(lval <-1 || lval >1){ |
printf("Error reading data around '%ld' at line number %d for individual %d, '%s'\n \ |
printf("Error reading data around '%ld' at line number %d for individual %d, '%s'\n \ |
Should be a value of %d(nth) covariate (0 should be the value for the reference and 1\n \ |
Should be a value of %d(nth) covariate (0 should be the value for the reference and 1\n \ |
for the alternative. IMaCh does not build design variables automatically, do it yourself.\n \ |
for the alternative. IMaCh does not build design variables automatically, do it yourself.\n \ |
For example, for multinomial values like 1, 2 and 3,\n \ |
For example, for multinomial values like 1, 2 and 3,\n \ |
build V1=0 V2=0 for the reference value (1),\n \ |
build V1=0 V2=0 for the reference value (1),\n \ |
V1=1 V2=0 for (2) \n \ |
V1=1 V2=0 for (2) \n \ |
and V1=0 V2=1 for (3). V1=1 V2=1 should not exist and the corresponding\n \ |
and V1=0 V2=1 for (3). V1=1 V2=1 should not exist and the corresponding\n \ |
output of IMaCh is often meaningless.\n \ |
output of IMaCh is often meaningless.\n \ |
Exiting.\n",lval,linei, i,line,j); |
Exiting.\n",lval,linei, i,line,j); |
fprintf(ficlog,"Error reading data around '%ld' at line number %d for individual %d, '%s'\n \ |
fprintf(ficlog,"Error reading data around '%ld' at line number %d for individual %d, '%s'\n \ |
Should be a value of %d(nth) covariate (0 should be the value for the reference and 1\n \ |
Should be a value of %d(nth) covariate (0 should be the value for the reference and 1\n \ |
for the alternative. IMaCh does not build design variables automatically, do it yourself.\n \ |
for the alternative. IMaCh does not build design variables automatically, do it yourself.\n \ |
For example, for multinomial values like 1, 2 and 3,\n \ |
For example, for multinomial values like 1, 2 and 3,\n \ |
build V1=0 V2=0 for the reference value (1),\n \ |
build V1=0 V2=0 for the reference value (1),\n \ |
V1=1 V2=0 for (2) \n \ |
V1=1 V2=0 for (2) \n \ |
and V1=0 V2=1 for (3). V1=1 V2=1 should not exist and the corresponding\n \ |
and V1=0 V2=1 for (3). V1=1 V2=1 should not exist and the corresponding\n \ |
output of IMaCh is often meaningless.\n \ |
output of IMaCh is often meaningless.\n \ |
Exiting.\n",lval,linei, i,line,j);fflush(ficlog); |
Exiting.\n",lval,linei, i,line,j);fflush(ficlog); |
return 1; |
return 1; |
} |
} |
cotvar[j][iv][i]=(double)(lval); |
cotvar[j][iv][i]=(double)(lval); |
strcpy(line,stra); |
strcpy(line,stra); |
}/* end loop ntv */ |
}/* end loop ntv */ |
|
|
/* Statuses at wave */ |
/* Statuses at wave */ |
cutv(stra, strb, line, ' '); |
cutv(stra, strb, line, ' '); |
if(strb[0]=='.') { /* Missing value */ |
if(strb[0]=='.') { /* Missing value */ |
lval=-1; |
lval=-1; |
}else{ |
}else{ |
errno=0; |
errno=0; |
lval=strtol(strb,&endptr,10); |
lval=strtol(strb,&endptr,10); |
/* if (errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN))*/ |
/* if (errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN))*/ |
if( strb[0]=='\0' || (*endptr != '\0')){ |
if( strb[0]=='\0' || (*endptr != '\0')){ |
printf("Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be a status of wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,j,maxwav); |
printf("Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be a status of wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,j,maxwav); |
fprintf(ficlog,"Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be a status of wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,j,maxwav);fflush(ficlog); |
fprintf(ficlog,"Error reading data around '%s' at line number %d for individual %d, '%s'\nShould be a status of wave %d. Setting maxwav=%d might be wrong. Exiting.\n", strb, linei,i,line,j,maxwav);fflush(ficlog); |
return 1; |
return 1; |
} |
} |
} |
} |
|
|
s[j][i]=lval; |
s[j][i]=lval; |
Line 7890 int readdata(char datafile[], int firsto
|
Line 8109 int readdata(char datafile[], int firsto
|
|
|
void removefirstspace(char **stri){/*, char stro[]) {*/ |
void removefirstspace(char **stri){/*, char stro[]) {*/ |
char *p1 = *stri, *p2 = *stri; |
char *p1 = *stri, *p2 = *stri; |
if (*p2 == ' ') |
while (*p2 == ' ') |
p2++; |
p2++; |
/* while ((*p1++ = *p2++) !=0) */ |
/* while ((*p1++ = *p2++) !=0) */ |
/* ; */ |
/* ; */ |
Line 7901 void removefirstspace(char **stri){/*, c
|
Line 8120 void removefirstspace(char **stri){/*, c
|
*stri=p2; |
*stri=p2; |
} |
} |
|
|
int decoderesult ( char resultline[]) |
int decoderesult ( char resultline[], int nres) |
/**< This routine decode one result line and returns the combination # of dummy covariates only **/ |
/**< This routine decode one result line and returns the combination # of dummy covariates only **/ |
{ |
{ |
int j=0, k=0, k1=0, k2=0, match=0; |
int j=0, k=0, k1=0, k2=0, k3=0, k4=0, match=0, k2q=0, k3q=0, k4q=0; |
char resultsav[MAXLINE]; |
char resultsav[MAXLINE]; |
int resultmodel[MAXLINE]; |
int resultmodel[MAXLINE]; |
int modelresult[MAXLINE]; |
int modelresult[MAXLINE]; |
Line 7942 int decoderesult ( char resultline[])
|
Line 8161 int decoderesult ( char resultline[])
|
if (nbocc(stra,'=') >0) |
if (nbocc(stra,'=') >0) |
strcpy(resultsav,stra); /* and analyzes it */ |
strcpy(resultsav,stra); /* and analyzes it */ |
} |
} |
/* Checking if no missing or useless values in comparison of current model needs */ |
/* Checking for missing or useless values in comparison of current model needs */ |
for(k1=1; k1<= cptcovt ;k1++){ /* model line */ |
for(k1=1; k1<= cptcovt ;k1++){ /* model line V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
if(Typevar[k1]==0){ |
if(Typevar[k1]==0){ /* Single covariate in model */ |
match=0; |
match=0; |
for(k2=1; k2 <=j;k2++){ |
for(k2=1; k2 <=j;k2++){/* result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
if(Tvar[k1]==Tvarsel[k2]) { |
if(Tvar[k1]==Tvarsel[k2]) {/* Tvar[1]=5 == Tvarsel[2]=5 */ |
modelresult[k2]=k1; |
modelresult[k2]=k1;/* modelresult[2]=1 modelresult[1]=2 modelresult[3]=3 modelresult[6]=4 modelresult[9]=5 */ |
match=1; |
match=1; |
break; |
break; |
} |
} |
Line 7958 int decoderesult ( char resultline[])
|
Line 8177 int decoderesult ( char resultline[])
|
} |
} |
} |
} |
} |
} |
|
/* Checking for missing or useless values in comparison of current model needs */ |
for(k2=1; k2 <=j;k2++){ /* result line */ |
for(k2=1; k2 <=j;k2++){ /* result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
match=0; |
match=0; |
for(k1=1; k1<= cptcovt ;k1++){ /* model line */ |
for(k1=1; k1<= cptcovt ;k1++){ /* model line V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
if(Typevar[k1]==0){ |
if(Typevar[k1]==0){ /* Single */ |
if(Tvar[k1]==Tvarsel[k2]) { |
if(Tvar[k1]==Tvarsel[k2]) { /* Tvar[2]=4 == Tvarsel[1]=4 */ |
resultmodel[k1]=k2; |
resultmodel[k1]=k2; /* resultmodel[2]=1 resultmodel[1]=2 resultmodel[3]=3 resultmodel[6]=4 resultmodel[9]=5 */ |
++match; |
++match; |
} |
} |
} |
} |
Line 7975 int decoderesult ( char resultline[])
|
Line 8194 int decoderesult ( char resultline[])
|
printf("Error in result line: %d doubled; result: %s, model=%s\n",k2, resultline, model); |
printf("Error in result line: %d doubled; result: %s, model=%s\n",k2, resultline, model); |
} |
} |
} |
} |
|
|
/* We need to deduce which combination number is chosen and save quantitative values */ |
/* We need to deduce which combination number is chosen and save quantitative values */ |
|
/* model line V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
|
/* result line V4=1 V5=25.1 V3=0 V2=8 V1=1 */ |
|
/* should give a combination of dummy V4=1, V3=0, V1=1 => V4*2**(0) + V3*2**(1) + V1*2**(2) = 5 + (1offset) = 6*/ |
|
/* result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
|
/* should give a combination of dummy V4=1, V3=1, V1=0 => V4*2**(0) + V3*2**(1) + V1*2**(2) = 3 + (1offset) = 4*/ |
|
/* 1 0 0 0 */ |
|
/* 2 1 0 0 */ |
|
/* 3 0 1 0 */ |
|
/* 4 1 1 0 */ /* V4=1, V3=1, V1=0 */ |
|
/* 5 0 0 1 */ |
|
/* 6 1 0 1 */ /* V4=1, V3=0, V1=1 */ |
|
/* 7 0 1 1 */ |
|
/* 8 1 1 1 */ |
|
/* V(Tvresult)=Tresult V4=1 V3=0 V1=1 Tresult[nres=1][2]=0 */ |
|
/* V(Tvqresult)=Tqresult V5=25.1 V2=8 Tqresult[nres=1][1]=25.1 */ |
|
/* V5*age V5 known which value for nres? */ |
|
/* Tqinvresult[2]=8 Tqinvresult[1]=25.1 */ |
|
for(k1=1, k=0, k4=0, k4q=0; k1 <=cptcovt;k1++){ /* model line */ |
|
if( Dummy[k1]==0 && Typevar[k1]==0 ){ /* Single dummy */ |
|
k3= resultmodel[k1]; /* resultmodel[2(V4)] = 1=k3 */ |
|
k2=(int)Tvarsel[k3]; /* Tvarsel[resultmodel[2]]= Tvarsel[1] = 4=k2 */ |
|
k+=Tvalsel[k3]*pow(2,k4); /* Tvalsel[1]=1 */ |
|
Tresult[nres][k4+1]=Tvalsel[k3];/* Tresult[nres][1]=1(V4=1) Tresult[nres][2]=0(V3=0) */ |
|
Tvresult[nres][k4+1]=(int)Tvarsel[k3];/* Tvresult[nres][1]=4 Tvresult[nres][3]=1 */ |
|
Tinvresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* Tinvresult[nres][4]=1 */ |
|
printf("Decoderesult Dummy k=%d, V(k2=V%d)= Tvalsel[%d]=%d, 2**(%d)\n",k, k2, k3, (int)Tvalsel[k3], k4); |
|
k4++;; |
|
} else if( Dummy[k1]==1 && Typevar[k1]==0 ){ /* Single quantitative */ |
|
k3q= resultmodel[k1]; /* resultmodel[2] = 1=k3 */ |
|
k2q=(int)Tvarsel[k3q]; /* Tvarsel[resultmodel[2]]= Tvarsel[1] = 4=k2 */ |
|
Tqresult[nres][k4q+1]=Tvalsel[k3q]; /* Tqresult[nres][1]=25.1 */ |
|
Tvqresult[nres][k4q+1]=(int)Tvarsel[k3q]; /* Tvqresult[nres][1]=5 */ |
|
Tqinvresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
|
printf("Decoderesult Quantitative nres=%d, V(k2q=V%d)= Tvalsel[%d]=%d, Tvarsel[%d]=%f\n",nres, k2q, k3q, Tvarsel[k3q], k3q, Tvalsel[k3q]); |
|
k4q++;; |
|
} |
|
} |
|
|
|
TKresult[nres]=++k; /* Combination for the nresult and the model */ |
return (0); |
return (0); |
} |
} |
int selected( int kvar){ /* Selected combination of covariates */ |
|
if(Tvarsel[kvar]) |
|
return (0); |
|
else |
|
return(1); |
|
} |
|
int decodemodel( char model[], int lastobs) |
int decodemodel( char model[], int lastobs) |
/**< This routine decodes the model and returns: |
/**< This routine decodes the model and returns: |
* Model V1+V2+V3+V8+V7*V8+V5*V6+V8*age+V3*age+age*age |
* Model V1+V2+V3+V8+V7*V8+V5*V6+V8*age+V3*age+age*age |
Line 8002 int decodemodel( char model[], int lasto
|
Line 8254 int decodemodel( char model[], int lasto
|
* - Tvard[k] p Tvard[1][1]@4 {7, 8, 5, 6} for V7*V8 and V5*V6 . |
* - Tvard[k] p Tvard[1][1]@4 {7, 8, 5, 6} for V7*V8 and V5*V6 . |
*/ |
*/ |
{ |
{ |
int i, j, k, ks; |
int i, j, k, ks, v; |
int j1, k1, k2, k3, k4; |
int j1, k1, k2, k3, k4; |
char modelsav[80]; |
char modelsav[80]; |
char stra[80], strb[80], strc[80], strd[80],stre[80]; |
char stra[80], strb[80], strc[80], strd[80],stre[80]; |
Line 8209 Typevar: 0 for simple covariate (dummy,
|
Line 8461 Typevar: 0 for simple covariate (dummy,
|
Fixed[k] 0=fixed (product or simple), 1 varying, 2 fixed with age product, 3 varying with age product \n\ |
Fixed[k] 0=fixed (product or simple), 1 varying, 2 fixed with age product, 3 varying with age product \n\ |
Dummy[k] 0=dummy (0 1), 1 quantitative (single or product without age), 2 dummy with age product, 3 quant with age product\n",model); |
Dummy[k] 0=dummy (0 1), 1 quantitative (single or product without age), 2 dummy with age product, 3 quant with age product\n",model); |
|
|
|
for(v=1; v <=ncovcol;v++){ |
|
DummyV[v]=0; |
|
FixedV[v]=0; |
|
} |
|
for(v=ncovcol+1; v <=ncovcol+nqv;v++){ |
|
DummyV[v]=1; |
|
FixedV[v]=0; |
|
} |
|
for(v=ncovcol+nqv+1; v <=ncovcol+nqv+ntv;v++){ |
|
DummyV[v]=0; |
|
FixedV[v]=1; |
|
} |
|
for(v=ncovcol+nqv+ntv+1; v <=ncovcol+nqv+ntv+nqtv;v++){ |
|
DummyV[v]=1; |
|
FixedV[v]=1; |
|
} |
|
for(v=1; v <=ncovcol+nqv+ntv+nqtv;v++){ |
|
printf("Decodemodel: V%d, Dummy(V%d)=%d, FixedV(V%d)=%d\n",v,v,DummyV[v],v,FixedV[v]); |
|
fprintf(ficlog,"Decodemodel: V%d, Dummy(V%d)=%d, FixedV(V%d)=%d\n",v,v,DummyV[v],v,FixedV[v]); |
|
} |
for(k=1, ncovf=0, nsd=0, nsq=0, ncovv=0, ncova=0, ncoveff=0, nqfveff=0, ntveff=0, nqtveff=0;k<=cptcovt; k++){ /* or cptocvt */ |
for(k=1, ncovf=0, nsd=0, nsq=0, ncovv=0, ncova=0, ncoveff=0, nqfveff=0, ntveff=0, nqtveff=0;k<=cptcovt; k++){ /* or cptocvt */ |
if (Tvar[k] <=ncovcol && Typevar[k]==0 ){ /* Simple fixed dummy (<=ncovcol) covariates */ |
if (Tvar[k] <=ncovcol && Typevar[k]==0 ){ /* Simple fixed dummy (<=ncovcol) covariates */ |
Fixed[k]= 0; |
Fixed[k]= 0; |
Line 8795 void syscompilerinfo(int logged)
|
Line 9067 void syscompilerinfo(int logged)
|
|
|
int prevalence_limit(double *p, double **prlim, double ageminpar, double agemaxpar, double ftolpl, int *ncvyearp){ |
int prevalence_limit(double *p, double **prlim, double ageminpar, double agemaxpar, double ftolpl, int *ncvyearp){ |
/*--------------- Prevalence limit (period or stable prevalence) --------------*/ |
/*--------------- Prevalence limit (period or stable prevalence) --------------*/ |
int i, j, k, i1 ; |
int i, j, k, i1, k4=0, nres=0 ; |
/* double ftolpl = 1.e-10; */ |
/* double ftolpl = 1.e-10; */ |
double age, agebase, agelim; |
double age, agebase, agelim; |
double tot; |
double tot; |
Line 8823 int prevalence_limit(double *p, double *
|
Line 9095 int prevalence_limit(double *p, double *
|
i1=pow(2,cptcoveff); /* Number of combination of dummy covariates */ |
i1=pow(2,cptcoveff); /* Number of combination of dummy covariates */ |
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
for(k=1; k<=i1;k++){ |
for(k=1; k<=i1;k++){ /* For each combination k of dummy covariates in the model */ |
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
/* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */ |
if(TKresult[nres]!= k) |
//for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){ |
continue; |
/* k=k+1; */ |
|
/* to clean */ |
|
//printf("cptcov=%d cptcod=%d codtab=%d\n",cptcov, cptcod,codtabm(cptcod,cptcov)); |
|
fprintf(ficrespl,"#******"); |
|
printf("#******"); |
|
fprintf(ficlog,"#******"); |
|
for(j=1;j<=cptcoveff ;j++) {/* all covariates */ |
|
fprintf(ficrespl," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); /* Here problem for varying dummy*/ |
|
printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
|
fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
|
} |
|
fprintf(ficrespl,"******\n"); |
|
printf("******\n"); |
|
fprintf(ficlog,"******\n"); |
|
if(invalidvarcomb[k]){ |
|
printf("\nCombination (%d) ignored because no case \n",k); |
|
fprintf(ficrespl,"#Combination (%d) ignored because no case \n",k); |
|
fprintf(ficlog,"\nCombination (%d) ignored because no case \n",k); |
|
continue; |
|
} |
|
|
|
fprintf(ficrespl,"#Age "); |
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
for(j=1;j<=cptcoveff;j++) { |
/* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */ |
fprintf(ficrespl,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
//for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){ |
} |
/* k=k+1; */ |
for(i=1; i<=nlstate;i++) fprintf(ficrespl," %d-%d ",i,i); |
/* to clean */ |
fprintf(ficrespl,"Total Years_to_converge\n"); |
//printf("cptcov=%d cptcod=%d codtab=%d\n",cptcov, cptcod,codtabm(cptcod,cptcov)); |
|
fprintf(ficrespl,"#******"); |
|
printf("#******"); |
|
fprintf(ficlog,"#******"); |
|
for(j=1;j<=cptcoveff ;j++) {/* all covariates */ |
|
fprintf(ficrespl," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); /* Here problem for varying dummy*/ |
|
printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
|
fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
|
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
fprintf(ficrespl," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
fprintf(ficlog," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
|
fprintf(ficrespl,"******\n"); |
|
printf("******\n"); |
|
fprintf(ficlog,"******\n"); |
|
if(invalidvarcomb[k]){ |
|
printf("\nCombination (%d) ignored because no case \n",k); |
|
fprintf(ficrespl,"#Combination (%d) ignored because no case \n",k); |
|
fprintf(ficlog,"\nCombination (%d) ignored because no case \n",k); |
|
continue; |
|
} |
|
|
|
fprintf(ficrespl,"#Age "); |
|
for(j=1;j<=cptcoveff;j++) { |
|
fprintf(ficrespl,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
|
} |
|
for(i=1; i<=nlstate;i++) fprintf(ficrespl," %d-%d ",i,i); |
|
fprintf(ficrespl,"Total Years_to_converge\n"); |
|
|
for (age=agebase; age<=agelim; age++){ |
for (age=agebase; age<=agelim; age++){ |
/* for (age=agebase; age<=agebase; age++){ */ |
/* for (age=agebase; age<=agebase; age++){ */ |
prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, ncvyearp, k); |
prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, ncvyearp, k, nres); |
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 */ |
/* was end of cptcod */ |
/* was end of cptcod */ |
} /* cptcov */ |
} /* cptcov */ |
|
} /* nres */ |
return 0; |
return 0; |
} |
} |
|
|
Line 8879 int back_prevalence_limit(double *p, dou
|
Line 9161 int back_prevalence_limit(double *p, dou
|
/* Computes the back prevalence limit for any combination of covariate values |
/* Computes the back prevalence limit for any combination of covariate values |
* at any age between ageminpar and agemaxpar |
* at any age between ageminpar and agemaxpar |
*/ |
*/ |
int i, j, k, i1 ; |
int i, j, k, i1, nres=0 ; |
/* double ftolpl = 1.e-10; */ |
/* double ftolpl = 1.e-10; */ |
double age, agebase, agelim; |
double age, agebase, agelim; |
double tot; |
double tot; |
Line 8910 int back_prevalence_limit(double *p, dou
|
Line 9192 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(k=1; k<=i1;k++){ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
//printf("cptcov=%d cptcod=%d codtab=%d\n",cptcov, cptcod,codtabm(cptcod,cptcov)); |
for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
fprintf(ficresplb,"#******"); |
if(TKresult[nres]!= k) |
printf("#******"); |
continue; |
fprintf(ficlog,"#******"); |
//printf("cptcov=%d cptcod=%d codtab=%d\n",cptcov, cptcod,codtabm(cptcod,cptcov)); |
for(j=1;j<=cptcoveff ;j++) {/* all covariates */ |
fprintf(ficresplb,"#******"); |
fprintf(ficresplb," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
printf("#******"); |
printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficlog,"#******"); |
fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
for(j=1;j<=cptcoveff ;j++) {/* all covariates */ |
} |
fprintf(ficresplb," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresplb,"******\n"); |
printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
printf("******\n"); |
fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficlog,"******\n"); |
} |
if(invalidvarcomb[k]){ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
printf("\nCombination (%d) ignored because no cases \n",k); |
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
fprintf(ficresplb,"#Combination (%d) ignored because no cases \n",k); |
fprintf(ficresplb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
fprintf(ficlog,"\nCombination (%d) ignored because no cases \n",k); |
fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
continue; |
} |
} |
fprintf(ficresplb,"******\n"); |
|
printf("******\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++) { |
fprintf(ficresplb,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresplb,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
} |
} |
for(i=1; i<=nlstate;i++) fprintf(ficresplb," %d-%d ",i,i); |
for(i=1; i<=nlstate;i++) fprintf(ficresplb," %d-%d ",i,i); |
fprintf(ficresplb,"Total Years_to_converge\n"); |
fprintf(ficresplb,"Total Years_to_converge\n"); |
|
|
|
|
for (age=agebase; age<=agelim; age++){ |
for (age=agebase; age<=agelim; age++){ |
/* for (age=agebase; age<=agebase; age++){ */ |
/* for (age=agebase; age<=agebase; age++){ */ |
if(mobilavproj > 0){ |
if(mobilavproj > 0){ |
/* bprevalim(bprlim, mobaverage, nlstate, p, age, ageminpar, agemaxpar, oldm, savm, doldm, dsavm, ftolpl, ncvyearp, k); */ |
/* bprevalim(bprlim, mobaverage, nlstate, p, age, ageminpar, agemaxpar, oldm, savm, doldm, dsavm, ftolpl, ncvyearp, k); */ |
/* bprevalim(bprlim, mobaverage, nlstate, p, age, oldm, savm, dnewm, doldm, dsavm, ftolpl, ncvyearp, k); */ |
/* bprevalim(bprlim, mobaverage, nlstate, p, age, oldm, savm, dnewm, doldm, dsavm, ftolpl, ncvyearp, k); */ |
bprevalim(bprlim, mobaverage, nlstate, p, age, ftolpl, ncvyearp, k); |
bprevalim(bprlim, mobaverage, nlstate, p, age, ftolpl, ncvyearp, k); |
}else if (mobilavproj == 0){ |
}else if (mobilavproj == 0){ |
printf("There is no chance to get back prevalence limit if data aren't non zero and summing to 1, please try a non null mobil_average(=%d) parameter or mobil_average=-1 if you want to try at your own risk.\n",mobilavproj); |
printf("There is no chance to get back prevalence limit if data aren't non zero and summing to 1, please try a non null mobil_average(=%d) parameter or mobil_average=-1 if you want to try at your own risk.\n",mobilavproj); |
fprintf(ficlog,"There is no chance to get back prevalence limit if data aren't non zero and summing to 1, please try a non null mobil_average(=%d) parameter or mobil_average=-1 if you want to try at your own risk.\n",mobilavproj); |
fprintf(ficlog,"There is no chance to get back prevalence limit if data aren't non zero and summing to 1, please try a non null mobil_average(=%d) parameter or mobil_average=-1 if you want to try at your own risk.\n",mobilavproj); |
exit(1); |
exit(1); |
}else{ |
}else{ |
/* bprevalim(bprlim, probs, nlstate, p, age, oldm, savm, dnewm, doldm, dsavm, ftolpl, ncvyearp, k); */ |
/* bprevalim(bprlim, probs, nlstate, p, age, oldm, savm, dnewm, doldm, dsavm, ftolpl, ncvyearp, k); */ |
bprevalim(bprlim, probs, nlstate, p, age, ftolpl, ncvyearp, k); |
bprevalim(bprlim, probs, nlstate, p, age, ftolpl, ncvyearp, k); |
} |
} |
fprintf(ficresplb,"%.0f ",age ); |
fprintf(ficresplb,"%.0f ",age ); |
for(j=1;j<=cptcoveff;j++) |
for(j=1;j<=cptcoveff;j++) |
fprintf(ficresplb,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresplb,"%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 += bprlim[i][i]; |
tot += bprlim[i][i]; |
fprintf(ficresplb," %.5f", bprlim[i][i]); |
fprintf(ficresplb," %.5f", bprlim[i][i]); |
} |
} |
fprintf(ficresplb," %.3f %d\n", tot, *ncvyearp); |
fprintf(ficresplb," %.3f %d\n", tot, *ncvyearp); |
} /* Age */ |
} /* Age */ |
/* was end of cptcod */ |
/* was end of cptcod */ |
} /* cptcov */ |
} /* end of any combination */ |
|
} /* end of nres */ |
/* hBijx(p, bage, fage); */ |
/* hBijx(p, bage, fage); */ |
/* fclose(ficrespijb); */ |
/* fclose(ficrespijb); */ |
|
|
Line 8978 int hPijx(double *p, int bage, int fage)
|
Line 9268 int hPijx(double *p, int bage, int fage)
|
int agelim; |
int agelim; |
int hstepm; |
int hstepm; |
int nhstepm; |
int nhstepm; |
int h, i, i1, j, k; |
int h, i, i1, j, k, k4, nres=0; |
|
|
double agedeb; |
double agedeb; |
double ***p3mat; |
double ***p3mat; |
Line 9005 int hPijx(double *p, int bage, int fage)
|
Line 9295 int hPijx(double *p, int bage, int fage)
|
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
/* /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */ |
/* /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */ |
/* k=k+1; */ |
/* k=k+1; */ |
for (k=1; k <= (int) pow(2,cptcoveff); k++){ |
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
|
for(k=1; k<=i1;k++){ |
|
if(TKresult[nres]!= k) |
|
continue; |
fprintf(ficrespij,"\n#****** "); |
fprintf(ficrespij,"\n#****** "); |
for(j=1;j<=cptcoveff;j++) |
for(j=1;j<=cptcoveff;j++) |
fprintf(ficrespij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficrespij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
fprintf(ficrespij," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
fprintf(ficrespij,"******\n"); |
fprintf(ficrespij,"******\n"); |
|
|
for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */ |
for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */ |
Line 9019 int hPijx(double *p, int bage, int fage)
|
Line 9316 int hPijx(double *p, int bage, int fage)
|
|
|
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
oldm=oldms;savm=savms; |
oldm=oldms;savm=savms; |
hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k); |
hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k, nres); |
fprintf(ficrespij,"# Cov Agex agex+h hpijx with i,j="); |
fprintf(ficrespij,"# Cov Agex agex+h hpijx with i,j="); |
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++) |
Line 9049 int hPijx(double *p, int bage, int fage)
|
Line 9346 int hPijx(double *p, int bage, int fage)
|
int ageminl; |
int ageminl; |
int hstepm; |
int hstepm; |
int nhstepm; |
int nhstepm; |
int h, i, i1, j, k; |
int h, i, i1, j, k, nres; |
|
|
double agedeb; |
double agedeb; |
double ***p3mat; |
double ***p3mat; |
Line 9077 int hPijx(double *p, int bage, int fage)
|
Line 9374 int hPijx(double *p, int bage, int fage)
|
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
/* /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */ |
/* /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */ |
/* k=k+1; */ |
/* k=k+1; */ |
for (k=1; k <= (int) pow(2,cptcoveff); k++){ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
fprintf(ficrespijb,"\n#****** "); |
for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
for(j=1;j<=cptcoveff;j++) |
if(TKresult[nres]!= k) |
fprintf(ficrespijb,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
continue; |
fprintf(ficrespijb,"******\n"); |
fprintf(ficrespijb,"\n#****** "); |
if(invalidvarcomb[k]){ |
for(j=1;j<=cptcoveff;j++) |
fprintf(ficrespijb,"\n#Combination (%d) ignored because no cases \n",k); |
fprintf(ficrespijb,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
continue; |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
} |
fprintf(ficrespijb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
} |
/* for (agedeb=fage; agedeb>=bage; agedeb--){ /\* If stepm=6 months *\/ */ |
fprintf(ficrespijb,"******\n"); |
for (agedeb=bage; agedeb<=fage; agedeb++){ /* If stepm=6 months and estepm=24 (2 years) */ |
if(invalidvarcomb[k]){ |
/* nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /\* Typically 20 years = 20*12/6=40 *\/ */ |
fprintf(ficrespijb,"\n#Combination (%d) ignored because no cases \n",k); |
nhstepm=(int) rint((agedeb-ageminl)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */ |
continue; |
nhstepm = nhstepm/hstepm; /* Typically 40/4=10, because estepm=24 stepm=6 => hstepm=24/6=4 */ |
} |
|
|
/* nhstepm=nhstepm*YEARM; aff par mois*/ |
/* for (agedeb=fage; agedeb>=bage; agedeb--){ /\* If stepm=6 months *\/ */ |
|
for (agedeb=bage; agedeb<=fage; agedeb++){ /* If stepm=6 months and estepm=24 (2 years) */ |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
/* nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /\* Typically 20 years = 20*12/6=40 *\/ */ |
/* oldm=oldms;savm=savms; */ |
nhstepm=(int) rint((agedeb-ageminl)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */ |
/* hbxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k); */ |
nhstepm = nhstepm/hstepm; /* Typically 40/4=10, because estepm=24 stepm=6 => hstepm=24/6=4 */ |
hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm, k); |
|
/* hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm,oldm,savm, dnewm, doldm, dsavm, k); */ |
/* nhstepm=nhstepm*YEARM; aff par mois*/ |
fprintf(ficrespijb,"# Cov Agex agex-h hpijx with i,j="); |
|
for(i=1; i<=nlstate;i++) |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
for(j=1; j<=nlstate+ndeath;j++) |
/* oldm=oldms;savm=savms; */ |
fprintf(ficrespijb," %1d-%1d",i,j); |
/* hbxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k); */ |
fprintf(ficrespijb,"\n"); |
hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm, k); |
for (h=0; h<=nhstepm; h++){ |
/* hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm,oldm,savm, dnewm, doldm, dsavm, k); */ |
/*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/ |
fprintf(ficrespijb,"# Cov Agex agex-h hpijx with i,j="); |
fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb - h*hstepm/YEARM*stepm ); |
|
/* fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb + h*hstepm/YEARM*stepm ); */ |
|
for(i=1; i<=nlstate;i++) |
for(i=1; i<=nlstate;i++) |
for(j=1; j<=nlstate+ndeath;j++) |
for(j=1; j<=nlstate+ndeath;j++) |
fprintf(ficrespijb," %.5f", p3mat[i][j][h]); |
fprintf(ficrespijb," %1d-%1d",i,j); |
fprintf(ficrespijb,"\n"); |
fprintf(ficrespijb,"\n"); |
} |
for (h=0; h<=nhstepm; h++){ |
free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
/*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/ |
fprintf(ficrespijb,"\n"); |
fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb - h*hstepm/YEARM*stepm ); |
} |
/* fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb + h*hstepm/YEARM*stepm ); */ |
/*}*/ |
for(i=1; i<=nlstate;i++) |
} |
for(j=1; j<=nlstate+ndeath;j++) |
|
fprintf(ficrespijb," %.5f", p3mat[i][j][h]); |
|
fprintf(ficrespijb,"\n"); |
|
} |
|
free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
|
fprintf(ficrespijb,"\n"); |
|
} /* end age deb */ |
|
} /* end combination */ |
|
} /* end nres */ |
return 0; |
return 0; |
} /* hBijx */ |
} /* hBijx */ |
|
|
Line 9145 int main(int argc, char *argv[])
|
Line 9448 int main(int argc, char *argv[])
|
int itimes; |
int itimes; |
int NDIM=2; |
int NDIM=2; |
int vpopbased=0; |
int vpopbased=0; |
|
int nres=0; |
|
|
char ca[32], cb[32]; |
char ca[32], cb[32]; |
/* FILE *fichtm; *//* Html File */ |
/* FILE *fichtm; *//* Html File */ |
Line 9746 Please run with mle=-1 to get a correct
|
Line 10050 Please run with mle=-1 to get a correct
|
Typevar=ivector(-1,NCOVMAX); /* -1 to 2 */ |
Typevar=ivector(-1,NCOVMAX); /* -1 to 2 */ |
Fixed=ivector(-1,NCOVMAX); /* -1 to 3 */ |
Fixed=ivector(-1,NCOVMAX); /* -1 to 3 */ |
Dummy=ivector(-1,NCOVMAX); /* -1 to 3 */ |
Dummy=ivector(-1,NCOVMAX); /* -1 to 3 */ |
|
DummyV=ivector(1,NCOVMAX); /* 1 to 3 */ |
|
FixedV=ivector(1,NCOVMAX); /* 1 to 3 */ |
/* V2+V1+V4+age*V3 is a model with 4 covariates (3 plus signs). |
/* V2+V1+V4+age*V3 is a model with 4 covariates (3 plus signs). |
For each model-covariate stores the data-covariate id. Tvar[1]=2, Tvar[2]=1, Tvar[3]=4, |
For each model-covariate stores the data-covariate id. Tvar[1]=2, Tvar[2]=1, Tvar[3]=4, |
Tvar[4=age*V3] is 3 and 'age' is recorded in Tage. |
Tvar[4=age*V3] is 3 and 'age' is recorded in Tage. |
Line 10522 Please run with mle=-1 to get a correct
|
Line 10828 Please run with mle=-1 to get a correct
|
ungetc(c,ficpar); |
ungetc(c,ficpar); |
fgets(line, MAXLINE, ficpar); |
fgets(line, MAXLINE, ficpar); |
fputs(line,stdout); |
fputs(line,stdout); |
|
fputs(line,ficres); |
fputs(line,ficparo); |
fputs(line,ficparo); |
} |
} |
ungetc(c,ficpar); |
ungetc(c,ficpar); |
Line 10538 Please run with mle=-1 to get a correct
|
Line 10845 Please run with mle=-1 to get a correct
|
fgets(line, MAXLINE, ficpar); |
fgets(line, MAXLINE, ficpar); |
fputs(line,stdout); |
fputs(line,stdout); |
fputs(line,ficparo); |
fputs(line,ficparo); |
|
fputs(line,ficres); |
} |
} |
ungetc(c,ficpar); |
ungetc(c,ficpar); |
|
|
Line 10548 Please run with mle=-1 to get a correct
|
Line 10856 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.*/ |
|
|
/* Results */ |
/* Results */ |
|
nresult=0; |
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] == '#') { |
Line 10555 Please run with mle=-1 to get a correct
|
Line 10864 Please run with mle=-1 to get a correct
|
fputs(line,stdout); |
fputs(line,stdout); |
fputs(line,ficparo); |
fputs(line,ficparo); |
fputs(line,ficlog); |
fputs(line,ficlog); |
|
fputs(line,ficres); |
continue; |
continue; |
}else |
}else |
break; |
break; |
Line 10565 Please run with mle=-1 to get a correct
|
Line 10875 Please run with mle=-1 to get a correct
|
else if (num_filled != 1){ |
else if (num_filled != 1){ |
printf("ERROR %d: result line should be at minimum 'result=' %s\n",num_filled, line); |
printf("ERROR %d: result line should be at minimum 'result=' %s\n",num_filled, line); |
} |
} |
printf("Result %d: result line should be at minimum 'line=' %s, result=%s\n",num_filled, line, resultline); |
nresult++; /* Sum of resultlines */ |
decoderesult(resultline); |
printf("Result %d: result=%s\n",nresult, resultline); |
|
if(nresult > MAXRESULTLINES){ |
|
printf("ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\n",MAXRESULTLINES,nresult); |
|
fprintf(ficlog,"ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\n",MAXRESULTLINES,nresult); |
|
goto end; |
|
} |
|
decoderesult(resultline, nresult); /* Fills TKresult[nresult] combination and Tresult[nresult][k4+1] combination values */ |
|
fprintf(ficparo,"result: %s\n",resultline); |
|
fprintf(ficres,"result: %s\n",resultline); |
|
fprintf(ficlog,"result: %s\n",resultline); |
while(fgets(line, MAXLINE, ficpar)) { |
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,ficres); |
fputs(line,ficlog); |
fputs(line,ficlog); |
continue; |
continue; |
}else |
}else |
Line 10653 Please run with mle=-1 to get a correct
|
Line 10973 Please run with mle=-1 to get a correct
|
mobaverages[i][j][k]=0.; |
mobaverages[i][j][k]=0.; |
mobaverage=mobaverages; |
mobaverage=mobaverages; |
if (mobilav!=0) { |
if (mobilav!=0) { |
|
printf("Movingaveraging observed prevalence\n"); |
if (movingaverage(probs, ageminpar, agemaxpar, mobaverage, mobilav)!=0){ |
if (movingaverage(probs, ageminpar, agemaxpar, mobaverage, mobilav)!=0){ |
fprintf(ficlog," Error in movingaverage mobilav=%d\n",mobilav); |
fprintf(ficlog," Error in movingaverage mobilav=%d\n",mobilav); |
printf(" Error in movingaverage mobilav=%d\n",mobilav); |
printf(" Error in movingaverage mobilav=%d\n",mobilav); |
Line 10661 Please run with mle=-1 to get a correct
|
Line 10982 Please run with mle=-1 to get a correct
|
/* /\* Prevalence for each covariates in probs[age][status][cov] *\/ */ |
/* /\* Prevalence for each covariates in probs[age][status][cov] *\/ */ |
/* prevalence(probs, ageminpar, agemaxpar, s, agev, nlstate, imx, Tvar, nbcode, ncodemax, mint, anint, dateprev1, dateprev2, firstpass, lastpass); */ |
/* prevalence(probs, ageminpar, agemaxpar, s, agev, nlstate, imx, Tvar, nbcode, ncodemax, mint, anint, dateprev1, dateprev2, firstpass, lastpass); */ |
else if (mobilavproj !=0) { |
else if (mobilavproj !=0) { |
|
printf("Movingaveraging projected observed prevalence\n"); |
if (movingaverage(probs, ageminpar, agemaxpar, mobaverage, mobilavproj)!=0){ |
if (movingaverage(probs, ageminpar, agemaxpar, mobaverage, mobilavproj)!=0){ |
fprintf(ficlog," Error in movingaverage mobilavproj=%d\n",mobilavproj); |
fprintf(ficlog," Error in movingaverage mobilavproj=%d\n",mobilavproj); |
printf(" Error in movingaverage mobilavproj=%d\n",mobilavproj); |
printf(" Error in movingaverage mobilavproj=%d\n",mobilavproj); |
Line 10715 Please run with mle=-1 to get a correct
|
Line 11037 Please run with mle=-1 to get a correct
|
} |
} |
printf("Computing Health Expectancies: result on file '%s' ...", filerese);fflush(stdout); |
printf("Computing Health Expectancies: result on file '%s' ...", filerese);fflush(stdout); |
fprintf(ficlog,"Computing Health Expectancies: result on file '%s' ...", filerese);fflush(ficlog); |
fprintf(ficlog,"Computing Health Expectancies: result on file '%s' ...", filerese);fflush(ficlog); |
|
|
|
pstamp(ficreseij); |
|
|
for (k=1; k <= (int) pow(2,cptcoveff); k++){ /* For any combination of dummy covariates, fixed and varying */ |
i1=pow(2,cptcoveff); /* Number of combination of dummy covariates */ |
|
if (cptcovn < 1){i1=1;} |
|
|
|
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
|
for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
|
if(TKresult[nres]!= k) |
|
continue; |
fprintf(ficreseij,"\n#****** "); |
fprintf(ficreseij,"\n#****** "); |
|
printf("\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)]); |
|
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
|
} |
|
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
|
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
fprintf(ficreseij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
} |
} |
fprintf(ficreseij,"******\n"); |
fprintf(ficreseij,"******\n"); |
|
printf("******\n"); |
|
|
eij=ma3x(1,nlstate,1,nlstate,(int) bage, (int) fage); |
eij=ma3x(1,nlstate,1,nlstate,(int) bage, (int) fage); |
oldm=oldms;savm=savms; |
oldm=oldms;savm=savms; |
evsij(eij, p, nlstate, stepm, (int) bage, (int)fage, oldm, savm, k, estepm, strstart); |
evsij(eij, p, nlstate, stepm, (int) bage, (int)fage, oldm, savm, k, estepm, strstart, nres); |
|
|
free_ma3x(eij,1,nlstate,1,nlstate,(int) bage, (int)fage); |
free_ma3x(eij,1,nlstate,1,nlstate,(int) bage, (int)fage); |
} |
} |
Line 10776 Please run with mle=-1 to get a correct
|
Line 11113 Please run with mle=-1 to get a correct
|
/*for(cptcov=1,k=0;cptcov<=i1;cptcov++){ |
/*for(cptcov=1,k=0;cptcov<=i1;cptcov++){ |
for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*/ |
for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*/ |
|
|
for (k=1; k <= (int) pow(2,cptcoveff); k++){ |
i1=pow(2,cptcoveff); /* Number of combination of dummy covariates */ |
printf("\n#****** "); |
if (cptcovn < 1){i1=1;} |
fprintf(ficrest,"\n#****** "); |
|
fprintf(ficlog,"\n#****** "); |
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
|
for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
|
if(TKresult[nres]!= k) |
|
continue; |
|
printf("\n#****** Selected:"); |
|
fprintf(ficrest,"\n#****** Selected:"); |
|
fprintf(ficlog,"\n#****** Selected:"); |
for(j=1;j<=cptcoveff;j++){ |
for(j=1;j<=cptcoveff;j++){ |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficrest,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficrest,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
} |
} |
|
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
|
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
fprintf(ficrest," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
} |
fprintf(ficrest,"******\n"); |
fprintf(ficrest,"******\n"); |
fprintf(ficlog,"******\n"); |
fprintf(ficlog,"******\n"); |
printf("******\n"); |
printf("******\n"); |
Line 10795 Please run with mle=-1 to get a correct
|
Line 11143 Please run with mle=-1 to get a correct
|
fprintf(ficresstdeij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresstdeij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficrescveij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficrescveij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
} |
} |
|
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficresstdeij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
fprintf(ficrescveij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
} |
fprintf(ficresstdeij,"******\n"); |
fprintf(ficresstdeij,"******\n"); |
fprintf(ficrescveij,"******\n"); |
fprintf(ficrescveij,"******\n"); |
|
|
fprintf(ficresvij,"\n#****** "); |
fprintf(ficresvij,"\n#****** "); |
|
/* pstamp(ficresvij); */ |
for(j=1;j<=cptcoveff;j++) |
for(j=1;j<=cptcoveff;j++) |
fprintf(ficresvij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresvij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
|
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
|
fprintf(ficresvij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
} |
fprintf(ficresvij,"******\n"); |
fprintf(ficresvij,"******\n"); |
|
|
eij=ma3x(1,nlstate,1,nlstate,(int) bage, (int) fage); |
eij=ma3x(1,nlstate,1,nlstate,(int) bage, (int) fage); |
oldm=oldms;savm=savms; |
oldm=oldms;savm=savms; |
printf(" cvevsij combination#=%d, ",k); |
printf(" cvevsij "); |
fprintf(ficlog, " cvevsij combination#=%d, ",k); |
fprintf(ficlog, " cvevsij "); |
cvevsij(eij, p, nlstate, stepm, (int) bage, (int)fage, oldm, savm, k, estepm, delti, matcov, strstart); |
cvevsij(eij, p, nlstate, stepm, (int) bage, (int)fage, oldm, savm, k, estepm, delti, matcov, strstart, nres); |
printf(" end cvevsij \n "); |
printf(" end cvevsij \n "); |
fprintf(ficlog, " end cvevsij \n "); |
fprintf(ficlog, " end cvevsij \n "); |
|
|
Line 10824 Please run with mle=-1 to get a correct
|
Line 11180 Please run with mle=-1 to get a correct
|
cptcod= 0; /* To be deleted */ |
cptcod= 0; /* To be deleted */ |
printf("varevsij vpopbased=%d \n",vpopbased); |
printf("varevsij vpopbased=%d \n",vpopbased); |
fprintf(ficlog, "varevsij vpopbased=%d \n",vpopbased); |
fprintf(ficlog, "varevsij vpopbased=%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, nres); /* 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); |
Line 10838 Please run with mle=-1 to get a correct
|
Line 11194 Please run with mle=-1 to get a correct
|
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, nres); /*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++) |
Line 10875 Please run with mle=-1 to get a correct
|
Line 11231 Please run with mle=-1 to get a correct
|
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); |
free_vector(epj,1,nlstate+1); |
free_vector(epj,1,nlstate+1); |
printf("done \n");fflush(stdout); |
printf("done selection\n");fflush(stdout); |
fprintf(ficlog,"done\n");fflush(ficlog); |
fprintf(ficlog,"done selection\n");fflush(ficlog); |
|
|
/*}*/ |
/*}*/ |
} /* End k */ |
} /* End k selection */ |
|
|
printf("done State-specific expectancies\n");fflush(stdout); |
printf("done State-specific expectancies\n");fflush(stdout); |
fprintf(ficlog,"done State-specific expectancies\n");fflush(ficlog); |
fprintf(ficlog,"done State-specific expectancies\n");fflush(ficlog); |
Line 10898 Please run with mle=-1 to get a correct
|
Line 11254 Please run with mle=-1 to get a correct
|
/*for(cptcov=1,k=0;cptcov<=i1;cptcov++){ |
/*for(cptcov=1,k=0;cptcov<=i1;cptcov++){ |
for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*/ |
for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*/ |
|
|
for (k=1; k <= (int) pow(2,cptcoveff); k++){ |
i1=pow(2,cptcoveff); |
|
if (cptcovn < 1){i1=1;} |
|
|
|
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
|
for(k=1; k<=i1;k++){ |
|
if(TKresult[nres]!= k) |
|
continue; |
fprintf(ficresvpl,"\n#****** "); |
fprintf(ficresvpl,"\n#****** "); |
printf("\n#****** "); |
printf("\n#****** "); |
fprintf(ficlog,"\n#****** "); |
fprintf(ficlog,"\n#****** "); |
Line 10907 Please run with mle=-1 to get a correct
|
Line 11269 Please run with mle=-1 to get a correct
|
fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
} |
} |
|
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
|
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
fprintf(ficresvpl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
} |
fprintf(ficresvpl,"******\n"); |
fprintf(ficresvpl,"******\n"); |
printf("******\n"); |
printf("******\n"); |
fprintf(ficlog,"******\n"); |
fprintf(ficlog,"******\n"); |
|
|
varpl=matrix(1,nlstate,(int) bage, (int) fage); |
varpl=matrix(1,nlstate,(int) bage, (int) fage); |
oldm=oldms;savm=savms; |
oldm=oldms;savm=savms; |
varprevlim(fileres, varpl, matcov, p, delti, nlstate, stepm, (int) bage, (int) fage, oldm, savm, prlim, ftolpl, &ncvyear, k, strstart); |
varprevlim(fileres, varpl, matcov, p, delti, nlstate, stepm, (int) bage, (int) fage, oldm, savm, prlim, ftolpl, &ncvyear, k, strstart, nres); |
free_matrix(varpl,1,nlstate,(int) bage, (int)fage); |
free_matrix(varpl,1,nlstate,(int) bage, (int)fage); |
/*}*/ |
/*}*/ |
} |
} |
Line 10962 Please run with mle=-1 to get a correct
|
Line 11329 Please run with mle=-1 to get a correct
|
free_ivector(ncodemaxwundef,1,NCOVMAX); |
free_ivector(ncodemaxwundef,1,NCOVMAX); |
free_ivector(Dummy,-1,NCOVMAX); |
free_ivector(Dummy,-1,NCOVMAX); |
free_ivector(Fixed,-1,NCOVMAX); |
free_ivector(Fixed,-1,NCOVMAX); |
|
free_ivector(DummyV,1,NCOVMAX); |
|
free_ivector(FixedV,1,NCOVMAX); |
free_ivector(Typevar,-1,NCOVMAX); |
free_ivector(Typevar,-1,NCOVMAX); |
free_ivector(Tvar,1,NCOVMAX); |
free_ivector(Tvar,1,NCOVMAX); |
free_ivector(TvarsQ,1,NCOVMAX); |
free_ivector(TvarsQ,1,NCOVMAX); |