version 1.335, 2022/08/31 08:23:16
|
version 1.343, 2022/09/14 14:22:16
|
Line 1
|
Line 1
|
/* $Id$ |
/* $Id$ |
$State$ |
$State$ |
$Log$ |
$Log$ |
|
Revision 1.343 2022/09/14 14:22:16 brouard |
|
Summary: version 0.99r39 |
|
|
|
* imach.c (Module): Version 0.99r39 with colored dummy covariates |
|
(fixed or time varying), using new last columns of |
|
ILK_parameter.txt file. |
|
|
|
Revision 1.342 2022/09/11 19:54:09 brouard |
|
Summary: 0.99r38 |
|
|
|
* imach.c (Module): Adding timevarying products of any kinds, |
|
should work before shifting cotvar from ncovcol+nqv columns in |
|
order to have a correspondance between the column of cotvar and |
|
the id of column. |
|
(Module): Some cleaning and adding covariates in ILK.txt |
|
|
|
Revision 1.341 2022/09/11 07:58:42 brouard |
|
Summary: Version 0.99r38 |
|
|
|
After adding change in cotvar. |
|
|
|
Revision 1.340 2022/09/11 07:53:11 brouard |
|
Summary: Version imach 0.99r37 |
|
|
|
* imach.c (Module): Adding timevarying products of any kinds, |
|
should work before shifting cotvar from ncovcol+nqv columns in |
|
order to have a correspondance between the column of cotvar and |
|
the id of column. |
|
|
|
Revision 1.339 2022/09/09 17:55:22 brouard |
|
Summary: version 0.99r37 |
|
|
|
* imach.c (Module): Many improvements for fixing products of fixed |
|
timevarying as well as fixed * fixed, and test with quantitative |
|
covariate. |
|
|
|
Revision 1.338 2022/09/04 17:40:33 brouard |
|
Summary: 0.99r36 |
|
|
|
* imach.c (Module): Now the easy runs i.e. without result or |
|
model=1+age only did not work. The defautl combination should be 1 |
|
and not 0 because everything hasn't been tranformed yet. |
|
|
|
Revision 1.337 2022/09/02 14:26:02 brouard |
|
Summary: version 0.99r35 |
|
|
|
* src/imach.c: Version 0.99r35 because it outputs same results with |
|
1+age+V1+V1*age for females and 1+age for females only |
|
(education=1 noweight) |
|
|
|
Revision 1.336 2022/08/31 09:52:36 brouard |
|
*** empty log message *** |
|
|
Revision 1.335 2022/08/31 08:23:16 brouard |
Revision 1.335 2022/08/31 08:23:16 brouard |
Summary: improvements... |
Summary: improvements... |
|
|
Line 1248 typedef struct {
|
Line 1301 typedef struct {
|
#define MAXLINE 2048 /* Was 256 and 1024. Overflow with 312 with 2 states and 4 covariates. Should be ok */ |
#define MAXLINE 2048 /* Was 256 and 1024. Overflow with 312 with 2 states and 4 covariates. Should be ok */ |
|
|
#define GNUPLOTPROGRAM "gnuplot" |
#define GNUPLOTPROGRAM "gnuplot" |
|
#define GNUPLOTVERSION 5.1 |
|
double gnuplotversion=GNUPLOTVERSION; |
/*#define GNUPLOTPROGRAM "..\\gp37mgw\\wgnuplot"*/ |
/*#define GNUPLOTPROGRAM "..\\gp37mgw\\wgnuplot"*/ |
#define FILENAMELENGTH 256 |
#define FILENAMELENGTH 256 |
|
|
Line 1288 typedef struct {
|
Line 1343 typedef struct {
|
/* $State$ */ |
/* $State$ */ |
#include "version.h" |
#include "version.h" |
char version[]=__IMACH_VERSION__; |
char version[]=__IMACH_VERSION__; |
char copyright[]="August 2022,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015-2020, Nihon University 2021-202, INED 2000-2022"; |
char copyright[]="September 2022,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015-2020, Nihon University 2021-202, INED 2000-2022"; |
char fullversion[]="$Revision$ $Date$"; |
char fullversion[]="$Revision$ $Date$"; |
char strstart[80]; |
char strstart[80]; |
char optionfilext[10], optionfilefiname[FILENAMELENGTH]; |
char optionfilext[10], optionfilefiname[FILENAMELENGTH]; |
int erreur=0, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */ |
int erreur=0, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */ |
|
int debugILK=0; /* debugILK is set by a #d in a comment line */ |
int nagesqr=0, nforce=0; /* nagesqr=1 if model is including age*age, number of forces */ |
int nagesqr=0, nforce=0; /* nagesqr=1 if model is including age*age, number of forces */ |
/* Number of covariates model (1)=V2+V1+ V3*age+V2*V4 */ |
/* Number of covariates model (1)=V2+V1+ V3*age+V2*V4 */ |
/* Model(2) V1 + V2 + V3 + V8 + V7*V8 + V5*V6 + V8*age + V3*age + age*age */ |
/* Model(2) V1 + V2 + V3 + V8 + V7*V8 + V5*V6 + V8*age + V3*age + age*age */ |
Line 1305 int cptcovprodnoage=0; /**< Number of co
|
Line 1361 int cptcovprodnoage=0; /**< Number of co
|
int cptcoveff=0; /* Total number of single dummy covariates (fixed or time varying) to vary for printing results (2**cptcoveff combinations of dummies)(computed in tricode as cptcov) */ |
int cptcoveff=0; /* Total number of single dummy covariates (fixed or time varying) to vary for printing results (2**cptcoveff combinations of dummies)(computed in tricode as cptcov) */ |
int ncovf=0; /* Total number of effective fixed covariates (dummy or quantitative) in the model */ |
int ncovf=0; /* Total number of effective fixed covariates (dummy or quantitative) in the model */ |
int ncovv=0; /* Total number of effective (wave) varying covariates (dummy or quantitative) in the model */ |
int ncovv=0; /* Total number of effective (wave) varying covariates (dummy or quantitative) in the model */ |
|
int ncovvt=0; /* Total number of effective (wave) varying covariates (dummy or quantitative or products [without age]) in the model */ |
int ncova=0; /* Total number of effective (wave and stepm) varying with age covariates (dummy of quantitative) in the model */ |
int ncova=0; /* Total number of effective (wave and stepm) varying with age covariates (dummy of quantitative) in the model */ |
int nsd=0; /**< Total number of single dummy variables (output) */ |
int nsd=0; /**< Total number of single dummy variables (output) */ |
int nsq=0; /**< Total number of single quantitative variables (output) */ |
int nsq=0; /**< Total number of single quantitative variables (output) */ |
Line 1320 int npar=NPARMAX; /* Number of parameter
|
Line 1377 int npar=NPARMAX; /* Number of parameter
|
int nlstate=2; /* Number of live states */ |
int nlstate=2; /* Number of live states */ |
int ndeath=1; /* Number of dead states */ |
int ndeath=1; /* Number of dead states */ |
int ncovmodel=0, ncovcol=0; /* Total number of covariables including constant a12*1 +b12*x ncovmodel=2 */ |
int ncovmodel=0, ncovcol=0; /* Total number of covariables including constant a12*1 +b12*x ncovmodel=2 */ |
int nqv=0, ntv=0, nqtv=0; /* Total number of quantitative variables, time variable (dummy), quantitative and time variable */ |
int nqv=0, ntv=0, nqtv=0; /* Total number of quantitative variables, time variable (dummy), quantitative and time variable*/ |
|
int ncovcolt=0; /* ncovcolt=ncovcol+nqv+ntv+nqtv; total of covariates in the data, not in the model equation*/ |
int popbased=0; |
int popbased=0; |
|
|
int *wav; /* Number of waves for this individuual 0 is possible */ |
int *wav; /* Number of waves for this individuual 0 is possible */ |
Line 1469 double **covar; /**< covar[j,i], value
|
Line 1527 double **covar; /**< covar[j,i], value
|
* covar=matrix(0,NCOVMAX,1,n); |
* covar=matrix(0,NCOVMAX,1,n); |
* cov[Tage[kk]+2]=covar[Tvar[Tage[kk]]][i]*age; */ |
* cov[Tage[kk]+2]=covar[Tvar[Tage[kk]]][i]*age; */ |
double **coqvar; /* Fixed quantitative covariate nqv */ |
double **coqvar; /* Fixed quantitative covariate nqv */ |
double ***cotvar; /* Time varying covariate ntv */ |
double ***cotvar; /* Time varying covariate start at ncovcol + nqv + (1 to ntv) */ |
double ***cotqvar; /* Time varying quantitative covariate itqv */ |
double ***cotqvar; /* Time varying quantitative covariate itqv */ |
double idx; |
double idx; |
int **nbcode, *Tvar; /**< model=V2 => Tvar[1]= 2 */ |
int **nbcode, *Tvar; /**< model=V2 => Tvar[1]= 2 */ |
Line 1481 int **nbcode, *Tvar; /**< model=V2 => Tv
|
Line 1539 int **nbcode, *Tvar; /**< model=V2 => Tv
|
* cptcovn number of covariates (not including constant and age or age*age) = number of plus sign + 1 = 10+1=11 |
* cptcovn number of covariates (not including constant and age or age*age) = number of plus sign + 1 = 10+1=11 |
* For time varying covariate, quanti or dummies |
* For time varying covariate, quanti or dummies |
* cotqvar[wav][iv(1 to nqtv)][i]= [1][12][i]=(V12) quanti |
* cotqvar[wav][iv(1 to nqtv)][i]= [1][12][i]=(V12) quanti |
* cotvar[wav][ntv+iv][i]= [3+(1 to nqtv)][i]=(V12) quanti |
* cotvar[wav][ncovcol+nqv+ iv(1 to nqtv)][i]= [(1 to nqtv)][i]=(V12) quanti |
* cotvar[wav][iv(1 to ntv)][i]= [1][1][i]=(V9) dummies at wav 1 |
* cotvar[wav][iv(1 to ntv)][i]= [1][1][i]=(V9) dummies at wav 1 |
* cotvar[wav][iv(1 to ntv)][i]= [1][2][i]=(V10) dummies at wav 1 |
* cotvar[wav][iv(1 to ntv)][i]= [1][2][i]=(V10) dummies at wav 1 |
* covar[Vk,i], value of the Vkth fixed covariate dummy or quanti for individual i: |
* covar[Vk,i], value of the Vkth fixed covariate dummy or quanti for individual i: |
Line 1494 int **nbcode, *Tvar; /**< model=V2 => Tv
|
Line 1552 int **nbcode, *Tvar; /**< model=V2 => Tv
|
# States 1=Coresidence, 2 Living alone, 3 Institution |
# States 1=Coresidence, 2 Living alone, 3 Institution |
# V1=sex, V2=raedyrs Quant Fixed, State=livarnb4..livarnb11, V3=iadl4..iald11, V4=adlw4..adlw11, V5=r4bmi..r11bmi |
# V1=sex, V2=raedyrs Quant Fixed, State=livarnb4..livarnb11, V3=iadl4..iald11, V4=adlw4..adlw11, V5=r4bmi..r11bmi |
*/ |
*/ |
/* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
/* V5+V4+ V3+V4*V3 +V5*age+V2 +V1*V2+V1*age+V1 */ |
/* k 1 2 3 4 5 6 7 8 9 */ |
/* kmodel 1 2 3 4 5 6 7 8 9 */ |
/*Typevar[k]= 0 0 0 2 1 0 2 1 0 *//*0 for simple covariate (dummy, quantitative,*/ |
/*Typevar[k]= 0 0 0 2 1 0 2 1 0 *//*0 for simple covariate (dummy, quantitative,*/ |
/* fixed or varying), 1 for age product, 2 for*/ |
/* fixed or varying), 1 for age product, 2 for*/ |
/* product */ |
/* product */ |
Line 1505 int **nbcode, *Tvar; /**< model=V2 => Tv
|
Line 1563 int **nbcode, *Tvar; /**< model=V2 => Tv
|
/*Tvar[k]= 5 4 3 6 5 2 7 1 1 */ |
/*Tvar[k]= 5 4 3 6 5 2 7 1 1 */ |
/* nsd 1 2 3 */ /* Counting single dummies covar fixed or tv */ |
/* nsd 1 2 3 */ /* Counting single dummies covar fixed or tv */ |
/*TnsdVar[Tvar] 1 2 3 */ |
/*TnsdVar[Tvar] 1 2 3 */ |
|
/*Tvaraff[nsd] 4 3 1 */ /* ID of single dummy cova fixed or timevary*/ |
/*TvarsD[nsd] 4 3 1 */ /* ID of single dummy cova fixed or timevary*/ |
/*TvarsD[nsd] 4 3 1 */ /* ID of single dummy cova fixed or timevary*/ |
/*TvarsDind[k] 2 3 9 */ /* position K of single dummy cova */ |
/*TvarsDind[nsd] 2 3 9 */ /* position K of single dummy cova */ |
/* nsq 1 2 */ /* Counting single quantit tv */ |
/* nsq 1 2 */ /* Counting single quantit tv */ |
/* TvarsQ[k] 5 2 */ /* Number of single quantitative cova */ |
/* TvarsQ[k] 5 2 */ /* Number of single quantitative cova */ |
/* TvarsQind 1 6 */ /* position K of single quantitative cova */ |
/* TvarsQind 1 6 */ /* position K of single quantitative cova */ |
Line 1561 int *TvarVD; /* TvarVD[1]=V5 in V5+V4+V3
|
Line 1620 int *TvarVD; /* TvarVD[1]=V5 in V5+V4+V3
|
int *TvarVDind; /* TvarVDind[1]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple fixed quantitative variable */ |
int *TvarVDind; /* TvarVDind[1]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple fixed quantitative variable */ |
int *TvarVQ; /* TvarVQ[1]=V5 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple time varying quantitative variable */ |
int *TvarVQ; /* TvarVQ[1]=V5 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple time varying quantitative variable */ |
int *TvarVQind; /* TvarVQind[1]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple time varying quantitative variable */ |
int *TvarVQind; /* TvarVQind[1]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple time varying quantitative variable */ |
|
int *TvarVV; /* We count ncovvt time varying covariates (single or products without age) and put their name into TvarVV */ |
|
int *TvarVVind; /* We count ncovvt time varying covariates (single or products without age) and put their name into TvarVV */ |
|
/*# ID V1 V2 weight birth death 1st s1 V3 V4 V5 2nd s2 */ |
|
/* model V1+V3+age*V1+age*V3+V1*V3 */ |
|
/* Tvar={1, 3, 1, 3, 6}, the 6 comes from the fact that there are already V1, V2, V3, V4, V5 native covariates */ |
|
/* TvarVV={3,1,3}, for V3 and then the product V1*V3 is decomposed into V1 and V3 */ |
|
/* TvarVVind={2,5,5}, for V3 and then the product V1*V3 is decomposed into V1 and V3 */ |
int *Tvarsel; /**< Selected covariates for output */ |
int *Tvarsel; /**< Selected covariates for output */ |
double *Tvalsel; /**< Selected modality value of covariate for output */ |
double *Tvalsel; /**< Selected modality value of covariate for output */ |
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 */ |
Line 2499 void powell(double p[], double **xi, int
|
Line 2564 void powell(double p[], double **xi, int
|
xits=vector(1,n); |
xits=vector(1,n); |
*fret=(*func)(p); |
*fret=(*func)(p); |
for (j=1;j<=n;j++) pt[j]=p[j]; |
for (j=1;j<=n;j++) pt[j]=p[j]; |
rcurr_time = time(NULL); |
rcurr_time = time(NULL); |
|
fp=(*fret); /* Initialisation */ |
for (*iter=1;;++(*iter)) { |
for (*iter=1;;++(*iter)) { |
ibig=0; |
ibig=0; |
del=0.0; |
del=0.0; |
Line 2507 void powell(double p[], double **xi, int
|
Line 2573 void powell(double p[], double **xi, int
|
/* (void) gettimeofday(&curr_time,&tzp); */ |
/* (void) gettimeofday(&curr_time,&tzp); */ |
rcurr_time = time(NULL); |
rcurr_time = time(NULL); |
curr_time = *localtime(&rcurr_time); |
curr_time = *localtime(&rcurr_time); |
printf("\nPowell iter=%d -2*LL=%.12f gain=%.12f=%.3g %ld sec. %ld sec.",*iter,*fret, fp-*fret,fp-*fret, rcurr_time-rlast_time, rcurr_time-rstart_time);fflush(stdout); |
/* printf("\nPowell iter=%d -2*LL=%.12f gain=%.12f=%.3g %ld sec. %ld sec.",*iter,*fret, fp-*fret,fp-*fret, rcurr_time-rlast_time, rcurr_time-rstart_time);fflush(stdout); */ |
fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f gain=%.12f=%.3g %ld sec. %ld sec.",*iter,*fret, fp-*fret,fp-*fret,rcurr_time-rlast_time, rcurr_time-rstart_time); fflush(ficlog); |
/* fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f gain=%.12f=%.3g %ld sec. %ld sec.",*iter,*fret, fp-*fret,fp-*fret,rcurr_time-rlast_time, rcurr_time-rstart_time); fflush(ficlog); */ |
|
printf("\nPowell iter=%d -2*LL=%.12f gain=%.3lg %ld sec. %ld sec.",*iter,*fret,fp-*fret, rcurr_time-rlast_time, rcurr_time-rstart_time);fflush(stdout); |
|
fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f gain=%.3lg %ld sec. %ld sec.",*iter,*fret,fp-*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); */ |
fp=(*fret); /* From former iteration or initial value */ |
fp=(*fret); /* From former iteration or initial value */ |
for (i=1;i<=n;i++) { |
for (i=1;i<=n;i++) { |
Line 2811 void powell(double p[], double **xi, int
|
Line 2879 void powell(double p[], double **xi, int
|
|
|
double **prevalim(double **prlim, int nlstate, double x[], double age, double **oldm, double **savm, double ftolpl, int *ncvyear, int ij, int nres) |
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 combination ij |
/**< Computes the prevalence limit in each live state at age x and for covariate combination ij . Nicely done |
* (and selected quantitative values in nres) |
* (and selected quantitative values in nres) |
* by left multiplying the unit |
* 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 |
Line 3259 double **pmij(double **ps, double *cov,
|
Line 3327 double **pmij(double **ps, double *cov,
|
for(i=1; i<= nlstate; i++){ |
for(i=1; i<= nlstate; i++){ |
s1=0; |
s1=0; |
for(j=1; j<i; j++){ |
for(j=1; j<i; j++){ |
|
/* printf("debug1 %d %d ps=%lf exp(ps)=%lf \n",i,j,ps[i][j],exp(ps[i][j])); */ |
s1+=exp(ps[i][j]); /* In fact sums pij/pii */ |
s1+=exp(ps[i][j]); /* In fact sums pij/pii */ |
/* printf("debug1 %d %d ps=%lf exp(ps)=%lf s1+=%lf\n",i,j,ps[i][j],exp(ps[i][j]),s1); */ |
|
} |
} |
for(j=i+1; j<=nlstate+ndeath; j++){ |
for(j=i+1; j<=nlstate+ndeath; j++){ |
|
/* printf("debug2 %d %d ps=%lf exp(ps)=%lf \n",i,j,ps[i][j],exp(ps[i][j])); */ |
s1+=exp(ps[i][j]); /* In fact sums pij/pii */ |
s1+=exp(ps[i][j]); /* In fact sums pij/pii */ |
/* printf("debug2 %d %d ps=%lf exp(ps)=%lf s1+=%lf\n",i,j,ps[i][j],exp(ps[i][j]),s1); */ |
|
} |
} |
/* s1= sum_{j<>i} pij/pii=(1-pii)/pii and thus pii is known from s1 */ |
/* s1= sum_{j<>i} pij/pii=(1-pii)/pii and thus pii is known from s1 */ |
ps[i][i]=1./(s1+1.); |
ps[i][i]=1./(s1+1.); |
Line 3508 double **matprod2(double **out, double *
|
Line 3576 double **matprod2(double **out, double *
|
|
|
double ***hpxij(double ***po, int nhstepm, double age, int hstepm, double *x, int nlstate, int stepm, double **oldm, double **savm, int ij, int nres ) |
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 dummies values in each resultline (loop on ij to find the corresponding combination) to over |
/* Already optimized with precov. |
|
Computes the transition matrix starting at age 'age' and dummies values in each resultline (loop on ij to find the corresponding combination) to over |
'nhstepm*hstepm*stepm' months (i.e. until |
'nhstepm*hstepm*stepm' months (i.e. until |
age (in years) age+nhstepm*hstepm*stepm/12) by multiplying |
age (in years) age+nhstepm*hstepm*stepm/12) by multiplying |
nhstepm*hstepm matrices. |
nhstepm*hstepm matrices. |
Line 3839 double ***hbxij(double ***po, int nhstep
|
Line 3908 double ***hbxij(double ***po, int nhstep
|
/*************** log-likelihood *************/ |
/*************** log-likelihood *************/ |
double func( double *x) |
double func( double *x) |
{ |
{ |
int i, ii, j, k, mi, d, kk; |
int i, ii, j, k, mi, d, kk, kf=0; |
int ioffset=0; |
int ioffset=0; |
|
int ipos=0,iposold=0,ncovv=0; |
|
|
|
double cotvarv, cotvarvold; |
double l, ll[NLSTATEMAX+1], cov[NCOVMAX+1]; |
double l, ll[NLSTATEMAX+1], cov[NCOVMAX+1]; |
double **out; |
double **out; |
double lli; /* Individual log likelihood */ |
double lli; /* Individual log likelihood */ |
int s1, s2; |
int s1, s2; |
int iv=0, iqv=0, itv=0, iqtv=0 ; /* Index of varying covariate, fixed quantitative cov, time varying covariate, quantitative time varying covariate */ |
int iv=0, iqv=0, itv=0, iqtv=0 ; /* Index of varying covariate, fixed quantitative cov, time varying covariate, quantitative time varying covariate */ |
|
|
double bbh, survp; |
double bbh, survp; |
long ipmx; |
|
double agexact; |
double agexact; |
|
double agebegin, ageend; |
/*extern weight */ |
/*extern weight */ |
/* We are differentiating ll according to initial status */ |
/* We are differentiating ll according to initial status */ |
/* for (i=1;i<=npar;i++) printf("%f ", x[i]);*/ |
/* for (i=1;i<=npar;i++) printf("%f ", x[i]);*/ |
Line 3871 double func( double *x)
|
Line 3944 double func( double *x)
|
*/ |
*/ |
ioffset=2+nagesqr ; |
ioffset=2+nagesqr ; |
/* Fixed */ |
/* Fixed */ |
for (k=1; k<=ncovf;k++){ /* For each fixed covariate dummu or quant or prod */ |
for (kf=1; kf<=ncovf;kf++){ /* For each fixed covariate dummu or quant or prod */ |
/* # V1=sex, V2=raedyrs Quant Fixed, State=livarnb4..livarnb11, V3=iadl4..iald11, V4=adlw4..adlw11, V5=r4bmi..r11bmi */ |
/* # V1=sex, V2=raedyrs Quant Fixed, State=livarnb4..livarnb11, V3=iadl4..iald11, V4=adlw4..adlw11, V5=r4bmi..r11bmi */ |
/* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
/* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
/* TvarF[1]=Tvar[6]=2, TvarF[2]=Tvar[7]=7, TvarF[3]=Tvar[9]=1 ID of fixed covariates or product V2, V1*V2, V1 */ |
/* TvarF[1]=Tvar[6]=2, TvarF[2]=Tvar[7]=7, TvarF[3]=Tvar[9]=1 ID of fixed covariates or product V2, V1*V2, V1 */ |
/* TvarFind; TvarFind[1]=6, TvarFind[2]=7, TvarFind[3]=9 *//* Inverse V2(6) is first fixed (single or prod) */ |
/* TvarFind; TvarFind[1]=6, TvarFind[2]=7, TvarFind[3]=9 *//* Inverse V2(6) is first fixed (single or prod) */ |
cov[ioffset+TvarFind[k]]=covar[Tvar[TvarFind[k]]][i];/* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1, only V1 is fixed (TvarFind[1]=6)*/ |
cov[ioffset+TvarFind[kf]]=covar[Tvar[TvarFind[kf]]][i];/* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1, only V1 is fixed (TvarFind[1]=6)*/ |
/* V1*V2 (7) TvarFind[2]=7, TvarFind[3]=9 */ |
/* V1*V2 (7) TvarFind[2]=7, TvarFind[3]=9 */ |
} |
} |
/* In model V2+V1*V4+age*V3+V3*V2 Tvar[1] is V2, Tvar[2=V1*V4] |
/* In model V2+V1*V4+age*V3+V3*V2 Tvar[1] is V2, Tvar[2=V1*V4] |
Line 3887 double func( double *x)
|
Line 3960 double func( double *x)
|
mw[mi][i] is real wave of the mi th effectve wave */ |
mw[mi][i] is real wave of the mi th effectve wave */ |
/* Then statuses are computed at each begin and end of an effective wave s1=s[ mw[mi][i] ][i]; |
/* Then statuses are computed at each begin and end of an effective wave s1=s[ mw[mi][i] ][i]; |
s2=s[mw[mi+1][i]][i]; |
s2=s[mw[mi+1][i]][i]; |
And the iv th varying covariate is the cotvar[mw[mi+1][i]][iv][i] |
And the iv th varying covariate is the cotvar[mw[mi+1][i]][iv][i] because now is moved after nvocol+nqv |
But if the variable is not in the model TTvar[iv] is the real variable effective in the model: |
But if the variable is not in the model TTvar[iv] is the real variable effective in the model: |
meaning that decodemodel should be used cotvar[mw[mi+1][i]][TTvar[iv]][i] |
meaning that decodemodel should be used cotvar[mw[mi+1][i]][TTvar[iv]][i] |
*/ |
*/ |
for(mi=1; mi<= wav[i]-1; mi++){ |
for(mi=1; mi<= wav[i]-1; mi++){ /* Varying with waves */ |
for(k=1; k <= ncovv ; k++){ /* Varying covariates in the model (single and product but no age )"V5+V4+V3+V4*V3+V5*age+V1*age+V1" +TvarVind 1,2,3,4(V4*V3) Tvar[1]@7{5, 4, 3, 6, 5, 1, 1 ; 6 because the created covar is after V5 and is 6, minus 1+1, 3,2,1,4 positions in cotvar*/ |
/* Wave varying (but not age varying) */ |
/* cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]][i]; but where is the crossproduct? */ |
/* for(k=1; k <= ncovv ; k++){ /\* Varying covariates in the model (single and product but no age )"V5+V4+V3+V4*V3+V5*age+V1*age+V1" +TvarVind 1,2,3,4(V4*V3) Tvar[1]@7{5, 4, 3, 6, 5, 1, 1 ; 6 because the created covar is after V5 and is 6, minus 1+1, 3,2,1,4 positions in cotvar*\/ */ |
cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]-ncovcol-nqv][i]; |
/* /\* cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]][i]; but where is the crossproduct? *\/ */ |
} |
/* cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]-ncovcol-nqv][i]; */ |
|
/* } */ |
|
for(ncovv=1, iposold=0; ncovv <= ncovvt ; ncovv++){ /* Varying covariates (single and product but no age )*/ |
|
itv=TvarVV[ncovv]; /* TvarVV={3, 1, 3} gives the name of each varying covariate */ |
|
ipos=TvarVVind[ncovv]; /* TvarVVind={2, 5, 5] gives the position in the model of the ncovv th varying covariate*/ |
|
if(TvarFind[itv]==0){ /* Not a fixed covariate */ |
|
cotvarv=cotvar[mw[mi][i]][TvarVV[ncovv]][i]; /* cotvar[wav][ncovcol+nqv+iv][i] */ |
|
}else{ /* fixed covariate */ |
|
cotvarv=covar[Tvar[TvarFind[itv]]][i]; |
|
} |
|
if(ipos!=iposold){ /* Not a product or first of a product */ |
|
cotvarvold=cotvarv; |
|
}else{ /* A second product */ |
|
cotvarv=cotvarv*cotvarvold; |
|
} |
|
iposold=ipos; |
|
cov[ioffset+ipos]=cotvarv; |
|
} |
|
/* for(itv=1; itv <= ntveff; itv++){ /\* Varying dummy covariates (single??)*\/ */ |
|
/* iv= Tvar[Tmodelind[ioffset-2-nagesqr-cptcovage+itv]]-ncovcol-nqv; /\* Counting the # varying covariate from 1 to ntveff *\/ */ |
|
/* cov[ioffset+iv]=cotvar[mw[mi][i]][iv][i]; */ |
|
/* k=ioffset-2-nagesqr-cptcovage+itv; /\* position in simple model *\/ */ |
|
/* cov[ioffset+itv]=cotvar[mw[mi][i]][TmodelInvind[itv]][i]; */ |
|
/* printf(" i=%d,mi=%d,itv=%d,TmodelInvind[itv]=%d,cotvar[mw[mi][i]][TmodelInvind[itv]][i]=%f\n", i, mi, itv, TmodelInvind[itv],cotvar[mw[mi][i]][TmodelInvind[itv]][i]); */ |
|
/* } */ |
|
/* for(iqtv=1; iqtv <= nqtveff; iqtv++){ /\* Varying quantitatives covariates *\/ */ |
|
/* iv=TmodelInvQind[iqtv]; /\* Counting the # varying covariate from 1 to ntveff *\/ */ |
|
/* /\* printf(" i=%d,mi=%d,iqtv=%d,TmodelInvQind[iqtv]=%d,cotqvar[mw[mi][i]][TmodelInvQind[iqtv]][i]=%f\n", i, mi, iqtv, TmodelInvQind[iqtv],cotqvar[mw[mi][i]][TmodelInvQind[iqtv]][i]); *\/ */ |
|
/* cov[ioffset+ntveff+iqtv]=cotqvar[mw[mi][i]][TmodelInvQind[iqtv]][i]; */ |
|
/* } */ |
|
/* for products of time varying to be done */ |
for (ii=1;ii<=nlstate+ndeath;ii++) |
for (ii=1;ii<=nlstate+ndeath;ii++) |
for (j=1;j<=nlstate+ndeath;j++){ |
for (j=1;j<=nlstate+ndeath;j++){ |
oldm[ii][j]=(ii==j ? 1.0 : 0.0); |
oldm[ii][j]=(ii==j ? 1.0 : 0.0); |
savm[ii][j]=(ii==j ? 1.0 : 0.0); |
savm[ii][j]=(ii==j ? 1.0 : 0.0); |
} |
} |
|
|
|
agebegin=agev[mw[mi][i]][i]; /* Age at beginning of effective wave */ |
|
ageend=agev[mw[mi][i]][i] + (dh[mi][i])*stepm/YEARM; /* Age at end of effective wave and at the end of transition */ |
for(d=0; d<dh[mi][i]; d++){ |
for(d=0; d<dh[mi][i]; d++){ |
newm=savm; |
newm=savm; |
agexact=agev[mw[mi][i]][i]+d*stepm/YEARM; |
agexact=agev[mw[mi][i]][i]+d*stepm/YEARM; |
Line 3911 double func( double *x)
|
Line 4017 double func( double *x)
|
if(!FixedV[Tvar[Tage[kk]]]) |
if(!FixedV[Tvar[Tage[kk]]]) |
cov[Tage[kk]+2+nagesqr]=covar[Tvar[Tage[kk]]][i]*agexact; /* Tage[kk] gives the data-covariate associated with age */ |
cov[Tage[kk]+2+nagesqr]=covar[Tvar[Tage[kk]]][i]*agexact; /* Tage[kk] gives the data-covariate associated with age */ |
else |
else |
cov[Tage[kk]+2+nagesqr]=cotvar[mw[mi][i]][Tvar[Tage[kk]]-ncovcol-nqv][i]*agexact; |
cov[Tage[kk]+2+nagesqr]=cotvar[mw[mi][i]][Tvar[Tage[kk]]][i]*agexact; /* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
} |
} |
out=matprod2(newm,oldm,1,nlstate+ndeath,1,nlstate+ndeath, |
out=matprod2(newm,oldm,1,nlstate+ndeath,1,nlstate+ndeath, |
1,nlstate+ndeath,pmij(pmmij,cov,ncovmodel,x,nlstate)); |
1,nlstate+ndeath,pmij(pmmij,cov,ncovmodel,x,nlstate)); |
Line 3991 double func( double *x)
|
Line 4097 double func( double *x)
|
/*survp += out[s1][j]; */ |
/*survp += out[s1][j]; */ |
lli= log(survp); |
lli= log(survp); |
} |
} |
else if (s2==-4) { |
/* else if (s2==-4) { */ |
for (j=3,survp=0. ; j<=nlstate; j++) |
/* for (j=3,survp=0. ; j<=nlstate; j++) */ |
survp += (1.+bbh)*out[s1][j]- bbh*savm[s1][j]; |
/* survp += (1.+bbh)*out[s1][j]- bbh*savm[s1][j]; */ |
lli= log(survp); |
/* lli= log(survp); */ |
} |
/* } */ |
else if (s2==-5) { |
/* else if (s2==-5) { */ |
for (j=1,survp=0. ; j<=2; j++) |
/* for (j=1,survp=0. ; j<=2; j++) */ |
survp += (1.+bbh)*out[s1][j]- bbh*savm[s1][j]; |
/* survp += (1.+bbh)*out[s1][j]- bbh*savm[s1][j]; */ |
lli= log(survp); |
/* lli= log(survp); */ |
} |
/* } */ |
else{ |
else{ |
lli= log((1.+bbh)*out[s1][s2]- bbh*savm[s1][s2]); /* linear interpolation */ |
lli= log((1.+bbh)*out[s1][s2]- bbh*savm[s1][s2]); /* linear interpolation */ |
/* lli= (savm[s1][s2]>(double)1.e-8 ?log((1.+bbh)*out[s1][s2]- bbh*(savm[s1][s2])):log((1.+bbh)*out[s1][s2]));*/ /* linear interpolation */ |
/* lli= (savm[s1][s2]>(double)1.e-8 ?log((1.+bbh)*out[s1][s2]- bbh*(savm[s1][s2])):log((1.+bbh)*out[s1][s2]));*/ /* linear interpolation */ |
} |
} |
/*lli=(1.+bbh)*log(out[s1][s2])- bbh*log(savm[s1][s2]);*/ |
/*lli=(1.+bbh)*log(out[s1][s2])- bbh*log(savm[s1][s2]);*/ |
/*if(lli ==000.0)*/ |
/*if(lli ==000.0)*/ |
/*printf("bbh= %f lli=%f savm=%f out=%f %d\n",bbh,lli,savm[s1][s2], out[s[mw[mi][i]][i]][s[mw[mi+1][i]][i]],i); */ |
/* printf("num[i], i=%d, bbh= %f lli=%f savm=%f out=%f %d\n",bbh,lli,savm[s1][s2], out[s[mw[mi][i]][i]][s[mw[mi+1][i]][i]],i); */ |
ipmx +=1; |
ipmx +=1; |
sw += weight[i]; |
sw += weight[i]; |
ll[s[mw[mi][i]][i]] += 2*weight[i]*lli; |
ll[s[mw[mi][i]][i]] += 2*weight[i]*lli; |
Line 4024 double func( double *x)
|
Line 4130 double func( double *x)
|
cov[ioffset+TvarFind[k]]=covar[Tvar[TvarFind[k]]][i]; |
cov[ioffset+TvarFind[k]]=covar[Tvar[TvarFind[k]]][i]; |
for(mi=1; mi<= wav[i]-1; mi++){ |
for(mi=1; mi<= wav[i]-1; mi++){ |
for(k=1; k <= ncovv ; k++){ |
for(k=1; k <= ncovv ; k++){ |
cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]-ncovcol-nqv][i]; |
cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]][i]; /* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
} |
} |
for (ii=1;ii<=nlstate+ndeath;ii++) |
for (ii=1;ii<=nlstate+ndeath;ii++) |
for (j=1;j<=nlstate+ndeath;j++){ |
for (j=1;j<=nlstate+ndeath;j++){ |
Line 4071 double func( double *x)
|
Line 4177 double func( double *x)
|
if(nagesqr==1) |
if(nagesqr==1) |
cov[3]= agexact*agexact; |
cov[3]= agexact*agexact; |
for (kk=1; kk<=cptcovage;kk++) { |
for (kk=1; kk<=cptcovage;kk++) { |
cov[Tage[kk]+2+nagesqr]=covar[Tvar[Tage[kk]]][i]*agexact; |
if(!FixedV[Tvar[Tage[kk]]]) |
|
cov[Tage[kk]+2+nagesqr]=covar[Tvar[Tage[kk]]][i]*agexact; /* Tage[kk] gives the data-covariate associated with age */ |
|
else |
|
cov[Tage[kk]+2+nagesqr]=cotvar[mw[mi][i]][Tvar[Tage[kk]]][i]*agexact; /* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
} |
} |
out=matprod2(newm,oldm,1,nlstate+ndeath,1,nlstate+ndeath, |
out=matprod2(newm,oldm,1,nlstate+ndeath,1,nlstate+ndeath, |
1,nlstate+ndeath,pmij(pmmij,cov,ncovmodel,x,nlstate)); |
1,nlstate+ndeath,pmij(pmmij,cov,ncovmodel,x,nlstate)); |
Line 4127 double func( double *x)
|
Line 4236 double func( double *x)
|
ipmx +=1; |
ipmx +=1; |
sw += weight[i]; |
sw += weight[i]; |
ll[s[mw[mi][i]][i]] += 2*weight[i]*lli; |
ll[s[mw[mi][i]][i]] += 2*weight[i]*lli; |
/* printf("i=%6d s1=%1d s2=%1d mi=%1d mw=%1d dh=%3d prob=%10.6f w=%6.4f out=%10.6f sav=%10.6f\n",i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],out[s1][s2],savm[s1][s2]); */ |
/* printf("num[i]=%09ld, i=%6d s1=%1d s2=%1d mi=%1d mw=%1d dh=%3d prob=%10.6f w=%6.4f out=%10.6f sav=%10.6f\n",num[i],i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],(s2==-1? -1: out[s1][s2]),(s2==-1? -1: savm[s1][s2])); */ |
} /* end of wave */ |
} /* end of wave */ |
} /* end of individual */ |
} /* end of individual */ |
}else{ /* ml=5 no inter-extrapolation no jackson =0.8a */ |
}else{ /* ml=5 no inter-extrapolation no jackson =0.8a */ |
Line 4146 double func( double *x)
|
Line 4255 double func( double *x)
|
if(nagesqr==1) |
if(nagesqr==1) |
cov[3]= agexact*agexact; |
cov[3]= agexact*agexact; |
for (kk=1; kk<=cptcovage;kk++) { |
for (kk=1; kk<=cptcovage;kk++) { |
cov[Tage[kk]+2+nagesqr]=covar[Tvar[Tage[kk]]][i]*agexact; |
if(!FixedV[Tvar[Tage[kk]]]) |
|
cov[Tage[kk]+2+nagesqr]=covar[Tvar[Tage[kk]]][i]*agexact; /* Tage[kk] gives the data-covariate associated with age */ |
|
else |
|
cov[Tage[kk]+2+nagesqr]=cotvar[mw[mi][i]][Tvar[Tage[kk]]][i]*agexact; /* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
} |
} |
|
|
out=matprod2(newm,oldm,1,nlstate+ndeath,1,nlstate+ndeath, |
out=matprod2(newm,oldm,1,nlstate+ndeath,1,nlstate+ndeath, |
Line 4177 double funcone( double *x)
|
Line 4289 double funcone( double *x)
|
/* Same as func but slower because of a lot of printf and if */ |
/* Same as func but slower because of a lot of printf and if */ |
int i, ii, j, k, mi, d, kk, kf=0; |
int i, ii, j, k, mi, d, kk, kf=0; |
int ioffset=0; |
int ioffset=0; |
|
int ipos=0,iposold=0,ncovv=0; |
|
|
|
double cotvarv, cotvarvold; |
double l, ll[NLSTATEMAX+1], cov[NCOVMAX+1]; |
double l, ll[NLSTATEMAX+1], cov[NCOVMAX+1]; |
double **out; |
double **out; |
double lli; /* Individual log likelihood */ |
double lli; /* Individual log likelihood */ |
Line 4198 double funcone( double *x)
|
Line 4313 double funcone( double *x)
|
for(k=1; k<=nlstate; k++) ll[k]=0.; |
for(k=1; k<=nlstate; k++) ll[k]=0.; |
ioffset=0; |
ioffset=0; |
for (i=1,ipmx=0, sw=0.; i<=imx; i++){ |
for (i=1,ipmx=0, sw=0.; i<=imx; i++){ |
|
/* Computes the values of the ncovmodel covariates of the model |
|
depending if the covariates are fixed or varying (age dependent) and stores them in cov[] |
|
Then computes with function pmij which return a matrix p[i][j] giving the elementary probability |
|
to be observed in j being in i according to the model. |
|
*/ |
/* ioffset=2+nagesqr+cptcovage; */ |
/* ioffset=2+nagesqr+cptcovage; */ |
ioffset=2+nagesqr; |
ioffset=2+nagesqr; |
/* Fixed */ |
/* Fixed */ |
/* for (k=1; k<=cptcovn;k++) cov[2+nagesqr+k]=covar[Tvar[k]][i]; */ |
/* for (k=1; k<=cptcovn;k++) cov[2+nagesqr+k]=covar[Tvar[k]][i]; */ |
/* for (k=1; k<=ncoveff;k++){ /\* Simple and product fixed Dummy covariates without age* products *\/ */ |
/* for (k=1; k<=ncoveff;k++){ /\* Simple and product fixed Dummy covariates without age* products *\/ */ |
for (kf=1; kf<=ncovf;kf++){ /* Simple and product fixed covariates without age* products *//* Missing values are set to -1 but should be dropped */ |
for (kf=1; kf<=ncovf;kf++){ /* Simple and product fixed covariates without age* products *//* Missing values are set to -1 but should be dropped */ |
|
/* printf("Debug3 TvarFind[%d]=%d",kf, TvarFind[kf]); */ |
|
/* printf(" Tvar[TvarFind[kf]]=%d", Tvar[TvarFind[kf]]); */ |
|
/* printf(" i=%d covar[Tvar[TvarFind[kf]]][i]=%f\n",i,covar[Tvar[TvarFind[kf]]][i]); */ |
cov[ioffset+TvarFind[kf]]=covar[Tvar[TvarFind[kf]]][i];/* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1, only V1 is fixed (k=6)*/ |
cov[ioffset+TvarFind[kf]]=covar[Tvar[TvarFind[kf]]][i];/* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1, only V1 is fixed (k=6)*/ |
/* cov[ioffset+TvarFind[1]]=covar[Tvar[TvarFind[1]]][i]; */ |
/* cov[ioffset+TvarFind[1]]=covar[Tvar[TvarFind[1]]][i]; */ |
/* cov[2+6]=covar[Tvar[6]][i]; */ |
/* cov[2+6]=covar[Tvar[6]][i]; */ |
Line 4215 double funcone( double *x)
|
Line 4338 double funcone( double *x)
|
/* cov[2+9]=covar[Tvar[9]][i]; */ |
/* cov[2+9]=covar[Tvar[9]][i]; */ |
/* cov[2+9]=covar[1][i]; V1 */ |
/* cov[2+9]=covar[1][i]; V1 */ |
} |
} |
|
/* In model V2+V1*V4+age*V3+V3*V2 Tvar[1] is V2, Tvar[2=V1*V4] |
|
is 5, Tvar[3=age*V3] should not be computed because of age Tvar[4=V3*V2]=6 |
|
has been calculated etc */ |
|
/* For an individual i, wav[i] gives the number of effective waves */ |
|
/* We compute the contribution to Likelihood of each effective transition |
|
mw[mi][i] is real wave of the mi th effectve wave */ |
|
/* Then statuses are computed at each begin and end of an effective wave s1=s[ mw[mi][i] ][i]; |
|
s2=s[mw[mi+1][i]][i]; |
|
And the iv th varying covariate in the DATA is the cotvar[mw[mi+1][i]][ncovcol+nqv+iv][i] |
|
*/ |
|
/* This part may be useless now because everythin should be in covar */ |
/* for (k=1; k<=nqfveff;k++){ /\* Simple and product fixed Quantitative covariates without age* products *\/ */ |
/* for (k=1; k<=nqfveff;k++){ /\* Simple and product fixed Quantitative covariates without age* products *\/ */ |
/* cov[++ioffset]=coqvar[TvarFQ[k]][i];/\* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1, only V2 and V1*V2 is fixed (k=6 and 7?)*\/ */ |
/* cov[++ioffset]=coqvar[TvarFQ[k]][i];/\* V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1, only V2 and V1*V2 is fixed (k=6 and 7?)*\/ */ |
/* } */ |
/* } */ |
Line 4224 double funcone( double *x)
|
Line 4358 double funcone( double *x)
|
|
|
|
|
for(mi=1; mi<= wav[i]-1; mi++){ /* Varying with waves */ |
for(mi=1; mi<= wav[i]-1; mi++){ /* Varying with waves */ |
/* Wave varying (but not age varying) */ |
/* Wave varying (but not age varying) *//* V1+V3+age*V1+age*V3+V1*V3 with V4 tv and V5 tvq k= 1 to 5 and extra at V(5+1)=6 for V1*V3 */ |
for(k=1; k <= ncovv ; k++){ /* Varying covariates (single and product but no age )*/ |
/* for(k=1; k <= ncovv ; k++){ /\* Varying covariates (single and product but no age )*\/ */ |
/* cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]][i]; */ |
/* /\* cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]][i]; *\/ */ |
cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]-ncovcol-nqv][i]; |
/* cov[ioffset+TvarVind[k]]=cotvar[mw[mi][i]][Tvar[TvarVind[k]]-ncovcol-nqv][i]; */ |
} |
/* } */ |
/* for(itv=1; itv <= ntveff; itv++){ /\* Varying dummy covariates (single??)*\/ */ |
|
/* iv= Tvar[Tmodelind[ioffset-2-nagesqr-cptcovage+itv]]-ncovcol-nqv; /\* Counting the # varying covariate from 1 to ntveff *\/ */ |
/*# ID V1 V2 weight birth death 1st s1 V3 V4 V5 2nd s2 */ |
/* cov[ioffset+iv]=cotvar[mw[mi][i]][iv][i]; */ |
/* model V1+V3+age*V1+age*V3+V1*V3 */ |
/* k=ioffset-2-nagesqr-cptcovage+itv; /\* position in simple model *\/ */ |
/* Tvar={1, 3, 1, 3, 6}, the 6 comes from the fact that there are already V1, V2, V3, V4, V5 native covariates */ |
/* cov[ioffset+itv]=cotvar[mw[mi][i]][TmodelInvind[itv]][i]; */ |
/* TvarVV[1]=V3 (first time varying in the model equation, TvarVV[2]=V1 (in V1*V3) TvarVV[3]=3(V3) */ |
/* printf(" i=%d,mi=%d,itv=%d,TmodelInvind[itv]=%d,cotvar[mw[mi][i]][TmodelInvind[itv]][i]=%f\n", i, mi, itv, TmodelInvind[itv],cotvar[mw[mi][i]][TmodelInvind[itv]][i]); */ |
/* We need the position of the time varying or product in the model */ |
|
/* TvarVVind={2,5,5}, for V3 at position 2 and then the product V1*V3 is decomposed into V1 and V3 but at same position 5 */ |
|
/* TvarVV gives the variable name */ |
|
/* Other example V1 + V3 + V5 + age*V1 + age*V3 + age*V5 + V1*V3 + V3*V5 + V1*V5 |
|
* k= 1 2 3 4 5 6 7 8 9 |
|
* varying 1 2 3 4 5 |
|
* ncovv 1 2 3 4 5 6 7 8 |
|
* TvarVV[ncovv] V3 5 1 3 3 5 1 5 |
|
* TvarVVind 2 3 7 7 8 8 9 9 |
|
* TvarFind[k] 1 0 0 0 0 0 0 0 0 |
|
*/ |
|
for(ncovv=1, iposold=0; ncovv <= ncovvt ; ncovv++){ /* Varying covariates (single and product but no age) including individual from products */ |
|
itv=TvarVV[ncovv]; /* TvarVV={3, 1, 3} gives the name of each varying covariate */ |
|
ipos=TvarVVind[ncovv]; /* TvarVVind={2, 5, 5] gives the position in the model of the ncovv th varying covariate*/ |
|
if(TvarFind[itv]==0){ /* Not a fixed covariate */ |
|
cotvarv=cotvar[mw[mi][i]][TvarVV[ncovv]][i]; /* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
|
}else{ /* fixed covariate */ |
|
cotvarv=covar[Tvar[TvarFind[itv]]][i]; |
|
} |
|
if(ipos!=iposold){ /* Not a product or first of a product */ |
|
cotvarvold=cotvarv; |
|
}else{ /* A second product */ |
|
cotvarv=cotvarv*cotvarvold; |
|
} |
|
iposold=ipos; |
|
cov[ioffset+ipos]=cotvarv; |
|
/* For products */ |
|
} |
|
/* for(itv=1; itv <= ntveff; itv++){ /\* Varying dummy covariates single *\/ */ |
|
/* iv=TvarVDind[itv]; /\* iv, position in the model equation of time varying covariate itv *\/ */ |
|
/* /\* "V1+V3+age*V1+age*V3+V1*V3" with V3 time varying *\/ */ |
|
/* /\* 1 2 3 4 5 *\/ */ |
|
/* /\*itv 1 *\/ */ |
|
/* /\* TvarVInd[1]= 2 *\/ */ |
|
/* /\* iv= Tvar[Tmodelind[itv]]-ncovcol-nqv; /\\* Counting the # varying covariate from 1 to ntveff *\\/ *\/ */ |
|
/* /\* iv= Tvar[Tmodelind[ioffset-2-nagesqr-cptcovage+itv]]-ncovcol-nqv; *\/ */ |
|
/* /\* cov[ioffset+iv]=cotvar[mw[mi][i]][iv][i]; *\/ */ |
|
/* /\* k=ioffset-2-nagesqr-cptcovage+itv; /\\* position in simple model *\\/ *\/ */ |
|
/* /\* cov[ioffset+iv]=cotvar[mw[mi][i]][TmodelInvind[itv]][i]; *\/ */ |
|
/* cov[ioffset+iv]=cotvar[mw[mi][i]][itv][i]; */ |
|
/* /\* printf(" i=%d,mi=%d,itv=%d,TmodelInvind[itv]=%d,cotvar[mw[mi][i]][itv][i]=%f\n", i, mi, itv, TvarVDind[itv],cotvar[mw[mi][i]][itv][i]); *\/ */ |
|
/* } */ |
/* for(iqtv=1; iqtv <= nqtveff; iqtv++){ /\* Varying quantitatives covariates *\/ */ |
/* for(iqtv=1; iqtv <= nqtveff; iqtv++){ /\* Varying quantitatives covariates *\/ */ |
/* iv=TmodelInvQind[iqtv]; /\* Counting the # varying covariate from 1 to ntveff *\/ */ |
/* iv=TmodelInvQind[iqtv]; /\* Counting the # varying covariate from 1 to ntveff *\/ */ |
/* /\* printf(" i=%d,mi=%d,iqtv=%d,TmodelInvQind[iqtv]=%d,cotqvar[mw[mi][i]][TmodelInvQind[iqtv]][i]=%f\n", i, mi, iqtv, TmodelInvQind[iqtv],cotqvar[mw[mi][i]][TmodelInvQind[iqtv]][i]); *\/ */ |
/* /\* printf(" i=%d,mi=%d,iqtv=%d,TmodelInvQind[iqtv]=%d,cotqvar[mw[mi][i]][TmodelInvQind[iqtv]][i]=%f\n", i, mi, iqtv, TmodelInvQind[iqtv],cotqvar[mw[mi][i]][TmodelInvQind[iqtv]][i]); *\/ */ |
Line 4261 double funcone( double *x)
|
Line 4436 double funcone( double *x)
|
if(!FixedV[Tvar[Tage[kk]]]) |
if(!FixedV[Tvar[Tage[kk]]]) |
cov[Tage[kk]+2+nagesqr]=covar[Tvar[Tage[kk]]][i]*agexact; |
cov[Tage[kk]+2+nagesqr]=covar[Tvar[Tage[kk]]][i]*agexact; |
else |
else |
cov[Tage[kk]+2+nagesqr]=cotvar[mw[mi][i]][Tvar[Tage[kk]]-ncovcol-nqv][i]*agexact; |
cov[Tage[kk]+2+nagesqr]=cotvar[mw[mi][i]][Tvar[Tage[kk]]][i]*agexact; /* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
} |
} |
/* printf("i=%d,mi=%d,d=%d,mw[mi][i]=%d\n",i, mi,d,mw[mi][i]); */ |
/* printf("i=%d,mi=%d,d=%d,mw[mi][i]=%d\n",i, mi,d,mw[mi][i]); */ |
/* savm=pmij(pmmij,cov,ncovmodel,x,nlstate); */ |
/* savm=pmij(pmmij,cov,ncovmodel,x,nlstate); */ |
Line 4272 double funcone( double *x)
|
Line 4447 double funcone( double *x)
|
savm=oldm; |
savm=oldm; |
oldm=newm; |
oldm=newm; |
} /* end mult */ |
} /* end mult */ |
|
/*lli=log(out[s[mw[mi][i]][i]][s[mw[mi+1][i]][i]]);*/ /* Original formula */ |
|
/* But now since version 0.9 we anticipate for bias at large stepm. |
|
* If stepm is larger than one month (smallest stepm) and if the exact delay |
|
* (in months) between two waves is not a multiple of stepm, we rounded to |
|
* the nearest (and in case of equal distance, to the lowest) interval but now |
|
* we keep into memory the bias bh[mi][i] and also the previous matrix product |
|
* (i.e to dh[mi][i]-1) saved in 'savm'. Then we inter(extra)polate the |
|
* probability in order to take into account the bias as a fraction of the way |
|
* from savm to out if bh is negative or even beyond if bh is positive. bh varies |
|
* -stepm/2 to stepm/2 . |
|
* For stepm=1 the results are the same as for previous versions of Imach. |
|
* For stepm > 1 the results are less biased than in previous versions. |
|
*/ |
s1=s[mw[mi][i]][i]; |
s1=s[mw[mi][i]][i]; |
s2=s[mw[mi+1][i]][i]; |
s2=s[mw[mi+1][i]][i]; |
/* if(s2==-1){ */ |
/* if(s2==-1){ */ |
Line 4304 double funcone( double *x)
|
Line 4491 double funcone( double *x)
|
ipmx +=1; |
ipmx +=1; |
sw += weight[i]; |
sw += weight[i]; |
ll[s[mw[mi][i]][i]] += 2*weight[i]*lli; |
ll[s[mw[mi][i]][i]] += 2*weight[i]*lli; |
/* printf("Funcone i=%6d s1=%1d s2=%1d mi=%1d mw=%1d dh=%3d prob=%10.6f w=%6.4f out=%10.6f sav=%10.6f\n",i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],(s2==-1? -1: out[s1][s2]),(s2==-1? -1: savm[s1][s2])); */ |
/* Printing covariates values for each contribution for checking */ |
|
/* printf("num[i]=%09ld, i=%6d s1=%1d s2=%1d mi=%1d mw=%1d dh=%3d prob=%10.6f w=%6.4f out=%10.6f sav=%10.6f\n",num[i],i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],(s2==-1? -1: out[s1][s2]),(s2==-1? -1: savm[s1][s2])); */ |
if(globpr){ |
if(globpr){ |
fprintf(ficresilk,"%09ld %6.1f %6.1f %6d %2d %2d %2d %2d %3d %15.6f %8.4f %8.3f\ |
fprintf(ficresilk,"%09ld %6.1f %6.1f %6d %2d %2d %2d %2d %3d %15.6f %8.4f %8.3f\ |
%11.6f %11.6f %11.6f ", \ |
%11.6f %11.6f %11.6f ", \ |
num[i], agebegin, ageend, i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],weight[i]*gipmx/gsw, |
num[i], agebegin, ageend, i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],weight[i]*gipmx/gsw, |
2*weight[i]*lli,(s2==-1? -1: out[s1][s2]),(s2==-1? -1: savm[s1][s2])); |
2*weight[i]*lli,(s2==-1? -1: out[s1][s2]),(s2==-1? -1: savm[s1][s2])); |
/* printf("%09ld %6.1f %6.1f %6d %2d %2d %2d %2d %3d %15.6f %8.4f %8.3f\ */ |
/* printf("%09ld %6.1f %6.1f %6d %2d %2d %2d %2d %3d %15.6f %8.4f %8.3f\ */ |
/* %11.6f %11.6f %11.6f ", \ */ |
/* %11.6f %11.6f %11.6f ", \ */ |
/* num[i], agebegin, ageend, i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],weight[i]*gipmx/gsw, */ |
/* num[i], agebegin, ageend, i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],weight[i]*gipmx/gsw, */ |
/* 2*weight[i]*lli,(s2==-1? -1: out[s1][s2]),(s2==-1? -1: savm[s1][s2])); */ |
/* 2*weight[i]*lli,(s2==-1? -1: out[s1][s2]),(s2==-1? -1: savm[s1][s2])); */ |
for(k=1,llt=0.,l=0.; k<=nlstate; k++){ |
for(k=1,llt=0.,l=0.; k<=nlstate; k++){ |
llt +=ll[k]*gipmx/gsw; |
llt +=ll[k]*gipmx/gsw; |
fprintf(ficresilk," %10.6f",-ll[k]*gipmx/gsw); |
fprintf(ficresilk," %10.6f",-ll[k]*gipmx/gsw); |
/* printf(" %10.6f",-ll[k]*gipmx/gsw); */ |
/* printf(" %10.6f",-ll[k]*gipmx/gsw); */ |
} |
} |
fprintf(ficresilk," %10.6f\n", -llt); |
fprintf(ficresilk," %10.6f ", -llt); |
/* printf(" %10.6f\n", -llt); */ |
/* printf(" %10.6f\n", -llt); */ |
} |
/* if(debugILK){ /\* debugILK is set by a #d in a comment line *\/ */ |
|
/* fprintf(ficresilk,"%09ld ", num[i]); */ /* not necessary */ |
|
for (kf=1; kf<=ncovf;kf++){ /* Simple and product fixed covariates without age* products *//* Missing values are set to -1 but should be dropped */ |
|
fprintf(ficresilk," %g",covar[Tvar[TvarFind[kf]]][i]); |
|
} |
|
for(ncovv=1, iposold=0; ncovv <= ncovvt ; ncovv++){ /* Varying covariates (single and product but no age) including individual from products */ |
|
ipos=TvarVVind[ncovv]; /* TvarVVind={2, 5, 5] gives the position in the model of the ncovv th varying covariate*/ |
|
if(ipos!=iposold){ /* Not a product or first of a product */ |
|
fprintf(ficresilk," %g",cov[ioffset+ipos]); |
|
/* printf(" %g",cov[ioffset+ipos]); */ |
|
}else{ |
|
fprintf(ficresilk,"*"); |
|
/* printf("*"); */ |
|
} |
|
iposold=ipos; |
|
} |
|
for (kk=1; kk<=cptcovage;kk++) { |
|
if(!FixedV[Tvar[Tage[kk]]]){ |
|
fprintf(ficresilk," %g*age",covar[Tvar[Tage[kk]]][i]); |
|
/* printf(" %g*age",covar[Tvar[Tage[kk]]][i]); */ |
|
}else{ |
|
fprintf(ficresilk," %g*age",cotvar[mw[mi][i]][Tvar[Tage[kk]]][i]);/* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
|
/* printf(" %g*age",cotvar[mw[mi][i]][Tvar[Tage[kk]]][i]);/\* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) *\/ */ |
|
} |
|
} |
|
/* printf("\n"); */ |
|
/* } /\* End debugILK *\/ */ |
|
fprintf(ficresilk,"\n"); |
|
} /* End if globpr */ |
} /* end of wave */ |
} /* end of wave */ |
} /* end of individual */ |
} /* end of individual */ |
for(k=1,l=0.; k<=nlstate; k++) l += ll[k]; |
for(k=1,l=0.; k<=nlstate; k++) l += ll[k]; |
Line 4331 double funcone( double *x)
|
Line 4547 double funcone( double *x)
|
gipmx=ipmx; |
gipmx=ipmx; |
gsw=sw; |
gsw=sw; |
} |
} |
return -l; |
return -l; |
} |
} |
|
|
|
|
Line 4342 void likelione(FILE *ficres,double p[],
|
Line 4558 void likelione(FILE *ficres,double p[],
|
the selection of individuals/waves and |
the selection of individuals/waves and |
to check the exact contribution to the likelihood. |
to check the exact contribution to the likelihood. |
Plotting could be done. |
Plotting could be done. |
*/ |
*/ |
int k; |
void pstamp(FILE *ficres); |
|
int k, kf, kk, kvar, ncovv, iposold, ipos; |
|
|
if(*globpri !=0){ /* Just counts and sums, no printings */ |
if(*globpri !=0){ /* Just counts and sums, no printings */ |
strcpy(fileresilk,"ILK_"); |
strcpy(fileresilk,"ILK_"); |
Line 4352 void likelione(FILE *ficres,double p[],
|
Line 4569 void likelione(FILE *ficres,double p[],
|
printf("Problem with resultfile: %s\n", fileresilk); |
printf("Problem with resultfile: %s\n", fileresilk); |
fprintf(ficlog,"Problem with resultfile: %s\n", fileresilk); |
fprintf(ficlog,"Problem with resultfile: %s\n", fileresilk); |
} |
} |
|
pstamp(ficresilk);fprintf(ficresilk,"# model=1+age+%s\n",model); |
fprintf(ficresilk, "#individual(line's_record) count ageb ageend s1 s2 wave# effective_wave# number_of_matrices_product pij weight weight/gpw -2ln(pij)*weight 0pij_x 0pij_(x-stepm) cumulating_loglikeli_by_health_state(reweighted=-2ll*weightXnumber_of_contribs/sum_of_weights) and_total\n"); |
fprintf(ficresilk, "#individual(line's_record) count ageb ageend s1 s2 wave# effective_wave# number_of_matrices_product pij weight weight/gpw -2ln(pij)*weight 0pij_x 0pij_(x-stepm) cumulating_loglikeli_by_health_state(reweighted=-2ll*weightXnumber_of_contribs/sum_of_weights) and_total\n"); |
fprintf(ficresilk, "#num_i ageb agend i s1 s2 mi mw dh likeli weight %%weight 2wlli out sav "); |
fprintf(ficresilk, "#num_i ageb agend i s1 s2 mi mw dh likeli weight %%weight 2wlli out sav "); |
/* i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],2*weight[i]*lli,out[s1][s2],savm[s1][s2]); */ |
/* i,s1,s2,mi,mw[mi][i],dh[mi][i],exp(lli),weight[i],2*weight[i]*lli,out[s1][s2],savm[s1][s2]); */ |
for(k=1; k<=nlstate; k++) |
for(k=1; k<=nlstate; k++) |
fprintf(ficresilk," -2*gipw/gsw*weight*ll[%d]++",k); |
fprintf(ficresilk," -2*gipw/gsw*weight*ll[%d]++",k); |
fprintf(ficresilk," -2*gipw/gsw*weight*ll(total)\n"); |
fprintf(ficresilk," -2*gipw/gsw*weight*ll(total) "); |
} |
|
|
/* if(debugILK){ /\* debugILK is set by a #d in a comment line *\/ */ |
|
for(kf=1;kf <= ncovf; kf++){ |
|
fprintf(ficresilk,"V%d",Tvar[TvarFind[kf]]); |
|
/* printf("V%d",Tvar[TvarFind[kf]]); */ |
|
} |
|
for(ncovv=1, iposold=0; ncovv <= ncovvt ; ncovv++){ |
|
ipos=TvarVVind[ncovv]; /* TvarVVind={2, 5, 5] gives the position in the model of the ncovv th varying covariate */ |
|
if(ipos!=iposold){ /* Not a product or first of a product */ |
|
/* printf(" %d",ipos); */ |
|
fprintf(ficresilk," V%d",TvarVV[ncovv]); |
|
}else{ |
|
/* printf("*"); */ |
|
fprintf(ficresilk,"*"); |
|
} |
|
iposold=ipos; |
|
} |
|
for (kk=1; kk<=cptcovage;kk++) { |
|
if(!FixedV[Tvar[Tage[kk]]]){ |
|
/* printf(" %d*age(Fixed)",Tvar[Tage[kk]]); */ |
|
fprintf(ficresilk," %d*age(Fixed)",Tvar[Tage[kk]]); |
|
}else{ |
|
fprintf(ficresilk," %d*age(Varying)",Tvar[Tage[kk]]);/* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
|
/* printf(" %d*age(Varying)",Tvar[Tage[kk]]);/\* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) *\/ */ |
|
} |
|
} |
|
/* } /\* End if debugILK *\/ */ |
|
/* printf("\n"); */ |
|
fprintf(ficresilk,"\n"); |
|
} /* End glogpri */ |
|
|
*fretone=(*func)(p); |
*fretone=(*func)(p); |
if(*globpri !=0){ |
if(*globpri !=0){ |
Line 4370 void likelione(FILE *ficres,double p[],
|
Line 4617 void likelione(FILE *ficres,double p[],
|
fprintf(fichtm," You should at least run with mle >= 1 to get starting values corresponding to the optimized parameters in order to visualize the real contribution of each individual/wave: <a href=\"%s\">%s</a><br>\n",subdirf(fileresilk),subdirf(fileresilk)); |
fprintf(fichtm," You should at least run with mle >= 1 to get starting values corresponding to the optimized parameters in order to visualize the real contribution of each individual/wave: <a href=\"%s\">%s</a><br>\n",subdirf(fileresilk),subdirf(fileresilk)); |
fprintf(fichtm,"\n<br>Equation of the model: <b>model=1+age+%s</b><br>\n",model); |
fprintf(fichtm,"\n<br>Equation of the model: <b>model=1+age+%s</b><br>\n",model); |
|
|
for (k=1; k<= nlstate ; k++) { |
|
fprintf(fichtm,"<br>- Probability p<sub>%dj</sub> by origin %d and destination j. Dot's sizes are related to corresponding weight: <a href=\"%s-p%dj.png\">%s-p%dj.png</a><br> \ |
|
<img src=\"%s-p%dj.png\">",k,k,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k); |
|
} |
|
fprintf(fichtm,"<br>- The function drawn is -2Log(L) in Log scale: by state of origin <a href=\"%s-ori.png\">%s-ori.png</a><br> \ |
fprintf(fichtm,"<br>- The function drawn is -2Log(L) in Log scale: by state of origin <a href=\"%s-ori.png\">%s-ori.png</a><br> \ |
<img src=\"%s-ori.png\">",subdirf2(optionfilefiname,"ILK_"),subdirf2(optionfilefiname,"ILK_"),subdirf2(optionfilefiname,"ILK_")); |
<img src=\"%s-ori.png\">\n",subdirf2(optionfilefiname,"ILK_"),subdirf2(optionfilefiname,"ILK_"),subdirf2(optionfilefiname,"ILK_")); |
fprintf(fichtm,"<br>- and by state of destination <a href=\"%s-dest.png\">%s-dest.png</a><br> \ |
fprintf(fichtm,"<br>- and by state of destination <a href=\"%s-dest.png\">%s-dest.png</a><br> \ |
<img src=\"%s-dest.png\">",subdirf2(optionfilefiname,"ILK_"),subdirf2(optionfilefiname,"ILK_"),subdirf2(optionfilefiname,"ILK_")); |
<img src=\"%s-dest.png\">\n",subdirf2(optionfilefiname,"ILK_"),subdirf2(optionfilefiname,"ILK_"),subdirf2(optionfilefiname,"ILK_")); |
|
|
|
for (k=1; k<= nlstate ; k++) { |
|
fprintf(fichtm,"<br>- Probability p<sub>%dj</sub> by origin %d and destination j. Dot's sizes are related to corresponding weight: <a href=\"%s-p%dj.png\">%s-p%dj.png</a><br>\n \ |
|
<img src=\"%s-p%dj.png\">\n",k,k,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k); |
|
for(kf=1; kf <= ncovf; kf++){ /* For each simple dummy covariate of the model */ |
|
/* kvar=Tvar[TvarFind[kf]]; */ /* variable */ |
|
fprintf(fichtm,"<br>- Probability p<sub>%dj</sub> by origin %d and destination j with colored covariate V%d. Same dot size of all points but with a different color for transitions with dummy variable V%d=1 at beginning of transition (keeping former color for V%d=0): <a href=\"%s-p%dj.png\">%s-p%dj.png</a><br> \ |
|
<img src=\"%s-p%dj-%d.png\">",k,k,Tvar[TvarFind[kf]],Tvar[TvarFind[kf]],Tvar[TvarFind[kf]],subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,Tvar[TvarFind[kf]]); |
|
} |
|
for(ncovv=1, iposold=0; ncovv <= ncovvt ; ncovv++){ /* Loop on the time varying extended covariates (with extension of Vn*Vm */ |
|
ipos=TvarVVind[ncovv]; /* TvarVVind={2, 5, 5] gives the position in the model of the ncovv th varying covariate */ |
|
kvar=TvarVV[ncovv]; /* TvarVV={3, 1, 3} gives the name of each varying covariate */ |
|
/* printf("DebugILK fichtm ncovv=%d, kvar=TvarVV[ncovv]=V%d, ipos=TvarVVind[ncovv]=%d, Dummy[ipos]=%d, Typevar[ipos]=%d\n", ncovv,kvar,ipos,Dummy[ipos],Typevar[ipos]); */ |
|
if(ipos!=iposold){ /* Not a product or first of a product */ |
|
/* fprintf(ficresilk," V%d",TvarVV[ncovv]); */ |
|
/* printf(" DebugILK fichtm ipos=%d != iposold=%d\n", ipos, iposold); */ |
|
if(Dummy[ipos]==0 && Typevar[ipos]==0){ /* Only if dummy time varying: Dummy(0, 1=quant singor prod without age,2 dummy*age, 3quant*age) Typevar (0 single, 1=*age,2=Vn*vm) */ |
|
fprintf(fichtm,"<br>- Probability p<sub>%dj</sub> by origin %d and destination j with colored time varying dummy covariate V%d. Same dot size of all points but with a different color for transitions with dummy variable V%d=1 at beginning of transition (keeping former color for V%d=0): <a href=\"%s-p%dj.png\">%s-p%dj.png</a><br> \ |
|
<img src=\"%s-p%dj-%d.png\">",k,k,kvar,kvar,kvar,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,kvar); |
|
} /* End only for dummies time varying (single?) */ |
|
}else{ /* Useless product */ |
|
/* printf("*"); */ |
|
/* fprintf(ficresilk,"*"); */ |
|
} |
|
iposold=ipos; |
|
} /* For each time varying covariate */ |
|
} /* End loop on states */ |
|
|
|
/* if(debugILK){ */ |
|
/* for(kf=1; kf <= ncovf; kf++){ /\* For each simple dummy covariate of the model *\/ */ |
|
/* /\* kvar=Tvar[TvarFind[kf]]; *\/ /\* variable *\/ */ |
|
/* for (k=1; k<= nlstate ; k++) { */ |
|
/* fprintf(fichtm,"<br>- Probability p<sub>%dj</sub> by origin %d and destination j with colored covariate V%. Same dot size of all points but with a different color for transitions with dummy variable V%d=1 at beginning of transition (keeping former color for V%d=0): <a href=\"%s-p%dj.png\">%s-p%dj.png</a><br> \ */ |
|
/* <img src=\"%s-p%dj-%d.png\">",k,k,Tvar[TvarFind[kf]],Tvar[TvarFind[kf]],Tvar[TvarFind[kf]],subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,Tvar[TvarFind[kf]]); */ |
|
/* } */ |
|
/* } */ |
|
/* for(ncovv=1, iposold=0; ncovv <= ncovvt ; ncovv++){ /\* Loop on the time varying extended covariates (with extension of Vn*Vm *\/ */ |
|
/* ipos=TvarVVind[ncovv]; /\* TvarVVind={2, 5, 5] gives the position in the model of the ncovv th varying covariate *\/ */ |
|
/* kvar=TvarVV[ncovv]; /\* TvarVV={3, 1, 3} gives the name of each varying covariate *\/ */ |
|
/* /\* printf("DebugILK fichtm ncovv=%d, kvar=TvarVV[ncovv]=V%d, ipos=TvarVVind[ncovv]=%d, Dummy[ipos]=%d, Typevar[ipos]=%d\n", ncovv,kvar,ipos,Dummy[ipos],Typevar[ipos]); *\/ */ |
|
/* if(ipos!=iposold){ /\* Not a product or first of a product *\/ */ |
|
/* /\* fprintf(ficresilk," V%d",TvarVV[ncovv]); *\/ */ |
|
/* /\* printf(" DebugILK fichtm ipos=%d != iposold=%d\n", ipos, iposold); *\/ */ |
|
/* if(Dummy[ipos]==0 && Typevar[ipos]==0){ /\* Only if dummy time varying: Dummy(0, 1=quant singor prod without age,2 dummy*age, 3quant*age) Typevar (0 single, 1=*age,2=Vn*vm) *\/ */ |
|
/* for (k=1; k<= nlstate ; k++) { */ |
|
/* fprintf(fichtm,"<br>- Probability p<sub>%dj</sub> by origin %d and destination j. Same dot size of all points but with a different color for transitions with dummy variable V%d=1 at beginning of transition (keeping former color for V%d=0): <a href=\"%s-p%dj.png\">%s-p%dj.png</a><br> \ */ |
|
/* <img src=\"%s-p%dj-%d.png\">",k,k,kvar,kvar,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,subdirf2(optionfilefiname,"ILK_"),k,kvar); */ |
|
/* } /\* End state *\/ */ |
|
/* } /\* End only for dummies time varying (single?) *\/ */ |
|
/* }else{ /\* Useless product *\/ */ |
|
/* /\* printf("*"); *\/ */ |
|
/* /\* fprintf(ficresilk,"*"); *\/ */ |
|
/* } */ |
|
/* iposold=ipos; */ |
|
/* } /\* For each time varying covariate *\/ */ |
|
/* }/\* End debugILK *\/ */ |
fflush(fichtm); |
fflush(fichtm); |
} |
}/* End globpri */ |
return; |
return; |
} |
} |
|
|
Line 5080 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 5379 Title=%s <br>Datafile=%s Firstpass=%d La
|
/* }else */ /* TODO TODO codtabm(j1,z1) or codtabm(j1,Tvaraff[z1]]z1)*/ |
/* }else */ /* TODO TODO codtabm(j1,z1) or codtabm(j1,Tvaraff[z1]]z1)*/ |
/* if( iind >=imx-3) printf("Searching error iind=%d Tvaraff[z1]=%d covar[Tvaraff[z1]][iind]=%.f TnsdVar[Tvaraff[z1]]=%d, cptcoveff=%d, cptcovs=%d \n",iind, Tvaraff[z1], covar[Tvaraff[z1]][iind],TnsdVar[Tvaraff[z1]],cptcoveff, cptcovs); */ |
/* if( iind >=imx-3) printf("Searching error iind=%d Tvaraff[z1]=%d covar[Tvaraff[z1]][iind]=%.f TnsdVar[Tvaraff[z1]]=%d, cptcoveff=%d, cptcovs=%d \n",iind, Tvaraff[z1], covar[Tvaraff[z1]][iind],TnsdVar[Tvaraff[z1]],cptcoveff, cptcovs); */ |
if(Tvaraff[z1]<1 || Tvaraff[z1]>=NCOVMAX) |
if(Tvaraff[z1]<1 || Tvaraff[z1]>=NCOVMAX) |
printf("Error Tvaraff[z1]=%d<1 or >=%d, cptcoveff=%d model=%s\n",Tvaraff[z1],NCOVMAX, cptcoveff, model); |
printf("Error Tvaraff[z1]=%d<1 or >=%d, cptcoveff=%d model=1+age+%s\n",Tvaraff[z1],NCOVMAX, cptcoveff, model); |
if (covar[Tvaraff[z1]][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]){ /* for combination j1 of covariates */ |
if (covar[Tvaraff[z1]][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]){ /* for combination j1 of covariates */ |
/* Tests if the value of the covariate z1 for this individual iind responded to combination j1 (V4=1 V3=0) */ |
/* Tests if the value of the covariate z1 for this individual iind responded to combination j1 (V4=1 V3=0) */ |
bool=0; /* bool should be equal to 1 to be selected, one covariate value failed */ |
bool=0; /* bool should be equal to 1 to be selected, one covariate value failed */ |
Line 5101 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 5400 Title=%s <br>Datafile=%s Firstpass=%d La
|
if(anyvaryingduminmodel==1){ /* Some are varying covariates */ |
if(anyvaryingduminmodel==1){ /* Some are varying covariates */ |
for (z1=1; z1<=cptcoveff; z1++) { |
for (z1=1; z1<=cptcoveff; z1++) { |
if( Fixed[Tmodelind[z1]]==1){ |
if( Fixed[Tmodelind[z1]]==1){ |
iv= Tvar[Tmodelind[z1]]-ncovcol-nqv; |
/* iv= Tvar[Tmodelind[z1]]-ncovcol-nqv; /\* Good *\/ */ |
|
iv= Tvar[Tmodelind[z1]]; /* Good *//* because cotvar starts now at first at ncovcol+nqv+ntv */ |
if (cotvar[m][iv][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]) /* iv=1 to ntv, right modality. If covariate's |
if (cotvar[m][iv][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]) /* iv=1 to ntv, right modality. If covariate's |
value is -1, we don't select. It differs from the |
value is -1, we don't select. It differs from the |
constant and age model which counts them. */ |
constant and age model which counts them. */ |
Line 5182 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 5482 Title=%s <br>Datafile=%s Firstpass=%d La
|
fprintf(ficresphtm, "\n<br/><br/><h3>********** Variable "); |
fprintf(ficresphtm, "\n<br/><br/><h3>********** Variable "); |
fprintf(ficresphtmfr, "\n<br/><br/><h3>********** Variable "); |
fprintf(ficresphtmfr, "\n<br/><br/><h3>********** Variable "); |
fprintf(ficlog, "\n#********** Variable "); |
fprintf(ficlog, "\n#********** Variable "); |
for (z1=1; z1<=cptcovs; z1++){ |
for (z1=1; z1<=cptcoveff; z1++){ |
if(!FixedV[Tvaraff[z1]]){ |
if(!FixedV[Tvaraff[z1]]){ |
printf( "V%d(fixed)=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
printf( "V%d(fixed)=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
fprintf(ficresp, "V%d(fixed)=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
fprintf(ficresp, "V%d(fixed)=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
Line 5390 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 5690 Title=%s <br>Datafile=%s Firstpass=%d La
|
printf("# This combination (%d) is not valid and no result will be produced\n",j1); |
printf("# This combination (%d) is not valid and no result will be produced\n",j1); |
invalidvarcomb[j1]=1; |
invalidvarcomb[j1]=1; |
}else{ |
}else{ |
fprintf(ficresphtm,"\n <p> This combination (%d) is valid and result will be produced.</p>",j1); |
fprintf(ficresphtm,"\n <p> This combination (%d) is valid and result will be produced (or no resultline).</p>",j1); |
invalidvarcomb[j1]=0; |
invalidvarcomb[j1]=0; |
} |
} |
fprintf(ficresphtmfr,"</table>\n"); |
fprintf(ficresphtmfr,"</table>\n"); |
Line 5638 void prevalence(double ***probs, double
|
Line 5938 void prevalence(double ***probs, double
|
/* Tvar[Tmodelind[z1]] is the n of Vn; n-ncovcol-nqv is the first time varying covariate or iv */ |
/* Tvar[Tmodelind[z1]] is the n of Vn; n-ncovcol-nqv is the first time varying covariate or iv */ |
for (z1=1; z1<=cptcoveff; z1++){ |
for (z1=1; z1<=cptcoveff; z1++){ |
if( Fixed[Tmodelind[z1]]==1){ |
if( Fixed[Tmodelind[z1]]==1){ |
iv= Tvar[Tmodelind[z1]]-ncovcol-nqv; |
iv= Tvar[Tmodelind[z1]];/* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ |
if (cotvar[m][iv][i]!= nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]) /* iv=1 to ntv, right modality */ |
if (cotvar[m][iv][i]!= nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]) /* iv=1 to ntv, right modality */ |
bool=0; |
bool=0; |
}else if( Fixed[Tmodelind[z1]]== 0) /* fixed */ |
}else if( Fixed[Tmodelind[z1]]== 0) /* fixed */ |
Line 5947 void concatwav(int wav[], int **dh, int
|
Line 6247 void concatwav(int wav[], int **dh, int
|
/* Loop on covariates without age and products and no quantitative variable */ |
/* Loop on covariates without age and products and no quantitative variable */ |
for (k=1; k<=cptcovt; k++) { /* cptcovt: total number of covariates of the model (2) nbocc(+)+1 = 8 excepting constant and age and age*age */ |
for (k=1; k<=cptcovt; k++) { /* cptcovt: total number of covariates of the model (2) nbocc(+)+1 = 8 excepting constant and age and age*age */ |
for (j=-1; (j < maxncov); j++) Ndum[j]=0; |
for (j=-1; (j < maxncov); j++) Ndum[j]=0; |
if(Dummy[k]==0 && Typevar[k] !=1){ /* Dummy covariate and not age product */ |
/* printf("Testing k=%d, cptcovt=%d\n",k, cptcovt); */ |
|
if(Dummy[k]==0 && Typevar[k] !=1 && Typevar[k] != 2){ /* Dummy covariate and not age product nor fixed product */ |
switch(Fixed[k]) { |
switch(Fixed[k]) { |
case 0: /* Testing on fixed dummy covariate, simple or product of fixed */ |
case 0: /* Testing on fixed dummy covariate, simple or product of fixed */ |
modmaxcovj=0; |
modmaxcovj=0; |
modmincovj=0; |
modmincovj=0; |
for (i=1; i<=imx; i++) { /* Loop on individuals: reads the data file to get the maximum value of the modality of this covariate Vj*/ |
for (i=1; i<=imx; i++) { /* Loop on individuals: reads the data file to get the maximum value of the modality of this covariate Vj*/ |
|
/* printf("Waiting for error tricode Tvar[%d]=%d i=%d (int)(covar[Tvar[k]][i]=%d\n",k,Tvar[k], i, (int)(covar[Tvar[k]][i])); */ |
ij=(int)(covar[Tvar[k]][i]); |
ij=(int)(covar[Tvar[k]][i]); |
/* ij=0 or 1 or -1. Value of the covariate Tvar[j] for individual i |
/* ij=0 or 1 or -1. Value of the covariate Tvar[j] for individual i |
* If product of Vn*Vm, still boolean *: |
* If product of Vn*Vm, still boolean *: |
Line 6043 void concatwav(int wav[], int **dh, int
|
Line 6345 void concatwav(int wav[], int **dh, int
|
break; |
break; |
} /* end switch */ |
} /* end switch */ |
} /* end dummy test */ |
} /* end dummy test */ |
if(Dummy[k]==1 && Typevar[k] !=1){ /* Quantitative covariate and not age product */ |
if(Dummy[k]==1 && Typevar[k] !=1 && Fixed ==0){ /* Fixed Quantitative covariate and not age product */ |
for (i=1; i<=imx; i++) { /* Loop on individuals: reads the data file to get the maximum value of the modality of this covariate Vj*/ |
for (i=1; i<=imx; i++) { /* Loop on individuals: reads the data file to get the maximum value of the modality of this covariate Vj*/ |
if(Tvar[k]<=0 || Tvar[k]>=NCOVMAX){ |
if(Tvar[k]<=0 || Tvar[k]>=NCOVMAX){ |
printf("Error k=%d \n",k); |
printf("Error k=%d \n",k); |
Line 6234 void concatwav(int wav[], int **dh, int
|
Line 6536 void concatwav(int wav[], int **dh, int
|
/* Covariances of health expectancies eij and of total life expectancies according |
/* Covariances of health expectancies eij and of total life expectancies according |
to initial status i, ei. . |
to initial status i, ei. . |
*/ |
*/ |
|
/* Very time consuming function, but already optimized with precov */ |
int i, j, nhstepm, hstepm, h, nstepm, k, cptj, cptj2, i2, j2, ij, ji; |
int i, j, nhstepm, hstepm, h, nstepm, k, cptj, cptj2, i2, j2, ij, ji; |
int nhstepma, nstepma; /* Decreasing with age */ |
int nhstepma, nstepma; /* Decreasing with age */ |
double age, agelim, hf; |
double age, agelim, hf; |
Line 6502 void concatwav(int wav[], int **dh, int
|
Line 6805 void concatwav(int wav[], int **dh, int
|
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"); |
fprintf(ficresprobmorprev,"# Selected quantitative variables and dummies"); |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ /* To be done*/ |
|
fprintf(ficresprobmorprev," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* We use TinvDoQresult[nres][resultmodel[nres][j] we sort according to the equation model and the resultline: it is a choice */ |
|
/* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ /\* To be done*\/ */ |
|
/* fprintf(ficresprobmorprev," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
|
/* } */ |
|
for (j=1; j<= cptcovs; j++){ /* For each selected (single) quantitative value */ /* To be done*/ |
|
fprintf(ficresprobmorprev," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
} |
} |
for(j=1;j<=cptcoveff;j++) |
/* for(j=1;j<=cptcoveff;j++) */ |
fprintf(ficresprobmorprev," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(ij,TnsdVar[Tvaraff[j]])]); |
/* fprintf(ficresprobmorprev," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(ij,TnsdVar[Tvaraff[j]])]); */ |
fprintf(ficresprobmorprev,"\n"); |
fprintf(ficresprobmorprev,"\n"); |
|
|
fprintf(ficresprobmorprev,"# Age cov=%-d",ij); |
fprintf(ficresprobmorprev,"# Age cov=%-d",ij); |
Line 7137 To be simple, these graphs help to under
|
Line 7445 To be simple, these graphs help to under
|
|
|
for(nres=1;nres <=nresult; nres++){ /* For each resultline */ |
for(nres=1;nres <=nresult; nres++){ /* For each resultline */ |
for(j1=1; j1<=tj;j1++){ /* For any combination of dummy covariates, fixed and varying */ |
for(j1=1; j1<=tj;j1++){ /* For any combination of dummy covariates, fixed and varying */ |
printf("Varprob TKresult[nres]=%d j1=%d, nres=%d, cptcovn=%d, cptcoveff=%d tj=%d cptcovs=%d\n", TKresult[nres], j1, nres, cptcovn, cptcoveff, tj, cptcovs); |
/* printf("Varprob TKresult[nres]=%d j1=%d, nres=%d, cptcovn=%d, cptcoveff=%d tj=%d cptcovs=%d\n", TKresult[nres], j1, nres, cptcovn, cptcoveff, tj, cptcovs); */ |
if(tj != 1 && TKresult[nres]!= j1) |
if(tj != 1 && TKresult[nres]!= j1) |
continue; |
continue; |
|
|
Line 7153 To be simple, these graphs help to under
|
Line 7461 To be simple, these graphs help to under
|
|
|
/* Including quantitative variables of the resultline to be done */ |
/* Including quantitative variables of the resultline to be done */ |
for (z1=1; z1<=cptcovs; z1++){ /* Loop on each variable of this resultline */ |
for (z1=1; z1<=cptcovs; z1++){ /* Loop on each variable of this resultline */ |
printf("Varprob modelresult[%d][%d]=%d model=%s \n",nres, z1, modelresult[nres][z1], model); |
/* printf("Varprob modelresult[%d][%d]=%d model=1+age+%s \n",nres, z1, modelresult[nres][z1], model); */ |
fprintf(ficlog,"Varprob modelresult[%d][%d]=%d model=%s \n",nres, z1, modelresult[nres][z1], model); |
fprintf(ficlog,"Varprob modelresult[%d][%d]=%d model=1+age+%s \n",nres, z1, modelresult[nres][z1], model); |
/* fprintf(ficlog,"Varprob modelresult[%d][%d]=%d model=%s resultline[%d]=%s \n",nres, z1, modelresult[nres][z1], model, nres, resultline[nres]); */ |
/* fprintf(ficlog,"Varprob modelresult[%d][%d]=%d model=1+age+%s resultline[%d]=%s \n",nres, z1, modelresult[nres][z1], model, nres, resultline[nres]); */ |
if(Dummy[modelresult[nres][z1]]==0){/* Dummy variable of the variable in position modelresult in the model corresponding to z1 in resultline */ |
if(Dummy[modelresult[nres][z1]]==0){/* Dummy variable of the variable in position modelresult in the model corresponding to z1 in resultline */ |
if(Fixed[modelresult[nres][z1]]==0){ /* Fixed referenced to model equation */ |
if(Fixed[modelresult[nres][z1]]==0){ /* Fixed referenced to model equation */ |
fprintf(ficresprob,"V%d=%d ",Tvresult[nres][z1],Tresult[nres][z1]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
fprintf(ficresprob,"V%d=%d ",Tvresult[nres][z1],Tresult[nres][z1]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
Line 7177 To be simple, these graphs help to under
|
Line 7485 To be simple, these graphs help to under
|
} |
} |
}else if(Dummy[modelresult[nres][z1]]==1){ /* Quanti variable */ |
}else if(Dummy[modelresult[nres][z1]]==1){ /* Quanti variable */ |
/* For each selected (single) quantitative value */ |
/* For each selected (single) quantitative value */ |
fprintf(ficresprob," V%d=%f ",Tvqresult[nres][z1],Tqresult[nres][z1]); |
fprintf(ficresprob," V%d=%lg ",Tvqresult[nres][z1],Tqresult[nres][z1]); |
if(Fixed[modelresult[nres][z1]]==0){ /* Fixed */ |
if(Fixed[modelresult[nres][z1]]==0){ /* Fixed */ |
fprintf(ficresprob,"fixed "); |
fprintf(ficresprob,"fixed "); |
fprintf(ficresprobcov,"fixed "); |
fprintf(ficresprobcov,"fixed "); |
Line 7524 void printinghtml(char fileresu[], char
|
Line 7832 void printinghtml(char fileresu[], char
|
jj1=0; |
jj1=0; |
|
|
fprintf(fichtm," \n<ul>"); |
fprintf(fichtm," \n<ul>"); |
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k1=1; k1<=m;k1++){ /* For each combination of covariate */ |
/* k1=nres; */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0)k1=1; /* To be checked for no result */ |
|
/* for(k1=1; k1<=m;k1++){ /\* For each combination of covariate *\/ */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
jj1++; |
jj1++; |
if (cptcovn > 0) { |
if (cptcovn > 0) { |
fprintf(fichtm,"\n<li><a size=\"1\" color=\"#EC5E5E\" href=\"#rescov"); |
fprintf(fichtm,"\n<li><a size=\"1\" color=\"#EC5E5E\" href=\"#rescov"); |
for (cpt=1; cpt<=cptcoveff;cpt++){ |
for (cpt=1; cpt<=cptcovs;cpt++){ /**< cptcovs number of SIMPLE covariates in the model V2+V1 =2 (dummy or quantit or time varying) */ |
fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
fprintf(fichtm,"_V%d=%lg_",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
} |
|
/* for (cpt=1; cpt<=cptcoveff;cpt++){ */ |
|
/* fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); */ |
|
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
|
/* } */ |
fprintf(fichtm,"\">"); |
fprintf(fichtm,"\">"); |
|
|
/* if(nqfveff+nqtveff 0) */ /* Test to be done */ |
/* if(nqfveff+nqtveff 0) */ /* Test to be done */ |
fprintf(fichtm,"************ Results for covariates"); |
fprintf(fichtm,"************ Results for covariates"); |
for (cpt=1; cpt<=cptcoveff;cpt++){ |
for (cpt=1; cpt<=cptcovs;cpt++){ |
fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
fprintf(fichtm," V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
} |
|
/* fprintf(fichtm,"************ Results for covariates"); */ |
|
/* for (cpt=1; cpt<=cptcoveff;cpt++){ */ |
|
/* fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); */ |
|
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
|
/* } */ |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
fprintf(fichtm," Warning Combination (%d) ignored because no cases ",k1); |
fprintf(fichtm," Warning Combination (%d) ignored because no cases ",k1); |
continue; |
continue; |
Line 7558 void printinghtml(char fileresu[], char
|
Line 7876 void printinghtml(char fileresu[], char
|
|
|
jj1=0; |
jj1=0; |
|
|
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k1=1; k1<=m;k1++){ /* For each combination of covariate */ |
/* k1=nres; */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* for(k1=1; k1<=m;k1++){ /\* For each combination of covariate *\/ */ |
|
/* if(m != 1 && 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,"\n<p><a name=\"rescov"); |
fprintf(fichtm,"\n<p><a name=\"rescov"); |
for (cpt=1; cpt<=cptcoveff;cpt++){ |
for (cpt=1; cpt<=cptcovs;cpt++){ |
fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
fprintf(fichtm,"_V%d=%lg_",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
} |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
|
/* } */ |
fprintf(fichtm,"\"</a>"); |
fprintf(fichtm,"\"</a>"); |
|
|
fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\">************ Results for covariates"); |
fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\">************ Results for covariates"); |
for (cpt=1; cpt<=cptcoveff;cpt++){ |
for (cpt=1; cpt<=cptcovs;cpt++){ |
fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
fprintf(fichtm," V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
printf(" V%d=%d ",Tvresult[nres][cpt],Tresult[nres][cpt]);fflush(stdout); |
printf(" V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
/* fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); */ |
/* fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); */ |
/* printf(" V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]);fflush(stdout); */ |
/* printf(" V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]);fflush(stdout); */ |
} |
} |
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," (model=%s) ************\n<hr size=\"2\" color=\"#EC5E5E\">",model); |
fprintf(fichtm," (model=1+age+%s) ************\n<hr size=\"2\" color=\"#EC5E5E\">",model); |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
fprintf(fichtm,"\n<h3>Combination (%d) ignored because no cases </h3>\n",k1); |
fprintf(fichtm,"\n<h3>Combination (%d) ignored because no cases </h3>\n",k1); |
printf("\nCombination (%d) ignored because no cases \n",k1); |
printf("\nCombination (%d) ignored because no cases \n",k1); |
Line 7624 divided by h: <sub>h</sub>P<sub>ij</sub>
|
Line 7940 divided by h: <sub>h</sub>P<sub>ij</sub>
|
/* Period (forward stable) prevalence in each health state */ |
/* Period (forward stable) prevalence in each health state */ |
for(cpt=1; cpt<=nlstate;cpt++){ |
for(cpt=1; cpt<=nlstate;cpt++){ |
fprintf(fichtm,"<br>\n- Convergence to period (stable) prevalence in state %d. Or probability for a person being in state (1 to %d) at different ages, to be in state %d some years after. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br>", cpt, nlstate, cpt, subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres); |
fprintf(fichtm,"<br>\n- Convergence to period (stable) prevalence in state %d. Or probability for a person being in state (1 to %d) at different ages, to be in state %d some years after. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br>", cpt, nlstate, cpt, subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres); |
fprintf(fichtm," (data from text file <a href=\"%s.txt\">%s.txt</a>)\n<br>",subdirf2(optionfilefiname,"P_"),subdirf2(optionfilefiname,"P_")); |
fprintf(fichtm," (data from text file <a href=\"%s.txt\">%s.txt</a>)\n<br>",subdirf2(optionfilefiname,"PIJ_"),subdirf2(optionfilefiname,"PIJ_")); |
fprintf(fichtm,"<img src=\"%s_%d-%d-%d.svg\">" ,subdirf2(optionfilefiname,"P_"),cpt,k1,nres); |
fprintf(fichtm,"<img src=\"%s_%d-%d-%d.svg\">" ,subdirf2(optionfilefiname,"P_"),cpt,k1,nres); |
} |
} |
if(prevbcast==1){ |
if(prevbcast==1){ |
/* Backward prevalence in each health state */ |
/* Backward prevalence in each health state */ |
for(cpt=1; cpt<=nlstate;cpt++){ |
for(cpt=1; cpt<=nlstate;cpt++){ |
fprintf(fichtm,"<br>\n- Convergence to mixed (stable) back prevalence in state %d. Or probability for a person to be in state %d at a younger age, knowing that she/he was in state (1 to %d) at different older ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
fprintf(fichtm,"<br>\n- Convergence to mixed (stable) back prevalence in state %d. Or probability for a person to be in state %d at a younger age, knowing that she/he was in state (1 to %d) at different older ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br>", cpt, cpt, nlstate, subdirf2(optionfilefiname,"PB_"),cpt,k1,nres,subdirf2(optionfilefiname,"PB_"),cpt,k1,nres); |
<img src=\"%s_%d-%d-%d.svg\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"PB_"),cpt,k1,nres,subdirf2(optionfilefiname,"PB_"),cpt,k1,nres,subdirf2(optionfilefiname,"PB_"),cpt,k1,nres); |
fprintf(fichtm," (data from text file <a href=\"%s.txt\">%s.txt</a>)\n<br>",subdirf2(optionfilefiname,"PIJB_"),subdirf2(optionfilefiname,"PIJB_")); |
|
fprintf(fichtm,"<img src=\"%s_%d-%d-%d.svg\">" ,subdirf2(optionfilefiname,"PB_"),cpt,k1,nres); |
} |
} |
} |
} |
if(prevfcast==1){ |
if(prevfcast==1){ |
Line 7661 with weights corresponding to observed p
|
Line 7978 with weights corresponding to observed p
|
fprintf(fichtm,"<img src=\"%s_%d-%d-%d.svg\">", subdirf2(optionfilefiname,"EXP_"),cpt,k1,nres ); |
fprintf(fichtm,"<img src=\"%s_%d-%d-%d.svg\">", subdirf2(optionfilefiname,"EXP_"),cpt,k1,nres ); |
} |
} |
/* } /\* end i1 *\/ */ |
/* } /\* end i1 *\/ */ |
}/* End k1 */ |
}/* End k1=nres */ |
fprintf(fichtm,"</ul>"); |
fprintf(fichtm,"</ul>"); |
|
|
fprintf(fichtm,"\ |
fprintf(fichtm,"\ |
Line 7708 See page 'Matrix of variance-covariance
|
Line 8025 See page 'Matrix of variance-covariance
|
/* - Population forecasting (if popforecast=1): <a href=\"pop%s\">pop%s</a> <br>\n */ |
/* - Population forecasting (if popforecast=1): <a href=\"pop%s\">pop%s</a> <br>\n */ |
/* <br>",fileres,fileres,fileres,fileres); */ |
/* <br>",fileres,fileres,fileres,fileres); */ |
/* else */ |
/* else */ |
/* fprintf(fichtm,"\n No population forecast: popforecast = %d (instead of 1) or stepm = %d (instead of 1) or model=%s (instead of .)<br><br></li>\n",popforecast, stepm, model); */ |
/* fprintf(fichtm,"\n No population forecast: popforecast = %d (instead of 1) or stepm = %d (instead of 1) or model=1+age+%s (instead of .)<br><br></li>\n",popforecast, stepm, model); */ |
fflush(fichtm); |
fflush(fichtm); |
|
|
m=pow(2,cptcoveff); |
m=pow(2,cptcoveff); |
Line 7719 See page 'Matrix of variance-covariance
|
Line 8036 See page 'Matrix of variance-covariance
|
jj1=0; |
jj1=0; |
|
|
fprintf(fichtm," \n<ul>"); |
fprintf(fichtm," \n<ul>"); |
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k1=1; k1<=m;k1++){ /* For each combination of covariate */ |
/* k1=nres; */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
/* for(k1=1; k1<=m;k1++){ /\* For each combination of covariate *\/ */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
jj1++; |
jj1++; |
if (cptcovn > 0) { |
if (cptcovn > 0) { |
fprintf(fichtm,"\n<li><a size=\"1\" color=\"#EC5E5E\" href=\"#rescovsecond"); |
fprintf(fichtm,"\n<li><a size=\"1\" color=\"#EC5E5E\" href=\"#rescovsecond"); |
for (cpt=1; cpt<=cptcoveff;cpt++){ |
for (cpt=1; cpt<=cptcovs;cpt++){ |
fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
fprintf(fichtm,"_V%d=%lg_",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
} |
fprintf(fichtm,"\">"); |
fprintf(fichtm,"\">"); |
|
|
/* if(nqfveff+nqtveff 0) */ /* Test to be done */ |
/* if(nqfveff+nqtveff 0) */ /* Test to be done */ |
fprintf(fichtm,"************ Results for covariates"); |
fprintf(fichtm,"************ Results for covariates"); |
for (cpt=1; cpt<=cptcoveff;cpt++){ |
for (cpt=1; cpt<=cptcovs;cpt++){ |
fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
fprintf(fichtm," V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
} |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
fprintf(fichtm," Warning Combination (%d) ignored because no cases ",k1); |
fprintf(fichtm," Warning Combination (%d) ignored because no cases ",k1); |
Line 7748 See page 'Matrix of variance-covariance
|
Line 8061 See page 'Matrix of variance-covariance
|
} |
} |
fprintf(fichtm,"</a></li>"); |
fprintf(fichtm,"</a></li>"); |
} /* cptcovn >0 */ |
} /* cptcovn >0 */ |
} |
} /* End nres */ |
fprintf(fichtm," \n</ul>"); |
fprintf(fichtm," \n</ul>"); |
|
|
jj1=0; |
jj1=0; |
|
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k1=1; k1<=m;k1++){ |
/* k1=nres; */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* for(k1=1; k1<=m;k1++){ */ |
|
/* if(m != 1 && 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,"\n<p><a name=\"rescovsecond"); |
fprintf(fichtm,"\n<p><a name=\"rescovsecond"); |
for (cpt=1; cpt<=cptcoveff;cpt++){ |
for (cpt=1; cpt<=cptcovs;cpt++){ |
fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); |
fprintf(fichtm,"_V%d=%lg_",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
} |
|
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
|
fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); |
|
} |
} |
fprintf(fichtm,"\"</a>"); |
fprintf(fichtm,"\"</a>"); |
|
|
fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\">************ Results for covariates"); |
fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\">************ Results for covariates"); |
for (cpt=1; cpt<=cptcoveff;cpt++){ /**< cptcoveff number of variables */ |
for (cpt=1; cpt<=cptcovs;cpt++){ /**< cptcoveff number of variables */ |
fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],Tresult[nres][cpt]); |
fprintf(fichtm," V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
printf(" V%d=%d ",Tvresult[nres][cpt],Tresult[nres][cpt]);fflush(stdout); |
printf(" V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]); |
/* fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); */ |
/* fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); */ |
} |
} |
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," (model=%s) ************\n<hr size=\"2\" color=\"#EC5E5E\">",model); |
fprintf(fichtm," (model=1+age+%s) ************\n<hr size=\"2\" color=\"#EC5E5E\">",model); |
|
|
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
fprintf(fichtm,"\n<h4>Combination (%d) ignored because no cases </h4>\n",k1); |
fprintf(fichtm,"\n<h4>Combination (%d) ignored because no cases </h4>\n",k1); |
continue; |
continue; |
} |
} |
} |
} /* If cptcovn >0 */ |
for(cpt=1; cpt<=nlstate;cpt++) { |
for(cpt=1; cpt<=nlstate;cpt++) { |
fprintf(fichtm,"\n<br>- Observed (cross-sectional with mov_average=%d) and period (incidence based) \ |
fprintf(fichtm,"\n<br>- Observed (cross-sectional with mov_average=%d) and period (incidence based) \ |
prevalence (with 95%% confidence interval) in state (%d): <a href=\"%s_%d-%d-%d.svg\"> %s_%d-%d-%d.svg</a>",mobilav,cpt,subdirf2(optionfilefiname,"V_"),cpt,k1,nres,subdirf2(optionfilefiname,"V_"),cpt,k1,nres); |
prevalence (with 95%% confidence interval) in state (%d): <a href=\"%s_%d-%d-%d.svg\"> %s_%d-%d-%d.svg</a>",mobilav,cpt,subdirf2(optionfilefiname,"V_"),cpt,k1,nres,subdirf2(optionfilefiname,"V_"),cpt,k1,nres); |
Line 7800 true period expectancies (those weighted
|
Line 8110 true period expectancies (those weighted
|
fprintf(fichtm," (data from text file <a href=\"%s.txt\">%s.txt</a>) \n<br>",subdirf2(optionfilefiname,"T_"),subdirf2(optionfilefiname,"T_")); |
fprintf(fichtm," (data from text file <a href=\"%s.txt\">%s.txt</a>) \n<br>",subdirf2(optionfilefiname,"T_"),subdirf2(optionfilefiname,"T_")); |
fprintf(fichtm,"<img src=\"%s_%d-%d.svg\">",subdirf2(optionfilefiname,"E_"),k1,nres); |
fprintf(fichtm,"<img src=\"%s_%d-%d.svg\">",subdirf2(optionfilefiname,"E_"),k1,nres); |
/* } /\* end i1 *\/ */ |
/* } /\* end i1 *\/ */ |
}/* End k1 */ |
|
}/* End nres */ |
}/* End nres */ |
fprintf(fichtm,"</ul>"); |
fprintf(fichtm,"</ul>"); |
fflush(fichtm); |
fflush(fichtm); |
Line 7811 void printinggnuplot(char fileresu[], ch
|
Line 8120 void printinggnuplot(char fileresu[], ch
|
|
|
char dirfileres[132],optfileres[132]; |
char dirfileres[132],optfileres[132]; |
char gplotcondition[132], gplotlabel[132]; |
char gplotcondition[132], gplotlabel[132]; |
int cpt=0,k1=0,i=0,k=0,j=0,jk=0,k2=0,k3=0,k4=0,ij=0, ijp=0, l=0; |
int cpt=0,k1=0,i=0,k=0,j=0,jk=0,k2=0,k3=0,k4=0,kf=0,kvar=0,kk=0,ipos=0,iposold=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; |
Line 7837 void printinggnuplot(char fileresu[], ch
|
Line 8146 void printinggnuplot(char fileresu[], ch
|
fprintf(ficgp,"yoff=(%d > 2? 0:1);\n",nlstate); |
fprintf(ficgp,"yoff=(%d > 2? 0:1);\n",nlstate); |
fprintf(ficgp,"\n#Peripheral arrows\nset for [i=1:%d] for [j=1:%d] arrow i*10+j from cos(pi*((1-(%d/2)*2./%d)/2+(i-1)*2./%d))-(i!=j?(i-j)/abs(i-j)*delta:0), yoff +sin(pi*((1-(%d/2)*2./%d)/2+(i-1)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta:0) rto -0.95*(cos(pi*((1-(%d/2)*2./%d)/2+(i-1)*2./%d))+(i!=j?(i-j)/abs(i-j)*delta:0) - cos(pi*((1-(%d/2)*2./%d)/2+(j-1)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta2:0)), -0.95*(sin(pi*((1-(%d/2)*2./%d)/2+(i-1)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta:0) - sin(pi*((1-(%d/2)*2./%d)/2+(j-1)*2./%d))+( i!=j?(i-j)/abs(i-j)*delta2:0)) ls (i < j? 1:2)\n",nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate); |
fprintf(ficgp,"\n#Peripheral arrows\nset for [i=1:%d] for [j=1:%d] arrow i*10+j from cos(pi*((1-(%d/2)*2./%d)/2+(i-1)*2./%d))-(i!=j?(i-j)/abs(i-j)*delta:0), yoff +sin(pi*((1-(%d/2)*2./%d)/2+(i-1)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta:0) rto -0.95*(cos(pi*((1-(%d/2)*2./%d)/2+(i-1)*2./%d))+(i!=j?(i-j)/abs(i-j)*delta:0) - cos(pi*((1-(%d/2)*2./%d)/2+(j-1)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta2:0)), -0.95*(sin(pi*((1-(%d/2)*2./%d)/2+(i-1)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta:0) - sin(pi*((1-(%d/2)*2./%d)/2+(j-1)*2./%d))+( i!=j?(i-j)/abs(i-j)*delta2:0)) ls (i < j? 1:2)\n",nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate); |
|
|
fprintf(ficgp,"\n#Centripete arrows (turning in other direction (1-i) instead of (i-1)) \nset for [i=1:%d] arrow (%d+1)*10+i from cos(pi*((1-(%d/2)*2./%d)/2+(1-i)*2./%d))-(i!=j?(i-j)/abs(i-j)*delta:0), yoff +sin(pi*((1-(%d/2)*2./%d)/2+(1-i)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta:0) rto -0.80*(cos(pi*((1-(%d/2)*2./%d)/2+(1-i)*2./%d))+(i!=j?(i-j)/abs(i-j)*delta:0) ), -0.80*(sin(pi*((1-(%d/2)*2./%d)/2+(1-i)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta:0) + yoff ) ls 4\n",nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate); |
fprintf(ficgp,"\n#Centripete arrows (turning in other direction (1-i) instead of (i-1)) \nset for [i=1:%d] for [j=1:%d] arrow (%d+1)*10+i from cos(pi*((1-(%d/2)*2./%d)/2+(1-i)*2./%d))-(i!=j?(i-j)/abs(i-j)*delta:0), yoff +sin(pi*((1-(%d/2)*2./%d)/2+(1-i)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta:0) rto -0.80*(cos(pi*((1-(%d/2)*2./%d)/2+(1-i)*2./%d))+(i!=j?(i-j)/abs(i-j)*delta:0) ), -0.80*(sin(pi*((1-(%d/2)*2./%d)/2+(1-i)*2./%d)) + (i!=j?(i-j)/abs(i-j)*delta:0) + yoff ) ls 4\n",nlstate, nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate); |
fprintf(ficgp,"\n#show arrow\nunset label\n"); |
fprintf(ficgp,"\n#show arrow\nunset label\n"); |
fprintf(ficgp,"\n#States labels, starting from 2 (2-i) instead of (1-i), was (i-1)\nset for [i=1:%d] label i sprintf(\"State %%d\",i) center at cos(pi*((1-(%d/2)*2./%d)/2+(2-i)*2./%d)), yoff+sin(pi*((1-(%d/2)*2./%d)/2+(2-i)*2./%d)) font \"helvetica, 16\" tc rgbcolor \"blue\"\n",nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate); |
fprintf(ficgp,"\n#States labels, starting from 2 (2-i) instead of (1-i), was (i-1)\nset for [i=1:%d] label i sprintf(\"State %%d\",i) center at cos(pi*((1-(%d/2)*2./%d)/2+(2-i)*2./%d)), yoff+sin(pi*((1-(%d/2)*2./%d)/2+(2-i)*2./%d)) font \"helvetica, 16\" tc rgbcolor \"blue\"\n",nlstate,nlstate,nlstate,nlstate,nlstate,nlstate,nlstate); |
fprintf(ficgp,"\nset label %d+1 sprintf(\"State %%d\",%d+1) center at 0.,0. font \"helvetica, 16\" tc rgbcolor \"red\"\n",nlstate,nlstate); |
fprintf(ficgp,"\nset label %d+1 sprintf(\"State %%d\",%d+1) center at 0.,0. font \"helvetica, 16\" tc rgbcolor \"red\"\n",nlstate,nlstate); |
Line 7874 void printinggnuplot(char fileresu[], ch
|
Line 8183 void printinggnuplot(char fileresu[], ch
|
fprintf(ficgp,"\nset out;unset log\n"); |
fprintf(ficgp,"\nset out;unset log\n"); |
/* fprintf(ficgp,"\nset out \"%s.svg\"; replot; set out; # bug gnuplot",subdirf2(optionfilefiname,"ILK_")); */ |
/* fprintf(ficgp,"\nset out \"%s.svg\"; replot; set out; # bug gnuplot",subdirf2(optionfilefiname,"ILK_")); */ |
|
|
|
/* Plot the probability implied in the likelihood by covariate value */ |
|
fprintf(ficgp,"\nset ter pngcairo size 640, 480"); |
|
/* if(debugILK==1){ */ |
|
for(kf=1; kf <= ncovf; kf++){ /* For each simple dummy covariate of the model */ |
|
kvar=Tvar[TvarFind[kf]]; /* variable */ |
|
k=18+Tvar[TvarFind[kf]];/*offset because there are 18 columns in the ILK_ file */ |
|
for (i=1; i<= nlstate ; i ++) { |
|
fprintf(ficgp,"\nset out \"%s-p%dj-%d.png\";set ylabel \"Probability for each individual/wave\";",subdirf2(optionfilefiname,"ILK_"),i,kvar); |
|
fprintf(ficgp,"unset log;\n# For each simple dummy covariate of the model \n plot \"%s\"",subdirf(fileresilk)); |
|
fprintf(ficgp," u 2:($5 == %d && $6==%d ? $10 : 1/0):($%d==0 ? 7 : 9):($%d==0 ? $6 : $6+4) t \"p%d%d V%d\" with points pt variable ps 0.4 lc variable \\\n",i,1,k,k,i,1,kvar); |
|
for (j=2; j<= nlstate+ndeath ; j ++) { |
|
fprintf(ficgp,",\\\n \"\" u 2:($5 == %d && $6==%d ? $10 : 1/0):($%d==0 ? 7 : 9):($%d==0 ? $6 : $6+4) t \"p%d%d V%d\" with points pt variable ps 0.4 lc variable ",i,j,k,k,i,j,kvar); |
|
} |
|
fprintf(ficgp,";\nset out; unset ylabel;\n"); |
|
} |
|
} /* End of each covariate dummy */ |
|
for(ncovv=1, iposold=0, kk=0; ncovv <= ncovvt ; ncovv++){ |
|
/* Other example V1 + V3 + V5 + age*V1 + age*V3 + age*V5 + V1*V3 + V3*V5 + V1*V5 |
|
* kmodel = 1 2 3 4 5 6 7 8 9 |
|
* varying 1 2 3 4 5 |
|
* ncovv 1 2 3 4 5 6 7 8 |
|
* TvarVV[ncovv] V3 5 1 3 3 5 1 5 |
|
* TvarVVind[ncovv]=kmodel 2 3 7 7 8 8 9 9 |
|
* TvarFind[kmodel] 1 0 0 0 0 0 0 0 0 |
|
* kdata ncovcol=[V1 V2] nqv=0 ntv=[V3 V4] nqtv=V5 |
|
* Dummy[kmodel] 0 0 1 2 2 3 1 1 1 |
|
*/ |
|
ipos=TvarVVind[ncovv]; /* TvarVVind={2, 5, 5] gives the position in the model of the ncovv th varying covariate */ |
|
kvar=TvarVV[ncovv]; /* TvarVV={3, 1, 3} gives the name of each varying covariate */ |
|
/* printf("DebugILK ficgp ncovv=%d, kvar=TvarVV[ncovv]=%d, ipos=TvarVVind[ncovv]=%d, Dummy[ipos]=%d, Typevar[ipos]=%d\n", ncovv,kvar,ipos,Dummy[ipos],Typevar[ipos]); */ |
|
if(ipos!=iposold){ /* Not a product or first of a product */ |
|
/* printf(" %d",ipos); */ |
|
/* fprintf(ficresilk," V%d",TvarVV[ncovv]); */ |
|
/* printf(" DebugILK ficgp suite ipos=%d != iposold=%d\n", ipos, iposold); */ |
|
kk++; /* Position of the ncovv column in ILK_ */ |
|
k=18+ncovf+kk; /*offset because there are 18 columns in the ILK_ file plus ncovf fixed covariate */ |
|
if(Dummy[ipos]==0 && Typevar[ipos]==0){ /* Only if dummy time varying: Dummy(0, 1=quant singor prod without age,2 dummy*age, 3quant*age) Typevar (0 single, 1=*age,2=Vn*vm) */ |
|
for (i=1; i<= nlstate ; i ++) { |
|
fprintf(ficgp,"\nset out \"%s-p%dj-%d.png\";set ylabel \"Probability for each individual/wave\";",subdirf2(optionfilefiname,"ILK_"),i,kvar); |
|
fprintf(ficgp,"unset log;\n# For each simple dummy covariate of the model \n plot \"%s\"",subdirf(fileresilk)); |
|
|
|
if(gnuplotversion >=5.2){ /* Former gnuplot versions do not have variable pointsize!! */ |
|
/* printf("DebugILK gnuplotversion=%g >=5.2\n",gnuplotversion); */ |
|
fprintf(ficgp," u 2:($5 == %d && $6==%d ? $10 : 1/0):($%d==0 ? 7 : 9):($%d==0 ? $6 : $6+4) t \"p%d%d V%d\" with points pt variable ps 0.4 lc variable \\\n",i,1,k,k,i,1,kvar); |
|
for (j=2; j<= nlstate+ndeath ; j ++) { |
|
fprintf(ficgp,",\\\n \"\" u 2:($5 == %d && $6==%d ? $10 : 1/0):($%d==0 ? 7 : 9):($%d==0 ? $6 : $6+4) t \"p%d%d V%d\" with points pt variable ps 0.4 lc variable ",i,j,k,k,i,j,kvar); |
|
} |
|
}else{ |
|
/* printf("DebugILK gnuplotversion=%g <5.2\n",gnuplotversion); */ |
|
fprintf(ficgp," u 2:($5 == %d && $6==%d ? $10 : 1/0):($%d==0 ? $6 : $6+4) t \"p%d%d V%d\" with points pt 7 ps 0.4 lc variable \\\n",i,1,k,i,1,kvar); |
|
for (j=2; j<= nlstate+ndeath ; j ++) { |
|
fprintf(ficgp,",\\\n \"\" u 2:($5 == %d && $6==%d ? $10 : 1/0):($%d==0 ? $6 : $6+4) t \"p%d%d V%d\" with points pt 7 ps 0.4 lc variable ",i,j,k,i,j,kvar); |
|
} |
|
} |
|
fprintf(ficgp,";\nset out; unset ylabel;\n"); |
|
} |
|
}/* End if dummy varying */ |
|
}else{ /*Product */ |
|
/* printf("*"); */ |
|
/* fprintf(ficresilk,"*"); */ |
|
} |
|
iposold=ipos; |
|
} /* For each time varying covariate */ |
|
/* } /\* debugILK==1 *\/ */ |
|
/* unset log; plot "rrtest1_sorted_4/ILK_rrtest1_sorted_4.txt" u 2:($4 == 1 && $5==2 ? $9 : 1/0):5 t "p12" with points lc variable */ |
|
/* fprintf(ficgp,"\nset log y;plot \"%s\" u 2:(-$11):3 t \"All sample, all transitions\" with dots lc variable",subdirf(fileresilk)); */ |
|
/* fprintf(ficgp,"\nreplot \"%s\" u 2:($3 <= 3 ? -$11 : 1/0):3 t \"First 3 individuals\" with line lc variable", subdirf(fileresilk)); */ |
|
fprintf(ficgp,"\nset out;unset log\n"); |
|
/* fprintf(ficgp,"\nset out \"%s.svg\"; replot; set out; # bug gnuplot",subdirf2(optionfilefiname,"ILK_")); */ |
|
|
|
|
|
|
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 ; k1 ++){ /* For each valid combination of covariate */ |
/* for (k1=1; k1<= m ; k1 ++){ /\* For each valid combination of covariate *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
|
k1=TKresult[nres]; |
|
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
/* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ |
/* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ |
if(m != 1 && TKresult[nres]!= k1) |
/* if(m != 1 && TKresult[nres]!= k1) */ |
continue; |
/* continue; */ |
/* We are interested in selected combination by the resultline */ |
/* We are interested in selected combination by the resultline */ |
/* printf("\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); */ |
/* printf("\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); */ |
fprintf(ficgp,"\n# 1st: Forward (stable period) prevalence with CI: 'VPL_' files and live state =%d ", cpt); |
fprintf(ficgp,"\n# 1st: Forward (stable period) prevalence with CI: 'VPL_' files and live state =%d ", cpt); |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the value of the covariate corresponding to k1 combination *\/ */ |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
lv=codtabm(k1,TnsdVar[Tvaraff[k]]); |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* 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 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each covariate k get corresponding value lv for combination k1 *\/ */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the value of the covariate corresponding to k1 combination *\\/ *\/ */ |
vlv= nbcode[Tvaraff[k]][lv]; /* vlv is the value of the covariate lv, 0 or 1 */ |
/* lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */ |
/* For each combination of covariate k1 (V1=1, V3=0), we printed the current covariate k and its value vlv */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
/* printf(" V%d=%d ",Tvaraff[k],vlv); */ |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* vlv= nbcode[Tvaraff[k]][lv]; /\* vlv is the value of the covariate lv, 0 or 1 *\/ */ |
} |
/* /\* For each combination of covariate k1 (V1=1, V3=0), we printed the current covariate k and its value vlv *\/ */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* /\* printf(" V%d=%d ",Tvaraff[k],vlv); *\/ */ |
/* printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
/* } */ |
|
/* 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]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
} |
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
/* printf("\n#\n"); */ |
/* printf("\n#\n"); */ |
Line 7916 void printinggnuplot(char fileresu[], ch
|
Line 8303 void printinggnuplot(char fileresu[], ch
|
fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"V_"),cpt,k1,nres); |
fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" \n",subdirf2(optionfilefiname,"V_"),cpt,k1,nres); |
fprintf(ficgp,"\n#set out \"V_%s_%d-%d-%d.svg\" \n",optionfilefiname,cpt,k1,nres); |
fprintf(ficgp,"\n#set out \"V_%s_%d-%d-%d.svg\" \n",optionfilefiname,cpt,k1,nres); |
/* fprintf(ficgp,"set label \"Alive state %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",cpt,gplotlabel); */ |
/* fprintf(ficgp,"set label \"Alive state %d %s\" at graph 0.98,0.5 center rotate font \"Helvetica,12\"\n",cpt,gplotlabel); */ |
fprintf(ficgp,"set title \"Alive state %d %s model=%s\" font \"Helvetica,12\"\n",cpt,gplotlabel,model); |
fprintf(ficgp,"set title \"Alive state %d %s model=1+age+%s\" font \"Helvetica,12\"\n",cpt,gplotlabel,model); |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \nset ter svg size 640, 480\nplot [%.f:%.f] \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),nres-1,nres-1,nres); |
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \nset ter svg size 640, 480\nplot [%.f:%.f] \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),nres-1,nres-1,nres); |
/* fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \nset ter svg size 640, 480\nplot [%.f:%.f] \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),k1-1,k1-1,nres); */ |
/* fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \nset ter svg size 640, 480\nplot [%.f:%.f] \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",ageminpar,fage,subdirf2(fileresu,"VPL_"),k1-1,k1-1,nres); */ |
/* k1-1 error should be nres-1*/ |
/* k1-1 error should be nres-1*/ |
Line 8015 void printinggnuplot(char fileresu[], ch
|
Line 8402 void printinggnuplot(char fileresu[], ch
|
/* fprintf(ficgp,"\nset out ;unset label;\n"); */ |
/* fprintf(ficgp,"\nset out ;unset label;\n"); */ |
fprintf(ficgp,"\nset out ;unset title;\n"); |
fprintf(ficgp,"\nset out ;unset title;\n"); |
} /* nres */ |
} /* nres */ |
} /* k1 */ |
/* } /\* k1 *\/ */ |
} /* cpt */ |
} /* cpt */ |
|
|
|
|
/*2 eme*/ |
/*2 eme*/ |
for (k1=1; k1<= m ; k1 ++){ |
/* for (k1=1; k1<= m ; k1 ++){ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files "); |
fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files "); |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */ |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
lv=codtabm(k1,TnsdVar[Tvaraff[k]]); |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each covariate and each value *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */ |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */ |
} |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
/* for(k=1; k <= ncovds; k++){ */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
/* } */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
/* /\* for(k=1; k <= ncovds; k++){ *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
/* 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]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
} |
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
Line 8083 void printinggnuplot(char fileresu[], ch
|
Line 8475 void printinggnuplot(char fileresu[], ch
|
} /* vpopbased */ |
} /* vpopbased */ |
fprintf(ficgp,"\nset out;set out \"%s_%d-%d.svg\"; replot; set out; unset label;\n",subdirf2(optionfilefiname,"E_"),k1,nres); /* Buggy gnuplot */ |
fprintf(ficgp,"\nset out;set out \"%s_%d-%d.svg\"; replot; set out; unset label;\n",subdirf2(optionfilefiname,"E_"),k1,nres); /* Buggy gnuplot */ |
} /* end nres */ |
} /* end nres */ |
} /* k1 end 2 eme*/ |
/* } /\* k1 end 2 eme*\/ */ |
|
|
|
|
/*3eme*/ |
/*3eme*/ |
for (k1=1; k1<= m ; k1 ++){ |
/* for (k1=1; k1<= m ; k1 ++){ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
|
|
for (cpt=1; cpt<= nlstate ; cpt ++) { /* Fragile no verification of covariate values */ |
for (cpt=1; cpt<= nlstate ; cpt ++) { /* Fragile no verification of covariate values */ |
fprintf(ficgp,"\n\n# 3d: Life expectancy with EXP_ files: combination=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n\n# 3d: Life expectancy with EXP_ files: combination=%d state=%d",k1, cpt); |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */ |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /* Should be the covariate value corresponding to combination k1 and covariate k */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each covariate and each value *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */ |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */ |
} |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][resultmodel[nres][k4]]); |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][resultmodel[nres][k4]]); |
/* } */ |
} |
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
if(invalidvarcomb[k1]){ |
if(invalidvarcomb[k1]){ |
Line 8140 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
Line 8537 plot [%.f:%.f] \"%s\" every :::%d::%d u
|
} |
} |
fprintf(ficgp,"\nunset label;\n"); |
fprintf(ficgp,"\nunset label;\n"); |
} /* end nres */ |
} /* end nres */ |
} /* end kl 3eme */ |
/* } /\* 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 covariate and each value */ |
/* for (k1=1; k1<=m; k1++){ /\* For each covariate and each value *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state cpt*/ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state cpt*/ |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
fprintf(ficgp,"\n#\n#\n# Survival functions in state j : 'LIJ_' files, cov=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n#\n#\n# Survival functions in state %d : 'LIJ_' files, cov=%d state=%d", cpt, k1, cpt); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
lv=codtabm(k1,TnsdVar[Tvaraff[k]]); |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each covariate and each value *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */ |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */ |
} |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
} |
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
Line 8193 set ter svg size 640, 480\nunset log y\n
|
Line 8595 set ter svg size 640, 480\nunset log y\n
|
fprintf(ficgp,"\nset out; unset label;\n"); |
fprintf(ficgp,"\nset out; unset label;\n"); |
} /* end cpt state*/ |
} /* end cpt state*/ |
} /* end nres */ |
} /* end nres */ |
} /* end covariate k1 */ |
/* } /\* 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 combination if any */ |
/* for (k1=1; k1<= m ; k1++){ /\* For each covariate combination if any *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each inital state */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each inital state */ |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
fprintf(ficgp,"\n#\n#\n# Survival functions in state j and all livestates from state i by final state j: 'lij' files, cov=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n#\n#\n# Survival functions in state j and all livestates from state i by final state j: 'lij' files, cov=%d state=%d",k1, cpt); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
lv=codtabm(k1,TnsdVar[Tvaraff[k]]); |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each covariate and each value *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */ |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */ |
} |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
} |
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
Line 8253 set ter svg size 640, 480\nunset log y\n
|
Line 8660 set ter svg size 640, 480\nunset log y\n
|
} |
} |
fprintf(ficgp,"\nset out; unset label;\n"); |
fprintf(ficgp,"\nset out; unset label;\n"); |
} /* end cpt state*/ |
} /* end cpt state*/ |
} /* end covariate */ |
/* } /\* end covariate *\/ */ |
} /* end nres */ |
} /* end nres */ |
|
|
/* 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 if any */ |
/* for (k1=1; k1<= m ; k1 ++) /\* For each covariate combination if any *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state of arrival */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state of arrival */ |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
fprintf(ficgp,"\n#\n#\n#CV preval stable (forward): 'pij' files, covariatecombination#=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n#\n#\n#CV preval stable (forward): 'pij' files, covariatecombination#=%d state=%d",k1, cpt); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */ |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
lv=codtabm(k1,TnsdVar[Tvaraff[k]]); |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each covariate and each value *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */ |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */ |
} |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
} |
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
Line 8311 set ter svg size 640, 480\nunset log y\n
|
Line 8723 set ter svg size 640, 480\nunset log y\n
|
/* 7eme */ |
/* 7eme */ |
if(prevbcast == 1){ |
if(prevbcast == 1){ |
/* CV backward prevalence for each covariate */ |
/* CV backward prevalence for each covariate */ |
for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
/* for (k1=1; k1<= m ; k1 ++) /\* For each covariate combination if any *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life origin state */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life origin state */ |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
fprintf(ficgp,"\n#\n#\n#CV Backward stable prevalence: 'pijb' files, covariatecombination#=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n#\n#\n#CV Backward stable prevalence: 'pijb' files, covariatecombination#=%d state=%d",k1, cpt); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate and each value */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */ |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
lv=codtabm(k1,TnsdVar[Tvaraff[k]]); |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each covariate and each value *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */ |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */ |
} |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
} |
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
Line 8369 set ter svg size 640, 480\nunset log y\n
|
Line 8786 set ter svg size 640, 480\nunset log y\n
|
if(prevfcast==1){ |
if(prevfcast==1){ |
/* Projection from cross-sectional to forward stable (period) prevalence for each covariate */ |
/* Projection from cross-sectional to forward stable (period) prevalence for each covariate */ |
|
|
for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
/* for (k1=1; k1<= m ; k1 ++) /\* For each covariate combination if any *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
fprintf(ficgp,"\n#\n#\n#Projection of prevalence to forward stable prevalence (period): 'PROJ_' files, covariatecombination#=%d state=%d",k1, cpt); |
fprintf(ficgp,"\n#\n#\n#Projection of prevalence to forward stable prevalence (period): 'PROJ_' files, covariatecombination#=%d state=%d",k1, cpt); |
for (k=1; k<=cptcoveff; k++){ /* For each correspondig covariate value */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to k1 combination and kth covariate *\/ */ |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
lv=codtabm(k1,TnsdVar[Tvaraff[k]]); |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each correspondig covariate value *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate value corresponding to k1 combination and kth covariate *\\/ *\/ */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */ |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */ |
} |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
} |
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
Line 8486 set ter svg size 640, 480\nunset log y\n
|
Line 8908 set ter svg size 640, 480\nunset log y\n
|
if(prevbcast==1){ |
if(prevbcast==1){ |
/* Back projection from cross-sectional to stable (mixed) for each covariate */ |
/* Back projection from cross-sectional to stable (mixed) for each covariate */ |
|
|
for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
/* for (k1=1; k1<= m ; k1 ++) /\* For each covariate combination if any *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
k1=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
/* if(m != 1 && TKresult[nres]!= k1) */ |
|
/* continue; */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
fprintf(ficgp,"\n#\n#\n#Back projection of prevalence to stable (mixed) back prevalence: 'BPROJ_' files, covariatecombination#=%d originstate=%d",k1, cpt); |
fprintf(ficgp,"\n#\n#\n#Back projection of prevalence to stable (mixed) back prevalence: 'BPROJ_' files, covariatecombination#=%d originstate=%d",k1, cpt); |
for (k=1; k<=cptcoveff; k++){ /* For each correspondig covariate value */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k get corresponding value lv for combination k1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to k1 combination and kth covariate *\/ */ |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /* Should be the covariate value corresponding to combination k1 and covariate k */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each correspondig covariate value *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate value corresponding to k1 combination and kth covariate *\\/ *\/ */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
/* lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */ |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* /\* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 *\/ */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* /\* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */ |
} |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
} |
} |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
Line 8561 set ter svg size 640, 480\nunset log y\n
|
Line 8988 set ter svg size 640, 480\nunset log y\n
|
fprintf(ficgp," u %d:(",ioffset); |
fprintf(ficgp," u %d:(",ioffset); |
kl=0; |
kl=0; |
strcpy(gplotcondition,"("); |
strcpy(gplotcondition,"("); |
for (k=1; k<=cptcoveff; k++){ /* For each covariate writing the chain of conditions */ |
for (k=1; k<=cptcovs; k++){ /* For each covariate k of the resultline, get corresponding value lv for combination k1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */ |
if(Dummy[modelresult[nres][k]]==0){ /* To be verified */ |
lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /* Should be the covariate value corresponding to combination k1 and covariate k */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each covariate writing the chain of conditions *\/ */ |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */ |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
/* lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */ |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
lv=Tvresult[nres][k]; |
/* vlv= nbcode[Tvaraff[k]][lv]; /\* Value of the modality of Tvaraff[k] *\/ */ |
vlv=TinvDoQresult[nres][Tvresult[nres][k]]; |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
kl++; |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
sprintf(gplotcondition+strlen(gplotcondition),"$%d==%d && $%d==%d " ,kl,Tvaraff[k], kl+1, nbcode[Tvaraff[k]][lv]); |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
kl++; |
/* vlv= nbcode[Tvaraff[k]][lv]; /\* Value of the modality of Tvaraff[k] *\/ */ |
if(k <cptcoveff && cptcoveff>1) |
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
sprintf(gplotcondition+strlen(gplotcondition)," && "); |
kl++; |
|
/* sprintf(gplotcondition+strlen(gplotcondition),"$%d==%d && $%d==%d " ,kl,Tvaraff[k], kl+1, nbcode[Tvaraff[k]][lv]); */ |
|
sprintf(gplotcondition+strlen(gplotcondition),"$%d==%d && $%d==%lg " ,kl,Tvresult[nres][k], kl+1,TinvDoQresult[nres][Tvresult[nres][k]]); |
|
kl++; |
|
if(k <cptcovs && cptcovs>1) |
|
sprintf(gplotcondition+strlen(gplotcondition)," && "); |
|
} |
} |
} |
strcpy(gplotcondition+strlen(gplotcondition),")"); |
strcpy(gplotcondition+strlen(gplotcondition),")"); |
/* 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 *\/ */ |
/* 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 *\/ */ |
Line 8638 set ter svg size 640, 480\nunset log y\n
|
Line 9071 set ter svg size 640, 480\nunset log y\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,"#Number of graphics: first is logit, 2nd is probabilities, third is incidences per year\n"); |
fprintf(ficgp,"#Number of graphics: first is logit, 2nd is probabilities, third is incidences per year\n"); |
fprintf(ficgp,"#model=%s \n",model); |
fprintf(ficgp,"#model=1+age+%s \n",model); |
fprintf(ficgp,"# Type of graphic ng=%d\n",ng); |
fprintf(ficgp,"# Type of graphic ng=%d\n",ng); |
fprintf(ficgp,"# k1=1 to 2^%d=%d\n",cptcoveff,m);/* to be checked */ |
fprintf(ficgp,"# k1=1 to 2^%d=%d\n",cptcoveff,m);/* to be checked */ |
for(k1=1; k1 <=m; k1++) /* For each combination of covariate */ |
/* for(k1=1; k1 <=m; k1++) /\* For each combination of covariate *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(m != 1 && TKresult[nres]!= k1) |
/* k1=nres; */ |
continue; |
k1=TKresult[nres]; |
fprintf(ficgp,"\n\n# Combination of dummy k1=%d which is ",k1); |
if(TKresult[nres]==0) k1=1; /* To be checked for noresult */ |
|
fprintf(ficgp,"\n\n# Resultline k1=%d ",k1); |
strcpy(gplotlabel,"("); |
strcpy(gplotlabel,"("); |
/*sprintf(gplotlabel+strlen(gplotlabel)," Dummy combination %d ",k1);*/ |
/*sprintf(gplotlabel+strlen(gplotlabel)," Dummy combination %d ",k1);*/ |
for (k=1; k<=cptcoveff; k++){ /* For each correspondig covariate value */ |
for (k=1; k<=cptcovs; k++){ /**< cptcovs number of SIMPLE covariates in the model V2+V1 =2 (dummy or quantit or time varying) */ |
/* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to k1 combination and kth covariate *\/ */ |
/* for each resultline nres, and position k, Tvresult[nres][k] gives the name of the variable and |
lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /* Should be the covariate value corresponding to combination k1 and covariate k */ |
TinvDoQresult[nres][Tvresult[nres][k]] gives its value double or integer) */ |
/* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 */ |
fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(1,2,4) = 1 because h=1 k= 1 (1) 1 1 */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]); |
/* decodtabm(13,3,4)= 2 because h=13 k= 1 1 (2) 2 */ |
} |
/* vlv= nbcode[Tvaraff[k]][lv]; */ |
/* if(m != 1 && TKresult[nres]!= k1) */ |
vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; |
/* continue; */ |
fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); |
/* fprintf(ficgp,"\n\n# Combination of dummy k1=%d which is ",k1); */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); |
/* strcpy(gplotlabel,"("); */ |
} |
/* /\*sprintf(gplotlabel+strlen(gplotlabel)," Dummy combination %d ",k1);*\/ */ |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
/* for (k=1; k<=cptcoveff; k++){ /\* For each correspondig covariate value *\/ */ |
fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate value corresponding to k1 combination and kth covariate *\\/ *\/ */ |
sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); |
/* lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */ |
} |
/* /\* decodtabm(1,1,4) = 1 because h=1 k= (1) 1 1 1 *\/ */ |
|
/* /\* decodtabm(1,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]; *\/ */ |
|
/* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */ |
|
/* fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */ |
|
/* } */ |
|
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */ |
|
/* } */ |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
strcpy(gplotlabel+strlen(gplotlabel),")"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\n#\n"); |
fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" ",subdirf2(optionfilefiname,"PE_"),k1,ng,nres); |
fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" ",subdirf2(optionfilefiname,"PE_"),k1,ng,nres); |
Line 8878 set ter svg size 640, 480\nunset log y\n
|
Line 9323 set ter svg size 640, 480\nunset log y\n
|
} /* end k2 */ |
} /* end k2 */ |
/* fprintf(ficgp,"\n set out; unset label;set key default;\n"); */ |
/* fprintf(ficgp,"\n set out; unset label;set key default;\n"); */ |
fprintf(ficgp,"\n set out; unset title;set key default;\n"); |
fprintf(ficgp,"\n set out; unset title;set key default;\n"); |
} /* end k1 */ |
} /* end resultline */ |
} /* end ng */ |
} /* end ng */ |
/* avoid: */ |
/* avoid: */ |
fflush(ficgp); |
fflush(ficgp); |
Line 9447 void prevforecast(char fileres[], double
|
Line 9892 void prevforecast(char fileres[], double
|
i1=pow(2,cptcoveff); |
i1=pow(2,cptcoveff); |
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k=1; k<=i1;k++){ /* We find the combination equivalent to result line values of dummies */ |
k=TKresult[nres]; |
|
if(TKresult[nres]==0) k=1; /* To be checked for noresult */ |
|
/* for(k=1; k<=i1;k++){ /\* We find the combination equivalent to result line values of dummies *\/ */ |
if(i1 != 1 && TKresult[nres]!= k) |
if(i1 != 1 && TKresult[nres]!= k) |
continue; |
continue; |
fprintf(ficresvpl,"\n#****** "); |
fprintf(ficresvpl,"\n#****** "); |
printf("\n#****** "); |
printf("\n#****** "); |
fprintf(ficlog,"\n#****** "); |
fprintf(ficlog,"\n#****** "); |
for(j=1;j<=cptcoveff;j++) { |
for(j=1;j<=cptcovs;j++) { |
fprintf(ficresvpl,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficresvpl,"V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficlog,"V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
printf("V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
|
/* fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
|
/* printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
} |
} |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
/* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ */ |
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
fprintf(ficresvpl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* fprintf(ficresvpl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
} |
/* } */ |
fprintf(ficresvpl,"******\n"); |
fprintf(ficresvpl,"******\n"); |
printf("******\n"); |
printf("******\n"); |
fprintf(ficlog,"******\n"); |
fprintf(ficlog,"******\n"); |
Line 9504 void prevforecast(char fileres[], double
|
Line 9953 void prevforecast(char fileres[], double
|
i1=pow(2,cptcoveff); |
i1=pow(2,cptcoveff); |
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k=1; k<=i1;k++){ |
k=TKresult[nres]; |
if(i1 != 1 && TKresult[nres]!= k) |
if(TKresult[nres]==0) k=1; /* To be checked for noresult */ |
continue; |
/* for(k=1; k<=i1;k++){ */ |
|
/* if(i1 != 1 && TKresult[nres]!= k) */ |
|
/* continue; */ |
fprintf(ficresvbl,"\n#****** "); |
fprintf(ficresvbl,"\n#****** "); |
printf("\n#****** "); |
printf("\n#****** "); |
fprintf(ficlog,"\n#****** "); |
fprintf(ficlog,"\n#****** "); |
for(j=1;j<=cptcoveff;j++) { |
for (j=1; j<= cptcovs; j++){ /* For each selected (single) quantitative value */ |
fprintf(ficresvbl,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
printf(" V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][resultmodel[nres][j]]); |
fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficresvbl," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][resultmodel[nres][j]]); |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficlog," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][resultmodel[nres][j]]); |
} |
/* for(j=1;j<=cptcoveff;j++) { */ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficresvbl,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
fprintf(ficresvbl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* } */ |
|
/* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
|
/* fprintf(ficresvbl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
|
/* fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
} |
} |
fprintf(ficresvbl,"******\n"); |
fprintf(ficresvbl,"******\n"); |
printf("******\n"); |
printf("******\n"); |
Line 10006 int readdata(char datafile[], int firsto
|
Line 10461 int readdata(char datafile[], int firsto
|
printf("Covariate type in the data: V%d, DummyV(V%d)=%d, FixedV(V%d)=%d\n",v,v,DummyV[v],v,FixedV[v]); |
printf("Covariate type in the data: V%d, DummyV(V%d)=%d, FixedV(V%d)=%d\n",v,v,DummyV[v],v,FixedV[v]); |
fprintf(ficlog,"Covariate type in the data: V%d, DummyV(V%d)=%d, FixedV(V%d)=%d\n",v,v,DummyV[v],v,FixedV[v]); |
fprintf(ficlog,"Covariate type in the data: V%d, DummyV(V%d)=%d, FixedV(V%d)=%d\n",v,v,DummyV[v],v,FixedV[v]); |
} |
} |
|
|
|
ncovcolt=ncovcol+nqv+ntv+nqtv; /* total of covariates in the data, not in the model equation */ |
|
|
if((fic=fopen(datafile,"r"))==NULL) { |
if((fic=fopen(datafile,"r"))==NULL) { |
printf("Problem while opening datafile: %s with errno='%s'\n", datafile,strerror(errno));fflush(stdout); |
printf("Problem while opening datafile: %s with errno='%s'\n", datafile,strerror(errno));fflush(stdout); |
fprintf(ficlog,"Problem while opening datafile: %s with errno='%s'\n", datafile,strerror(errno));fflush(ficlog);return 1; |
fprintf(ficlog,"Problem while opening datafile: %s with errno='%s'\n", datafile,strerror(errno));fflush(ficlog);return 1; |
Line 10084 int readdata(char datafile[], int firsto
|
Line 10541 int readdata(char datafile[], int firsto
|
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][ncovcol+nqv+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); |
Line 10104 int readdata(char datafile[], int firsto
|
Line 10561 int readdata(char datafile[], int firsto
|
return 1; |
return 1; |
} |
} |
cotqvar[j][iv][i]=dval; |
cotqvar[j][iv][i]=dval; |
cotvar[j][ntv+iv][i]=dval; |
cotvar[j][ncovcol+nqv+ntv+iv][i]=dval; /* because cotvar starts now at first ntv */ |
} |
} |
strcpy(line,stra); |
strcpy(line,stra); |
}/* end loop ntqv */ |
}/* end loop ntqv */ |
Line 10144 int readdata(char datafile[], int firsto
|
Line 10601 int readdata(char datafile[], int firsto
|
Exiting.\n",lval,linei, i,line,iv,j);fflush(ficlog); |
Exiting.\n",lval,linei, i,line,iv,j);fflush(ficlog); |
return 1; |
return 1; |
} |
} |
cotvar[j][iv][i]=(double)(lval); |
cotvar[j][ncovcol+nqv+iv][i]=(double)(lval); |
strcpy(line,stra); |
strcpy(line,stra); |
}/* end loop ntv */ |
}/* end loop ntv */ |
|
|
Line 10357 int decoderesult( char resultline[], int
|
Line 10814 int decoderesult( char resultline[], int
|
printf("decoderesult:%s\n",resultline); |
printf("decoderesult:%s\n",resultline); |
|
|
strcpy(resultsav,resultline); |
strcpy(resultsav,resultline); |
printf("Decoderesult resultsav=\"%s\" resultline=\"%s\"\n", resultsav, resultline); |
/* printf("Decoderesult resultsav=\"%s\" resultline=\"%s\"\n", resultsav, resultline); */ |
if (strlen(resultsav) >1){ |
if (strlen(resultsav) >1){ |
j=nbocc(resultsav,'='); /**< j=Number of covariate values'=' in this resultline */ |
j=nbocc(resultsav,'='); /**< j=Number of covariate values'=' in this resultline */ |
} |
} |
Line 10406 int decoderesult( char resultline[], int
|
Line 10863 int decoderesult( char resultline[], int
|
} |
} |
} |
} |
if(match == 0){ |
if(match == 0){ |
printf("Error in result line (Dummy single): V%d is missing in result: %s according to model=%s. Tvar[k1=%d]=%d is different from Tvarsel[k2=%d]=%d.\n",Tvar[k1], resultline, model,k1, Tvar[k1], k2, Tvarsel[k2]); |
printf("Error in result line (Dummy single): V%d is missing in result: %s according to model=1+age+%s. Tvar[k1=%d]=%d is different from Tvarsel[k2=%d]=%d.\n",Tvar[k1], resultline, model,k1, Tvar[k1], k2, Tvarsel[k2]); |
fprintf(ficlog,"Error in result line (Dummy single): V%d is missing in result: %s according to model=%s\n",Tvar[k1], resultline, model); |
fprintf(ficlog,"Error in result line (Dummy single): V%d is missing in result: %s according to model=1+age+%s\n",Tvar[k1], resultline, model); |
return 1; |
return 1; |
} |
} |
}else if(Typevar[k1]==1){ /* Product with age We want to get the position k2 in the resultline of the product k1 in the model line*/ |
}else if(Typevar[k1]==1){ /* Product with age We want to get the position k2 in the resultline of the product k1 in the model line*/ |
Line 10417 int decoderesult( char resultline[], int
|
Line 10874 int decoderesult( char resultline[], int
|
if(Tvar[k1]==Tvarsel[k2]) {/* Tvar is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
if(Tvar[k1]==Tvarsel[k2]) {/* Tvar is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
modelresult[nres][k2]=k1;/* we found a Vn=1 corrresponding to Vn*age in the model modelresult[2]=1 modelresult[1]=2 modelresult[3]=3 modelresult[6]=4 modelresult[9]=5 */ |
modelresult[nres][k2]=k1;/* we found a Vn=1 corrresponding to Vn*age in the model modelresult[2]=1 modelresult[1]=2 modelresult[3]=3 modelresult[6]=4 modelresult[9]=5 */ |
resultmodel[nres][k1]=k2; /* Added here */ |
resultmodel[nres][k1]=k2; /* Added here */ |
printf("Decoderesult first modelresult[k2=%d]=%d (k1) V%d*AGE\n",k2,k1,Tvar[k1]); |
/* printf("Decoderesult first modelresult[k2=%d]=%d (k1) V%d*AGE\n",k2,k1,Tvar[k1]); */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
break; |
break; |
} |
} |
} |
} |
if(match == 0){ |
if(match == 0){ |
printf("Error in result line (Product with age): V%d is missing in result: %s according to model=%s (Tvarsel[k2=%d]=%d)\n",Tvar[k1], resultline, model, k2, Tvarsel[k2]); |
printf("Error in result line (Product with age): V%d is missing in result: %s according to model=1+age+%s (Tvarsel[k2=%d]=%d)\n",Tvar[k1], resultline, model, k2, Tvarsel[k2]); |
fprintf(ficlog,"Error in result line (Product with age): V%d is missing in result: %s according to model=%s (Tvarsel[k2=%d]=%d)\n",Tvar[k1], resultline, model, k2, Tvarsel[k2]); |
fprintf(ficlog,"Error in result line (Product with age): V%d is missing in result: %s according to model=1+age+%s (Tvarsel[k2=%d]=%d)\n",Tvar[k1], resultline, model, k2, Tvarsel[k2]); |
return 1; |
return 1; |
} |
} |
}else if(Typevar[k1]==2){ /* Product No age We want to get the position in the resultline of the product in the model line*/ |
}else if(Typevar[k1]==2){ /* Product No age We want to get the position in the resultline of the product in the model line*/ |
/* resultmodel[nres][of such a Vn * Vm product k1] is not unique, so can't exist, we feed Tvard[k1][1] and [2] */ |
/* resultmodel[nres][of such a Vn * Vm product k1] is not unique, so can't exist, we feed Tvard[k1][1] and [2] */ |
match=0; |
match=0; |
printf("Decoderesult very first Product Tvardk[k1=%d][1]=%d Tvardk[k1=%d][2]=%d V%d * V%d\n",k1,Tvardk[k1][1],k1,Tvardk[k1][2],Tvardk[k1][1],Tvardk[k1][2]); |
/* printf("Decoderesult very first Product Tvardk[k1=%d][1]=%d Tvardk[k1=%d][2]=%d V%d * V%d\n",k1,Tvardk[k1][1],k1,Tvardk[k1][2],Tvardk[k1][1],Tvardk[k1][2]); */ |
for(k2=1; k2 <=j;k2++){/* Loop on resultline. In result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
for(k2=1; k2 <=j;k2++){/* Loop on resultline. In result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
if(Tvardk[k1][1]==Tvarsel[k2]) {/* Tvardk is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
if(Tvardk[k1][1]==Tvarsel[k2]) {/* Tvardk is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
/* modelresult[k2]=k1; */ |
/* modelresult[k2]=k1; */ |
printf("Decoderesult first Product modelresult[k2=%d]=%d (k1) V%d * \n",k2,k1,Tvarsel[k2]); |
/* printf("Decoderesult first Product modelresult[k2=%d]=%d (k1) V%d * \n",k2,k1,Tvarsel[k2]); */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
} |
} |
} |
} |
if(match == 0){ |
if(match == 0){ |
printf("Error in result line (Product without age first variable): V%d is missing in result: %s according to model=%s\n",Tvardk[k1][1], resultline, model); |
printf("Error in result line (Product without age first variable): V%d is missing in result: %s according to model=1+age+%s\n",Tvardk[k1][1], resultline, model); |
fprintf(ficlog,"Error in result line (Product without age first variable): V%d is missing in result: %s according to model=%s\n",Tvardk[k1][1], resultline, model); |
fprintf(ficlog,"Error in result line (Product without age first variable): V%d is missing in result: %s according to model=1+age+%s\n",Tvardk[k1][1], resultline, model); |
return 1; |
return 1; |
} |
} |
match=0; |
match=0; |
for(k2=1; k2 <=j;k2++){/* Loop on resultline. In result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
for(k2=1; k2 <=j;k2++){/* Loop on resultline. In result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
if(Tvardk[k1][2]==Tvarsel[k2]) {/* Tvardk is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
if(Tvardk[k1][2]==Tvarsel[k2]) {/* Tvardk is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
/* modelresult[k2]=k1;*/ |
/* modelresult[k2]=k1;*/ |
printf("Decoderesult second Product modelresult[k2=%d]=%d (k1) * V%d \n ",k2,k1,Tvarsel[k2]); |
/* printf("Decoderesult second Product modelresult[k2=%d]=%d (k1) * V%d \n ",k2,k1,Tvarsel[k2]); */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
break; |
break; |
} |
} |
} |
} |
if(match == 0){ |
if(match == 0){ |
printf("Error in result line (Product without age second variable): V%d is missing in result: %s according to model=%s\n",Tvardk[k1][2], resultline, model); |
printf("Error in result line (Product without age second variable): V%d is missing in result: %s according to model=1+age+%s\n",Tvardk[k1][2], resultline, model); |
fprintf(ficlog,"Error in result line (Product without age second variable): V%d is missing in result : %s according to model=%s\n",Tvardk[k1][2], resultline, model); |
fprintf(ficlog,"Error in result line (Product without age second variable): V%d is missing in result : %s according to model=1+age+%s\n",Tvardk[k1][2], resultline, model); |
return 1; |
return 1; |
} |
} |
}/* End of testing */ |
}/* End of testing */ |
Line 10474 int decoderesult( char resultline[], int
|
Line 10931 int decoderesult( char resultline[], int
|
} |
} |
} |
} |
if(match == 0){ |
if(match == 0){ |
printf("Error in result line: variable V%d is missing in model; result: %s, model=%s\n",Tvarsel[k2], resultline, model); |
printf("Error in result line: variable V%d is missing in model; result: %s, model=1+age+%s\n",Tvarsel[k2], resultline, model); |
fprintf(ficlog,"Error in result line: variable V%d is missing in model; result: %s, model=%s\n",Tvarsel[k2], resultline, model); |
fprintf(ficlog,"Error in result line: variable V%d is missing in model; result: %s, model=1+age+%s\n",Tvarsel[k2], resultline, model); |
return 1; |
return 1; |
}else if(match > 1){ |
}else if(match > 1){ |
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=1+age+%s\n",k2, resultline, model); |
fprintf(ficlog,"Error in result line: %d doubled; result: %s, model=%s\n",k2, resultline, model); |
fprintf(ficlog,"Error in result line: %d doubled; result: %s, model=1+age+%s\n",k2, resultline, model); |
return 1; |
return 1; |
} |
} |
} |
} |
Line 10531 int decoderesult( char resultline[], int
|
Line 10988 int decoderesult( char resultline[], int
|
Tvresult[nres][k3]=(int)Tvarsel[k3];/* Tvresult[nres][1]=4 Tvresult[nres][3]=1 */ |
Tvresult[nres][k3]=(int)Tvarsel[k3];/* Tvresult[nres][1]=4 Tvresult[nres][3]=1 */ |
Tinvresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* Tinvresult[nres][4]=1 */ |
Tinvresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* Tinvresult[nres][4]=1 */ |
precov[nres][k1]=Tvalsel[k3]; /* Value from resultline of the variable at the k1 position in the model */ |
precov[nres][k1]=Tvalsel[k3]; /* Value from resultline of the variable at the k1 position in the model */ |
printf("Decoderesult Dummy k=%d, k1=%d precov[nres=%d][k1=%d]=%.f V(k2=V%d)= Tvalsel[%d]=%d, 2**(%d)\n",k, k1, nres, k1,precov[nres][k1], k2, k3, (int)Tvalsel[k3], k4); |
/* printf("Decoderesult Dummy k=%d, k1=%d precov[nres=%d][k1=%d]=%.f V(k2=V%d)= Tvalsel[%d]=%d, 2**(%d)\n",k, k1, nres, k1,precov[nres][k1], k2, k3, (int)Tvalsel[k3], k4); */ |
k4++;; |
k4++;; |
}else if( Dummy[k1]==1 && Typevar[k1]==0 ){ /* Quantitative and single */ |
}else if( Dummy[k1]==1 && Typevar[k1]==0 ){ /* Quantitative and single */ |
/* Tqresult[nres][result_position]= value of the variable at the result_position in the nres resultline */ |
/* Tqresult[nres][result_position]= value of the variable at the result_position in the nres resultline */ |
Line 10549 int decoderesult( char resultline[], int
|
Line 11006 int decoderesult( char resultline[], int
|
Tqinvresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
Tqinvresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
TinvDoQresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
TinvDoQresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
precov[nres][k1]=Tvalsel[k3q]; |
precov[nres][k1]=Tvalsel[k3q]; |
printf("Decoderesult Quantitative nres=%d,precov[nres=%d][k1=%d]=%.f V(k2q=V%d)= Tvalsel[%d]=%d, Tvarsel[%d]=%f\n",nres, nres, k1,precov[nres][k1], k2q, k3q, Tvarsel[k3q], k3q, Tvalsel[k3q]); |
/* printf("Decoderesult Quantitative nres=%d,precov[nres=%d][k1=%d]=%.f V(k2q=V%d)= Tvalsel[%d]=%d, Tvarsel[%d]=%f\n",nres, nres, k1,precov[nres][k1], k2q, k3q, Tvarsel[k3q], k3q, Tvalsel[k3q]); */ |
k4q++;; |
k4q++;; |
}else if( Dummy[k1]==2 ){ /* For dummy with age product */ |
}else if( Dummy[k1]==2 ){ /* For dummy with age product */ |
/* Tvar[k1]; */ /* Age variable */ |
/* Tvar[k1]; */ /* Age variable */ |
Line 10559 int decoderesult( char resultline[], int
|
Line 11016 int decoderesult( char resultline[], int
|
k2=(int)Tvarsel[k3]; /* nres=1 k1=2=>k3=1 Tvarsel[resultmodel[2]]= Tvarsel[1] = 4=k2 (V4); k1=3=>k3=2 Tvarsel[2]=3 (V3)*/ |
k2=(int)Tvarsel[k3]; /* nres=1 k1=2=>k3=1 Tvarsel[resultmodel[2]]= Tvarsel[1] = 4=k2 (V4); k1=3=>k3=2 Tvarsel[2]=3 (V3)*/ |
TinvDoQresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* TinvDoQresult[nres][4]=1 */ |
TinvDoQresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* TinvDoQresult[nres][4]=1 */ |
precov[nres][k1]=Tvalsel[k3]; |
precov[nres][k1]=Tvalsel[k3]; |
printf("Decoderesult Dummy with age k=%d, k1=%d precov[nres=%d][k1=%d]=%.f Tvar[%d]=V%d k2=Tvarsel[%d]=%d Tvalsel[%d]=%d\n",k, k1, nres, k1,precov[nres][k1], k1, Tvar[k1], k3,(int)Tvarsel[k3], k3, (int)Tvalsel[k3]); |
/* printf("Decoderesult Dummy with age k=%d, k1=%d precov[nres=%d][k1=%d]=%.f Tvar[%d]=V%d k2=Tvarsel[%d]=%d Tvalsel[%d]=%d\n",k, k1, nres, k1,precov[nres][k1], k1, Tvar[k1], k3,(int)Tvarsel[k3], k3, (int)Tvalsel[k3]); */ |
}else if( Dummy[k1]==3 ){ /* For quant with age product */ |
}else if( Dummy[k1]==3 ){ /* For quant with age product */ |
k3q= resultmodel[nres][k1]; /* resultmodel[1(V5)] = 25.1=k3q */ |
k3q= resultmodel[nres][k1]; /* resultmodel[1(V5)] = 25.1=k3q */ |
k2q=(int)Tvarsel[k3q]; /* Tvarsel[resultmodel[1]]= Tvarsel[1] = 4=k2 */ |
k2q=(int)Tvarsel[k3q]; /* Tvarsel[resultmodel[1]]= Tvarsel[1] = 4=k2 */ |
TinvDoQresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* TinvDoQresult[nres][5]=25.1 */ |
TinvDoQresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* TinvDoQresult[nres][5]=25.1 */ |
precov[nres][k1]=Tvalsel[k3q]; |
precov[nres][k1]=Tvalsel[k3q]; |
printf("Decoderesult Quantitative with age nres=%d, k1=%d, precov[nres=%d][k1=%d]=%f Tvar[%d]=V%d V(k2q=%d)= Tvarsel[%d]=%d, Tvalsel[%d]=%f\n",nres, k1, nres, k1,precov[nres][k1], k1, Tvar[k1], k2q, k3q, Tvarsel[k3q], k3q, Tvalsel[k3q]); |
/* printf("Decoderesult Quantitative with age nres=%d, k1=%d, precov[nres=%d][k1=%d]=%f Tvar[%d]=V%d V(k2q=%d)= Tvarsel[%d]=%d, Tvalsel[%d]=%f\n",nres, k1, nres, k1,precov[nres][k1], k1, Tvar[k1], k2q, k3q, Tvarsel[k3q], k3q, Tvalsel[k3q]); */ |
}else if(Typevar[k1]==2 ){ /* For product quant or dummy (not with age) */ |
}else if(Typevar[k1]==2 ){ /* For product quant or dummy (not with age) */ |
precov[nres][k1]=TinvDoQresult[nres][Tvardk[k1][1]] * TinvDoQresult[nres][Tvardk[k1][2]]; |
precov[nres][k1]=TinvDoQresult[nres][Tvardk[k1][1]] * TinvDoQresult[nres][Tvardk[k1][2]]; |
printf("Decoderesult Quantitative or Dummy (not with age) nres=%d k1=%d precov[nres=%d][k1=%d]=%.f V%d(=%.f) * V%d(=%.f) \n",nres, k1, nres, k1,precov[nres][k1], Tvardk[k1][1], TinvDoQresult[nres][Tvardk[k1][1]], Tvardk[k1][2], TinvDoQresult[nres][Tvardk[k1][2]]); |
/* printf("Decoderesult Quantitative or Dummy (not with age) nres=%d k1=%d precov[nres=%d][k1=%d]=%.f V%d(=%.f) * V%d(=%.f) \n",nres, k1, nres, k1,precov[nres][k1], Tvardk[k1][1], TinvDoQresult[nres][Tvardk[k1][1]], Tvardk[k1][2], TinvDoQresult[nres][Tvardk[k1][2]]); */ |
}else{ |
}else{ |
printf("Error Decoderesult probably a product Dummy[%d]==%d && Typevar[%d]==%d\n", k1, Dummy[k1], k1, Typevar[k1]); |
printf("Error Decoderesult probably a product Dummy[%d]==%d && Typevar[%d]==%d\n", k1, Dummy[k1], k1, Typevar[k1]); |
fprintf(ficlog,"Error Decoderesult probably a product Dummy[%d]==%d && Typevar[%d]==%d\n", k1, Dummy[k1], k1, Typevar[k1]); |
fprintf(ficlog,"Error Decoderesult probably a product Dummy[%d]==%d && Typevar[%d]==%d\n", k1, Dummy[k1], k1, Typevar[k1]); |
Line 10587 int decodemodel( char model[], int lasto
|
Line 11044 int decodemodel( char model[], int lasto
|
* - cptcovn or number of covariates k of the models excluding age*products =6 and age*age |
* - cptcovn or number of covariates k of the models excluding age*products =6 and age*age |
* - cptcovage number of covariates with age*products =2 |
* - cptcovage number of covariates with age*products =2 |
* - cptcovs number of simple covariates |
* - cptcovs number of simple covariates |
|
* ncovcolt=ncovcol+nqv+ntv+nqtv total of covariates in the data, not in the model equation |
* - Tvar[k] is the id of the kth covariate Tvar[1]@12 {1, 2, 3, 8, 10, 11, 8, 3, 7, 8, 5, 6}, thus Tvar[5=V7*V8]=10 |
* - Tvar[k] is the id of the kth covariate Tvar[1]@12 {1, 2, 3, 8, 10, 11, 8, 3, 7, 8, 5, 6}, thus Tvar[5=V7*V8]=10 |
* which is a new column after the 9 (ncovcol) variables. |
* which is a new column after the 9 (ncovcol+nqv+ntv+nqtv) variables. |
* - if k is a product Vn*Vm, covar[k][i] is filled with correct values for each individual |
* - if k is a product Vn*Vm, covar[k][i] is filled with correct values for each individual |
* - Tprod[l] gives the kth covariates of the product Vn*Vm l=1 to cptcovprod-cptcovage |
* - Tprod[l] gives the kth covariates of the product Vn*Vm l=1 to cptcovprod-cptcovage |
* Tprod[1]@2 {5, 6}: position of first product V7*V8 is 5, and second V5*V6 is 6. |
* Tprod[1]@2 {5, 6}: position of first product V7*V8 is 5, and second V5*V6 is 6. |
Line 10611 int decodemodel( char model[], int lasto
|
Line 11069 int decodemodel( char model[], int lasto
|
return 1; |
return 1; |
} |
} |
if (strstr(model,"v") !=0){ |
if (strstr(model,"v") !=0){ |
printf("Error. 'v' must be in upper case 'V' model=%s ",model); |
printf("Error. 'v' must be in upper case 'V' model=1+age+%s ",model); |
fprintf(ficlog,"Error. 'v' must be in upper case model=%s ",model);fflush(ficlog); |
fprintf(ficlog,"Error. 'v' must be in upper case model=1+age+%s ",model);fflush(ficlog); |
return 1; |
return 1; |
} |
} |
strcpy(modelsav,model); |
strcpy(modelsav,model); |
if ((strpt=strstr(model,"age*age")) !=0){ |
if ((strpt=strstr(model,"age*age")) !=0){ |
printf(" strpt=%s, model=%s\n",strpt, model); |
printf(" strpt=%s, model=1+age+%s\n",strpt, model); |
if(strpt != model){ |
if(strpt != model){ |
printf("Error in model: 'model=%s'; 'age*age' should in first place before other covariates\n \ |
printf("Error in model: 'model=1+age+%s'; 'age*age' should in first place before other covariates\n \ |
'model=1+age+age*age+V1.' or 'model=1+age+age*age+V1+V1*age.', please swap as well as \n \ |
'model=1+age+age*age+V1.' or 'model=1+age+age*age+V1+V1*age.', please swap as well as \n \ |
corresponding column of parameters.\n",model); |
corresponding column of parameters.\n",model); |
fprintf(ficlog,"Error in model: 'model=%s'; 'age*age' should in first place before other covariates\n \ |
fprintf(ficlog,"Error in model: 'model=1+age+%s'; 'age*age' should in first place before other covariates\n \ |
'model=1+age+age*age+V1.' or 'model=1+age+age*age+V1+V1*age.', please swap as well as \n \ |
'model=1+age+age*age+V1.' or 'model=1+age+age*age+V1+V1*age.', please swap as well as \n \ |
corresponding column of parameters.\n",model); fflush(ficlog); |
corresponding column of parameters.\n",model); fflush(ficlog); |
return 1; |
return 1; |
Line 10732 int decodemodel( char model[], int lasto
|
Line 11190 int decodemodel( char model[], int lasto
|
cptcovn++; |
cptcovn++; |
cptcovprodnoage++;k1++; |
cptcovprodnoage++;k1++; |
cutl(stre,strb,strc,'V'); /* strc= Vn, stre is n; strb=V3*V2 stre=3 strc=*/ |
cutl(stre,strb,strc,'V'); /* strc= Vn, stre is n; strb=V3*V2 stre=3 strc=*/ |
Tvar[k]=ncovcol+nqv+ntv+nqtv+k1; /* For model-covariate k tells which data-covariate to use but |
Tvar[k]=ncovcol+nqv+ntv+nqtv+k1; /* ncovcolt+k1; For model-covariate k tells which data-covariate to use but |
because this model-covariate is a construction we invent a new column |
because this model-covariate is a construction we invent a new column |
which is after existing variables ncovcol+nqv+ntv+nqtv + k1 |
which is after existing variables ncovcol+nqv+ntv+nqtv + k1 |
If already ncovcol=4 and model= V2 + V1 + V1*V4 + age*V3 + V3*V2 |
If already ncovcol=4 and model= V2 + V1 + V1*V4 + age*V3 + V3*V2 |
thus after V4 we invent V5 and V6 because age*V3 will be computed in 4 |
thus after V4 we invent V5 and V6 because age*V3 will be computed in 4 |
Tvar[3=V1*V4]=4+1=5 Tvar[5=V3*V2]=4 + 2= 6, Tvar[4=age*V3]=4 etc */ |
Tvar[3=V1*V4]=4+1=5 Tvar[5=V3*V2]=4 + 2= 6, Tvar[4=age*V3]=3 etc */ |
/* Please remark that the new variables are model dependent */ |
/* Please remark that the new variables are model dependent */ |
/* If we have 4 variable but the model uses only 3, like in |
/* If we have 4 variable but the model uses only 3, like in |
* model= V1 + age*V1 + V2 + V3 + age*V2 + age*V3 + V1*V2 + V1*V3 |
* model= V1 + age*V1 + V2 + V3 + age*V2 + age*V3 + V1*V2 + V1*V3 |
Line 10746 int decodemodel( char model[], int lasto
|
Line 11204 int decodemodel( char model[], int lasto
|
* Tage[kk] [1]= 2 [2]=5 [3]=6 kk=1 to cptcovage=3 |
* Tage[kk] [1]= 2 [2]=5 [3]=6 kk=1 to cptcovage=3 |
* Tvar[Tage[kk]][1]=2 [2]=2 [3]=3 |
* Tvar[Tage[kk]][1]=2 [2]=2 [3]=3 |
*/ |
*/ |
Typevar[k]=2; /* 2 for double fixed dummy covariates */ |
Typevar[k]=2; /* 2 for product */ |
cutl(strc,strb,strd,'V'); /* strd was Vm, strc is m */ |
cutl(strc,strb,strd,'V'); /* strd was Vm, strc is m */ |
Tprod[k1]=k; /* Tprod[1]=3(=V1*V4) for V2+V1+V1*V4+age*V3+V3*V2 */ |
Tprod[k1]=k; /* Tprod[1]=3(=V1*V4) for V2+V1+V1*V4+age*V3+V3*V2 */ |
Tposprod[k]=k1; /* Tposprod[3]=1, Tposprod[2]=5 */ |
Tposprod[k]=k1; /* Tposprod[3]=1, Tposprod[2]=5 */ |
Line 10759 int decodemodel( char model[], int lasto
|
Line 11217 int decodemodel( char model[], int lasto
|
/* Tvar[cptcovt+k2+1]=Tvard[k1][2]; /\* Tvar[(cptcovt=4+(k2=1)+1)=6]= 4 (V4) *\/ */ |
/* Tvar[cptcovt+k2+1]=Tvard[k1][2]; /\* Tvar[(cptcovt=4+(k2=1)+1)=6]= 4 (V4) *\/ */ |
/*ncovcol=4 and model=V2+V1+V1*V4+age*V3+V3*V2, Tvar[3]=5, Tvar[4]=6, cptcovt=5 */ |
/*ncovcol=4 and model=V2+V1+V1*V4+age*V3+V3*V2, Tvar[3]=5, Tvar[4]=6, cptcovt=5 */ |
/* 1 2 3 4 5 | Tvar[5+1)=1, Tvar[7]=2 */ |
/* 1 2 3 4 5 | Tvar[5+1)=1, Tvar[7]=2 */ |
for (i=1; i<=lastobs;i++){ |
if( FixedV[Tvardk[k][1]] == 0 && FixedV[Tvardk[k][2]] == 0){ /* If the product is a fixed covariate then we feed the new column with Vn*Vm */ |
|
for (i=1; i<=lastobs;i++){/* For fixed product */ |
/* Computes the new covariate which is a product of |
/* Computes the new covariate which is a product of |
covar[n][i]* covar[m][i] and stores it at ncovol+k1 May not be defined */ |
covar[n][i]* covar[m][i] and stores it at ncovol+k1 May not be defined */ |
covar[ncovcol+k1][i]=covar[atoi(stre)][i]*covar[atoi(strc)][i]; |
covar[ncovcolt+k1][i]=covar[atoi(stre)][i]*covar[atoi(strc)][i]; |
} |
} |
|
} /*End of FixedV */ |
} /* End age is not in the model */ |
} /* End age is not in the model */ |
} /* End if model includes a product */ |
} /* End if model includes a product */ |
else { /* not a product */ |
else { /* not a product */ |
Line 10814 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11274 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Typevar: 0 for simple covariate (dummy, quantitative, fixed or varying), 1 for age product, 2 for product \n\ |
Typevar: 0 for simple covariate (dummy, quantitative, fixed or varying), 1 for age product, 2 for product \n\ |
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(k=-1;k<=cptcovt; k++){ Fixed[k]=0; Dummy[k]=0;} |
for(k=-1;k<=NCOVMAX; k++){ Fixed[k]=0; Dummy[k]=0;} |
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;k<=NCOVMAX; k++){TvarFind[k]=0; TvarVind[k]=0;} |
|
for(k=1, ncovf=0, nsd=0, nsq=0, ncovv=0, ncova=0, ncoveff=0, nqfveff=0, ntveff=0, nqtveff=0, ncovvt=0;k<=cptcovt; k++){ /* or cptocvt loop on k from model */ |
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; |
Dummy[k]= 0; |
Dummy[k]= 0; |
Line 10830 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11291 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
TvarFind[ncovf]=k; |
TvarFind[ncovf]=k; |
TvarFD[ncoveff]=Tvar[k]; /* TvarFD[1]=V1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
TvarFD[ncoveff]=Tvar[k]; /* TvarFD[1]=V1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
TvarFDind[ncoveff]=k; /* TvarFDind[1]=9 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
TvarFDind[ncoveff]=k; /* TvarFDind[1]=9 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
}else if( Tvar[k] <=ncovcol && Typevar[k]==2){ /* Product of fixed dummy (<=ncovcol) covariates */ |
/* }else if( Tvar[k] <=ncovcol && Typevar[k]==2){ /\* Product of fixed dummy (<=ncovcol) covariates For a fixed product k is higher than ncovcol *\/ */ |
|
}else if( Tposprod[k]>0 && Typevar[k]==2 && FixedV[Tvardk[k][1]] == 0 && FixedV[Tvardk[k][2]] == 0){ /* Needs a fixed product Product of fixed dummy (<=ncovcol) covariates For a fixed product k is higher than ncovcol */ |
Fixed[k]= 0; |
Fixed[k]= 0; |
Dummy[k]= 0; |
Dummy[k]= 0; |
ncoveff++; |
ncoveff++; |
Line 10856 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11318 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
TvarFQ[nqfveff]=Tvar[k]-ncovcol; /* TvarFQ[1]=V2-1=1st in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple fixed quantitative variable */ |
TvarFQ[nqfveff]=Tvar[k]-ncovcol; /* TvarFQ[1]=V2-1=1st in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple fixed quantitative variable */ |
TvarFQind[nqfveff]=k; /* TvarFQind[1]=6 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple fixed quantitative variable */ |
TvarFQind[nqfveff]=k; /* TvarFQind[1]=6 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple fixed quantitative variable */ |
}else if( Tvar[k] <=ncovcol+nqv+ntv && Typevar[k]==0){/* Only simple time varying dummy variables */ |
}else if( Tvar[k] <=ncovcol+nqv+ntv && Typevar[k]==0){/* Only simple time varying dummy variables */ |
|
/*# ID V1 V2 weight birth death 1st s1 V3 V4 V5 2nd s2 */ |
|
/* model V1+V3+age*V1+age*V3+V1*V3 */ |
|
/* Tvar={1, 3, 1, 3, 6}, the 6 comes from the fact that there are already V1, V2, V3, V4, V5 native covariates */ |
|
ncovvt++; |
|
TvarVV[ncovvt]=Tvar[k]; /* TvarVV[1]=V3 (first time varying in the model equation */ |
|
TvarVVind[ncovvt]=k; /* TvarVVind[1]=2 (second position in the model equation */ |
|
|
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 0; |
Dummy[k]= 0; |
ntveff++; /* Only simple time varying dummy variable */ |
ntveff++; /* Only simple time varying dummy variable */ |
Line 10873 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11342 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
printf("Quasi Tmodelind[%d]=%d,Tvar[Tmodelind[%d]]=V%d, ncovcol=%d, nqv=%d,Tvar[k]- ncovcol-nqv=%d\n",ntveff,k,ntveff,Tvar[k], ncovcol, nqv,Tvar[k]- ncovcol-nqv); |
printf("Quasi Tmodelind[%d]=%d,Tvar[Tmodelind[%d]]=V%d, ncovcol=%d, nqv=%d,Tvar[k]- ncovcol-nqv=%d\n",ntveff,k,ntveff,Tvar[k], ncovcol, nqv,Tvar[k]- ncovcol-nqv); |
printf("Quasi TmodelInvind[%d]=%d\n",k,Tvar[k]- ncovcol-nqv); |
printf("Quasi TmodelInvind[%d]=%d\n",k,Tvar[k]- ncovcol-nqv); |
}else if( Tvar[k] <=ncovcol+nqv+ntv+nqtv && Typevar[k]==0){ /* Only simple time varying quantitative variable V5*/ |
}else if( Tvar[k] <=ncovcol+nqv+ntv+nqtv && Typevar[k]==0){ /* Only simple time varying quantitative variable V5*/ |
|
/*# ID V1 V2 weight birth death 1st s1 V3 V4 V5 2nd s2 */ |
|
/* model V1+V3+age*V1+age*V3+V1*V3 */ |
|
/* Tvar={1, 3, 1, 3, 6}, the 6 comes from the fact that there are already V1, V2, V3, V4, V5 native covariates */ |
|
ncovvt++; |
|
TvarVV[ncovvt]=Tvar[k]; /* TvarVV[1]=V3 (first time varying in the model equation */ |
|
TvarVVind[ncovvt]=k; /* TvarVV[1]=V3 (first time varying in the model equation */ |
|
|
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 1; |
Dummy[k]= 1; |
nqtveff++; |
nqtveff++; |
Line 10888 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11364 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
TvarVQind[nqtveff]=k; /* TvarVQind[1]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple time varying quantitative variable */ |
TvarVQind[nqtveff]=k; /* TvarVQind[1]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple time varying quantitative variable */ |
TmodelInvQind[nqtveff]=Tvar[k]- ncovcol-nqv-ntv;/* Only simple time varying quantitative variable */ |
TmodelInvQind[nqtveff]=Tvar[k]- ncovcol-nqv-ntv;/* Only simple time varying quantitative variable */ |
/* Tmodeliqind[k]=nqtveff;/\* Only simple time varying quantitative variable *\/ */ |
/* Tmodeliqind[k]=nqtveff;/\* Only simple time varying quantitative variable *\/ */ |
printf("Quasi TmodelQind[%d]=%d,Tvar[TmodelQind[%d]]=V%d, ncovcol=%d, nqv=%d, ntv=%d,Tvar[k]- ncovcol-nqv-ntv=%d\n",nqtveff,k,nqtveff,Tvar[k], ncovcol, nqv, ntv, Tvar[k]- ncovcol-nqv-ntv); |
/* printf("Quasi TmodelQind[%d]=%d,Tvar[TmodelQind[%d]]=V%d, ncovcol=%d, nqv=%d, ntv=%d,Tvar[k]- ncovcol-nqv-ntv=%d\n",nqtveff,k,nqtveff,Tvar[k], ncovcol, nqv, ntv, Tvar[k]- ncovcol-nqv-ntv); */ |
printf("Quasi TmodelInvQind[%d]=%d\n",k,Tvar[k]- ncovcol-nqv-ntv); |
/* printf("Quasi TmodelInvQind[%d]=%d\n",k,Tvar[k]- ncovcol-nqv-ntv); */ |
}else if (Typevar[k] == 1) { /* product with age */ |
}else if (Typevar[k] == 1) { /* product with age */ |
ncova++; |
ncova++; |
TvarA[ncova]=Tvar[k]; |
TvarA[ncova]=Tvar[k]; |
Line 10919 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11395 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
modell[k].subtype= APVQ; /* Product age * varying quantitative */ |
modell[k].subtype= APVQ; /* Product age * varying quantitative */ |
/* nqtveff++;/\* Only simple time varying quantitative variable *\/ */ |
/* nqtveff++;/\* Only simple time varying quantitative variable *\/ */ |
} |
} |
}else if (Typevar[k] == 2) { /* product without age */ |
}else if (Typevar[k] == 2) { /* product Vn * Vm without age, V1+V3+age*V1+age*V3+V1*V3 looking at V1*V3, Typevar={0, 0, 1, 1, 2}, k=5, V1 is fixed, V3 is timevary, V5 is a product */ |
k1=Tposprod[k]; |
/*# ID V1 V2 weight birth death 1st s1 V3 V4 V5 2nd s2 */ |
if(Tvard[k1][1] <=ncovcol){ |
/* model V1+V3+age*V1+age*V3+V1*V3 */ |
if(Tvard[k1][2] <=ncovcol){ |
/* Tvar={1, 3, 1, 3, 6}, the 6 comes from the fact that there are already V1, V2, V3, V4, V5 native covariates */ |
|
k1=Tposprod[k]; /* Position in the products of product k, Tposprod={0, 0, 0, 0, 1} k1=1 first product but second time varying because of V3 */ |
|
ncovvt++; |
|
TvarVV[ncovvt]=Tvard[k1][1]; /* TvarVV[2]=V1 (because TvarVV[1] was V3, first time varying covariates */ |
|
TvarVVind[ncovvt]=k; /* TvarVVind[2]=5 (because TvarVVind[2] was V1*V3 at position 5 */ |
|
ncovvt++; |
|
TvarVV[ncovvt]=Tvard[k1][2]; /* TvarVV[3]=V3 */ |
|
TvarVVind[ncovvt]=k; /* TvarVVind[2]=5 (because TvarVVind[2] was V1*V3 at position 5 */ |
|
|
|
|
|
if(Tvard[k1][1] <=ncovcol){ /* Vn is dummy fixed, (Tvard[1][1]=V1), (Tvard[1][1]=V3 time varying) */ |
|
if(Tvard[k1][2] <=ncovcol){ /* Vm is dummy fixed */ |
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 0; |
Dummy[k]= 0; |
modell[k].maintype= FTYPE; |
modell[k].maintype= FTYPE; |
Line 10930 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11417 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
ncovf++; /* Fixed variables without age */ |
ncovf++; /* Fixed variables without age */ |
TvarF[ncovf]=Tvar[k]; |
TvarF[ncovf]=Tvar[k]; |
TvarFind[ncovf]=k; |
TvarFind[ncovf]=k; |
}else if(Tvard[k1][2] <=ncovcol+nqv){ |
}else if(Tvard[k1][2] <=ncovcol+nqv){ /* Vm is quanti fixed */ |
Fixed[k]= 0; /* or 2 ?*/ |
Fixed[k]= 0; /* Fixed product */ |
Dummy[k]= 1; |
Dummy[k]= 1; |
modell[k].maintype= FTYPE; |
modell[k].maintype= FTYPE; |
modell[k].subtype= FPDQ; /* Product fixed dummy * fixed quantitative */ |
modell[k].subtype= FPDQ; /* Product fixed dummy * fixed quantitative */ |
ncovf++; /* Varying variables without age */ |
ncovf++; /* Varying variables without age */ |
TvarF[ncovf]=Tvar[k]; |
TvarF[ncovf]=Tvar[k]; |
TvarFind[ncovf]=k; |
TvarFind[ncovf]=k; |
}else if(Tvard[k1][2] <=ncovcol+nqv+ntv){ |
}else if(Tvard[k1][2] <=ncovcol+nqv+ntv){ /* Vm is a time varying dummy covariate */ |
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 0; |
Dummy[k]= 0; |
modell[k].maintype= VTYPE; |
modell[k].maintype= VTYPE; |
modell[k].subtype= VPDD; /* Product fixed dummy * varying dummy */ |
modell[k].subtype= VPDD; /* Product fixed dummy * varying dummy */ |
ncovv++; /* Varying variables without age */ |
ncovv++; /* Varying variables without age */ |
TvarV[ncovv]=Tvar[k]; |
TvarV[ncovv]=Tvar[k]; /* TvarV[1]=Tvar[5]=5 because there is a V4 */ |
TvarVind[ncovv]=k; |
TvarVind[ncovv]=k;/* TvarVind[1]=5 */ |
}else if(Tvard[k1][2] <=ncovcol+nqv+ntv+nqtv){ |
}else if(Tvard[k1][2] <=ncovcol+nqv+ntv+nqtv){ /* Vm is a time varying quantitative covariate */ |
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 1; |
Dummy[k]= 1; |
modell[k].maintype= VTYPE; |
modell[k].maintype= VTYPE; |
Line 10955 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11442 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
TvarV[ncovv]=Tvar[k]; |
TvarV[ncovv]=Tvar[k]; |
TvarVind[ncovv]=k; |
TvarVind[ncovv]=k; |
} |
} |
}else if(Tvard[k1][1] <=ncovcol+nqv){ |
}else if(Tvard[k1][1] <=ncovcol+nqv){ /* Vn is fixed quanti */ |
if(Tvard[k1][2] <=ncovcol){ |
if(Tvard[k1][2] <=ncovcol){ /* Vm is fixed dummy */ |
Fixed[k]= 0; /* or 2 ?*/ |
Fixed[k]= 0; /* Fixed product */ |
Dummy[k]= 1; |
Dummy[k]= 1; |
modell[k].maintype= FTYPE; |
modell[k].maintype= FTYPE; |
modell[k].subtype= FPDQ; /* Product fixed quantitative * fixed dummy */ |
modell[k].subtype= FPDQ; /* Product fixed quantitative * fixed dummy */ |
ncovf++; /* Fixed variables without age */ |
ncovf++; /* Fixed variables without age */ |
TvarF[ncovf]=Tvar[k]; |
TvarF[ncovf]=Tvar[k]; |
TvarFind[ncovf]=k; |
TvarFind[ncovf]=k; |
}else if(Tvard[k1][2] <=ncovcol+nqv+ntv){ |
}else if(Tvard[k1][2] <=ncovcol+nqv+ntv){ /* Vm is time varying */ |
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 1; |
Dummy[k]= 1; |
modell[k].maintype= VTYPE; |
modell[k].maintype= VTYPE; |
Line 10972 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11459 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
ncovv++; /* Varying variables without age */ |
ncovv++; /* Varying variables without age */ |
TvarV[ncovv]=Tvar[k]; |
TvarV[ncovv]=Tvar[k]; |
TvarVind[ncovv]=k; |
TvarVind[ncovv]=k; |
}else if(Tvard[k1][2] <=ncovcol+nqv+ntv+nqtv){ |
}else if(Tvard[k1][2] <=ncovcol+nqv+ntv+nqtv){ /* Vm is time varying quanti */ |
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 1; |
Dummy[k]= 1; |
modell[k].maintype= VTYPE; |
modell[k].maintype= VTYPE; |
Line 10984 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11471 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
TvarV[ncovv]=Tvar[k]; |
TvarV[ncovv]=Tvar[k]; |
TvarVind[ncovv]=k; |
TvarVind[ncovv]=k; |
} |
} |
}else if(Tvard[k1][1] <=ncovcol+nqv+ntv){ |
}else if(Tvard[k1][1] <=ncovcol+nqv+ntv){ /* Vn is time varying dummy */ |
if(Tvard[k1][2] <=ncovcol){ |
if(Tvard[k1][2] <=ncovcol){ |
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 1; |
Dummy[k]= 1; |
Line 11018 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11505 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
TvarV[ncovv]=Tvar[k]; |
TvarV[ncovv]=Tvar[k]; |
TvarVind[ncovv]=k; |
TvarVind[ncovv]=k; |
} |
} |
}else if(Tvard[k1][1] <=ncovcol+nqv+ntv+nqtv){ |
}else if(Tvard[k1][1] <=ncovcol+nqv+ntv+nqtv){ /* Vn is time varying quanti */ |
if(Tvard[k1][2] <=ncovcol){ |
if(Tvard[k1][2] <=ncovcol){ |
Fixed[k]= 1; |
Fixed[k]= 1; |
Dummy[k]= 1; |
Dummy[k]= 1; |
Line 11060 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11547 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
printf("Error, current version can't treat for performance reasons, Tvar[%d]=%d, Typevar[%d]=%d\n", k, Tvar[k], k, Typevar[k]); |
printf("Error, current version can't treat for performance reasons, Tvar[%d]=%d, Typevar[%d]=%d\n", k, Tvar[k], k, Typevar[k]); |
fprintf(ficlog,"Error, current version can't treat for performance reasons, Tvar[%d]=%d, Typevar[%d]=%d\n", k, Tvar[k], k, Typevar[k]); |
fprintf(ficlog,"Error, current version can't treat for performance reasons, Tvar[%d]=%d, Typevar[%d]=%d\n", k, Tvar[k], k, Typevar[k]); |
} |
} |
printf("Decodemodel, k=%d, Tvar[%d]=V%d,Typevar=%d, Fixed=%d, Dummy=%d\n",k, k,Tvar[k],Typevar[k],Fixed[k],Dummy[k]); |
/* printf("Decodemodel, k=%d, Tvar[%d]=V%d,Typevar=%d, Fixed=%d, Dummy=%d\n",k, k,Tvar[k],Typevar[k],Fixed[k],Dummy[k]); */ |
printf(" modell[%d].maintype=%d, modell[%d].subtype=%d\n",k,modell[k].maintype,k,modell[k].subtype); |
/* printf(" modell[%d].maintype=%d, modell[%d].subtype=%d\n",k,modell[k].maintype,k,modell[k].subtype); */ |
fprintf(ficlog,"Decodemodel, k=%d, Tvar[%d]=V%d,Typevar=%d, Fixed=%d, Dummy=%d\n",k, k,Tvar[k],Typevar[k],Fixed[k],Dummy[k]); |
fprintf(ficlog,"Decodemodel, k=%d, Tvar[%d]=V%d,Typevar=%d, Fixed=%d, Dummy=%d\n",k, k,Tvar[k],Typevar[k],Fixed[k],Dummy[k]); |
} |
} |
/* Searching for doublons in the model */ |
/* Searching for doublons in the model */ |
Line 11071 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 11558 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
if((Typevar[k1]==Typevar[k2]) && (Fixed[k1]==Fixed[k2]) && (Dummy[k1]==Dummy[k2] )){ |
if((Typevar[k1]==Typevar[k2]) && (Fixed[k1]==Fixed[k2]) && (Dummy[k1]==Dummy[k2] )){ |
if((Typevar[k1] == 0 || Typevar[k1] == 1)){ /* Simple or age product */ |
if((Typevar[k1] == 0 || Typevar[k1] == 1)){ /* Simple or age product */ |
if(Tvar[k1]==Tvar[k2]){ |
if(Tvar[k1]==Tvar[k2]){ |
printf("Error duplication in the model=%s at positions (+) %d and %d, Tvar[%d]=V%d, Tvar[%d]=V%d, Typevar=%d, Fixed=%d, Dummy=%d\n", model, k1,k2, k1, Tvar[k1], k2, Tvar[k2],Typevar[k1],Fixed[k1],Dummy[k1]); |
printf("Error duplication in the model=1+age+%s at positions (+) %d and %d, Tvar[%d]=V%d, Tvar[%d]=V%d, Typevar=%d, Fixed=%d, Dummy=%d\n", model, k1,k2, k1, Tvar[k1], k2, Tvar[k2],Typevar[k1],Fixed[k1],Dummy[k1]); |
fprintf(ficlog,"Error duplication in the model=%s at positions (+) %d and %d, Tvar[%d]=V%d, Tvar[%d]=V%d, Typevar=%d, Fixed=%d, Dummy=%d\n", model, k1,k2, k1, Tvar[k1], k2, Tvar[k2],Typevar[k1],Fixed[k1],Dummy[k1]); fflush(ficlog); |
fprintf(ficlog,"Error duplication in the model=1+age+%s at positions (+) %d and %d, Tvar[%d]=V%d, Tvar[%d]=V%d, Typevar=%d, Fixed=%d, Dummy=%d\n", model, k1,k2, k1, Tvar[k1], k2, Tvar[k2],Typevar[k1],Fixed[k1],Dummy[k1]); fflush(ficlog); |
return(1); |
return(1); |
} |
} |
}else if (Typevar[k1] ==2){ |
}else if (Typevar[k1] ==2){ |
k3=Tposprod[k1]; |
k3=Tposprod[k1]; |
k4=Tposprod[k2]; |
k4=Tposprod[k2]; |
if( ((Tvard[k3][1]== Tvard[k4][1])&&(Tvard[k3][2]== Tvard[k4][2])) || ((Tvard[k3][1]== Tvard[k4][2])&&(Tvard[k3][2]== Tvard[k4][1])) ){ |
if( ((Tvard[k3][1]== Tvard[k4][1])&&(Tvard[k3][2]== Tvard[k4][2])) || ((Tvard[k3][1]== Tvard[k4][2])&&(Tvard[k3][2]== Tvard[k4][1])) ){ |
printf("Error duplication in the model=%s at positions (+) %d and %d, V%d*V%d, Typevar=%d, Fixed=%d, Dummy=%d\n",model, k1,k2, Tvard[k3][1], Tvard[k3][2],Typevar[k1],Fixed[Tvar[k1]],Dummy[Tvar[k1]]); |
printf("Error duplication in the model=1+age+%s at positions (+) %d and %d, V%d*V%d, Typevar=%d, Fixed=%d, Dummy=%d\n",model, k1,k2, Tvard[k3][1], Tvard[k3][2],Typevar[k1],Fixed[Tvar[k1]],Dummy[Tvar[k1]]); |
fprintf(ficlog,"Error duplication in the model=%s at positions (+) %d and %d, V%d*V%d, Typevar=%d, Fixed=%d, Dummy=%d\n",model, k1,k2, Tvard[k3][1], Tvard[k3][2],Typevar[k1],Fixed[Tvar[k1]],Dummy[Tvar[k1]]); fflush(ficlog); |
fprintf(ficlog,"Error duplication in the model=1+age+%s at positions (+) %d and %d, V%d*V%d, Typevar=%d, Fixed=%d, Dummy=%d\n",model, k1,k2, Tvard[k3][1], Tvard[k3][2],Typevar[k1],Fixed[Tvar[k1]],Dummy[Tvar[k1]]); fflush(ficlog); |
return(1); |
return(1); |
} |
} |
} |
} |
Line 11436 int prevalence_limit(double *p, double *
|
Line 11923 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 each combination k of dummy covariates in the model */ |
/* for(k=1; k<=i1;k++){ /\* For each combination k of dummy covariates in the model *\/ */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
if(i1 != 1 && TKresult[nres]!= k) |
k=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k=1; /* To be checked for noresult */ |
|
/* if(i1 != 1 && TKresult[nres]!= k) /\* We found the combination k corresponding to the resultline value of dummies *\/ */ |
|
/* continue; */ |
|
|
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */ |
/* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */ |
Line 11450 int prevalence_limit(double *p, double *
|
Line 11939 int prevalence_limit(double *p, double *
|
fprintf(ficrespl,"#******"); |
fprintf(ficrespl,"#******"); |
printf("#******"); |
printf("#******"); |
fprintf(ficlog,"#******"); |
fprintf(ficlog,"#******"); |
for(j=1;j<=cptcoveff ;j++) {/* all covariates */ |
for(j=1;j<=cptcovs ;j++) {/**< cptcovs number of SIMPLE covariates in the model or resultline V2+V1 =2 (dummy or quantit or time varying) */ |
/* fprintf(ficrespl," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,Tvaraff[j])]); /\* Here problem for varying dummy*\/ */ |
/* fprintf(ficrespl," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,Tvaraff[j])]); /\* Here problem for varying dummy*\/ */ |
fprintf(ficrespl," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); /* Here problem for varying dummy*/ |
/* printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
/* fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficrespl," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
} |
printf(" V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
fprintf(ficlog," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
} |
fprintf(ficrespl," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
fprintf(ficlog," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
/* 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"); |
fprintf(ficrespl,"******\n"); |
printf("******\n"); |
printf("******\n"); |
fprintf(ficlog,"******\n"); |
fprintf(ficlog,"******\n"); |
Line 11472 int prevalence_limit(double *p, double *
|
Line 11963 int prevalence_limit(double *p, double *
|
} |
} |
|
|
fprintf(ficrespl,"#Age "); |
fprintf(ficrespl,"#Age "); |
for(j=1;j<=cptcoveff;j++) { |
/* for(j=1;j<=cptcoveff;j++) { */ |
fprintf(ficrespl,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
/* fprintf(ficrespl,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
|
/* } */ |
|
for(j=1;j<=cptcovs;j++) { /* New the quanti variable is added */ |
|
fprintf(ficrespl,"V%d %lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
} |
} |
for(i=1; i<=nlstate;i++) fprintf(ficrespl," %d-%d ",i,i); |
for(i=1; i<=nlstate;i++) fprintf(ficrespl," %d-%d ",i,i); |
fprintf(ficrespl,"Total Years_to_converge\n"); |
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, nres); |
/**< Computes the prevalence limit in each live state at age x and for covariate combination (k and) nres */ |
|
prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, ncvyearp, k, nres); /* Nicely done */ |
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,TnsdVar[Tvaraff[j]])]); |
/* fprintf(ficrespl,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
|
for(j=1;j<=cptcovs;j++) |
|
fprintf(ficrespl,"%d %lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][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]; |
Line 11492 int prevalence_limit(double *p, double *
|
Line 11989 int prevalence_limit(double *p, double *
|
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 */ |
} /* nres */ |
} /* nres */ |
/* } /\* for each combination *\/ */ |
return 0; |
return 0; |
} |
} |
|
|
Line 11535 int back_prevalence_limit(double *p, dou
|
Line 12032 int back_prevalence_limit(double *p, dou
|
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
/* for(k=1; k<=i1;k++){ /\* For any combination of dummy covariates, fixed and varying *\/ */ |
if(i1 != 1 && TKresult[nres]!= k) |
k=TKresult[nres]; |
continue; |
if(TKresult[nres]==0) k=1; /* To be checked for noresult */ |
/*printf("cptcov=%d cptcod=%d codtab=%d\n",cptcov, cptcod,codtabm(cptcod,cptcov));*/ |
/* if(i1 != 1 && TKresult[nres]!= k) */ |
|
/* continue; */ |
|
/* /\*printf("cptcov=%d cptcod=%d codtab=%d\n",cptcov, cptcod,codtabm(cptcod,cptcov));*\/ */ |
fprintf(ficresplb,"#******"); |
fprintf(ficresplb,"#******"); |
printf("#******"); |
printf("#******"); |
fprintf(ficlog,"#******"); |
fprintf(ficlog,"#******"); |
for(j=1;j<=cptcoveff ;j++) {/* all covariates */ |
for(j=1;j<=cptcovs ;j++) {/**< cptcovs number of SIMPLE covariates in the model or resultline V2+V1 =2 (dummy or quantit or time varying) */ |
fprintf(ficresplb," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
printf(" V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficresplb," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficlog," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
} |
} |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
/* for(j=1;j<=cptcoveff ;j++) {/\* all covariates *\/ */ |
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* fprintf(ficresplb," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
fprintf(ficresplb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
} |
/* } */ |
|
/* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ */ |
|
/* printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
|
/* fprintf(ficresplb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
|
/* fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
|
/* } */ |
fprintf(ficresplb,"******\n"); |
fprintf(ficresplb,"******\n"); |
printf("******\n"); |
printf("******\n"); |
fprintf(ficlog,"******\n"); |
fprintf(ficlog,"******\n"); |
Line 11563 int back_prevalence_limit(double *p, dou
|
Line 12067 int back_prevalence_limit(double *p, dou
|
} |
} |
|
|
fprintf(ficresplb,"#Age "); |
fprintf(ficresplb,"#Age "); |
for(j=1;j<=cptcoveff;j++) { |
for(j=1;j<=cptcovs;j++) { |
fprintf(ficresplb,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficresplb,"V%d %lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][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"); |
Line 11587 int back_prevalence_limit(double *p, dou
|
Line 12091 int back_prevalence_limit(double *p, dou
|
/* exit(1); */ |
/* exit(1); */ |
} |
} |
fprintf(ficresplb,"%.0f ",age ); |
fprintf(ficresplb,"%.0f ",age ); |
for(j=1;j<=cptcoveff;j++) |
for(j=1;j<=cptcovs;j++) |
fprintf(ficresplb,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficresplb,"%d %lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][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]; |
Line 11598 int back_prevalence_limit(double *p, dou
|
Line 12102 int back_prevalence_limit(double *p, dou
|
} /* Age */ |
} /* Age */ |
/* was end of cptcod */ |
/* was end of cptcod */ |
/*fprintf(ficresplb,"\n");*/ /* Seems to be necessary for gnuplot only if two result lines and no covariate. */ |
/*fprintf(ficresplb,"\n");*/ /* Seems to be necessary for gnuplot only if two result lines and no covariate. */ |
} /* end of any combination */ |
/* } /\* end of any combination *\/ */ |
} /* end of nres */ |
} /* end of nres */ |
/* hBijx(p, bage, fage); */ |
/* hBijx(p, bage, fage); */ |
/* fclose(ficrespijb); */ |
/* fclose(ficrespijb); */ |
Line 11608 int back_prevalence_limit(double *p, dou
|
Line 12112 int back_prevalence_limit(double *p, dou
|
|
|
int hPijx(double *p, int bage, int fage){ |
int hPijx(double *p, int bage, int fage){ |
/*------------- h Pij x at various ages ------------*/ |
/*------------- h Pij x at various ages ------------*/ |
|
/* to be optimized with precov */ |
int stepsize; |
int stepsize; |
int agelim; |
int agelim; |
int hstepm; |
int hstepm; |
Line 11618 int hPijx(double *p, int bage, int fage)
|
Line 12122 int hPijx(double *p, int bage, int fage)
|
double agedeb; |
double agedeb; |
double ***p3mat; |
double ***p3mat; |
|
|
strcpy(filerespij,"PIJ_"); strcat(filerespij,fileresu); |
strcpy(filerespij,"PIJ_"); strcat(filerespij,fileresu); |
if((ficrespij=fopen(filerespij,"w"))==NULL) { |
if((ficrespij=fopen(filerespij,"w"))==NULL) { |
printf("Problem with Pij resultfile: %s\n", filerespij); return 1; |
printf("Problem with Pij resultfile: %s\n", filerespij); return 1; |
fprintf(ficlog,"Problem with Pij resultfile: %s\n", filerespij); return 1; |
fprintf(ficlog,"Problem with Pij resultfile: %s\n", filerespij); return 1; |
} |
} |
printf("Computing pij: result on file '%s' \n", filerespij); |
printf("Computing pij: result on file '%s' \n", filerespij); |
fprintf(ficlog,"Computing pij: result on file '%s' \n", filerespij); |
fprintf(ficlog,"Computing pij: result on file '%s' \n", filerespij); |
|
|
stepsize=(int) (stepm+YEARM-1)/YEARM; |
stepsize=(int) (stepm+YEARM-1)/YEARM; |
/*if (stepm<=24) stepsize=2;*/ |
/*if (stepm<=24) stepsize=2;*/ |
|
|
agelim=AGESUP; |
agelim=AGESUP; |
hstepm=stepsize*YEARM; /* Every year of age */ |
hstepm=stepsize*YEARM; /* Every year of age */ |
hstepm=hstepm/stepm; /* Typically 2 years, = 2/6 months = 4 */ |
hstepm=hstepm/stepm; /* Typically 2 years, = 2/6 months = 4 */ |
|
|
/* hstepm=1; aff par mois*/ |
/* hstepm=1; aff par mois*/ |
pstamp(ficrespij); |
pstamp(ficrespij); |
fprintf(ficrespij,"#****** h Pij x Probability to be in state j at age x+h being in i at x "); |
fprintf(ficrespij,"#****** h Pij x Probability to be in state j at age x+h being in i at x "); |
i1= pow(2,cptcoveff); |
i1= pow(2,cptcoveff); |
/* 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(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k=1; k<=i1;k++){ |
k=TKresult[nres]; |
if(i1 != 1 && TKresult[nres]!= k) |
if(TKresult[nres]==0) k=1; /* To be checked for noresult */ |
continue; |
/* for(k=1; k<=i1;k++){ */ |
fprintf(ficrespij,"\n#****** "); |
/* if(i1 != 1 && TKresult[nres]!= k) */ |
for(j=1;j<=cptcoveff;j++) |
/* continue; */ |
fprintf(ficrespij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficrespij,"\n#****** "); |
for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */ |
for(j=1;j<=cptcovs;j++){ |
printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
fprintf(ficrespij," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
fprintf(ficrespij," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); |
/* fprintf(ficrespij,"@wV%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
} |
/* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */ |
fprintf(ficrespij,"******\n"); |
/* printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
|
/* fprintf(ficrespij," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */ |
for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */ |
} |
nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */ |
fprintf(ficrespij,"******\n"); |
nhstepm = nhstepm/hstepm; /* Typically 40/4=10 */ |
|
|
for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */ |
/* nhstepm=nhstepm*YEARM; aff par mois*/ |
nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */ |
|
nhstepm = nhstepm/hstepm; /* Typically 40/4=10 */ |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
|
oldm=oldms;savm=savms; |
/* nhstepm=nhstepm*YEARM; aff par mois*/ |
hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k, nres); |
|
fprintf(ficrespij,"# Cov Agex agex+h hpijx with i,j="); |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
|
oldm=oldms;savm=savms; |
|
hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k, nres); |
|
fprintf(ficrespij,"# Cov Agex agex+h hpijx with i,j="); |
|
for(i=1; i<=nlstate;i++) |
|
for(j=1; j<=nlstate+ndeath;j++) |
|
fprintf(ficrespij," %1d-%1d",i,j); |
|
fprintf(ficrespij,"\n"); |
|
for (h=0; h<=nhstepm; h++){ |
|
/*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/ |
|
fprintf(ficrespij,"%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(ficrespij," %1d-%1d",i,j); |
fprintf(ficrespij," %.5f", p3mat[i][j][h]); |
fprintf(ficrespij,"\n"); |
|
for (h=0; h<=nhstepm; h++){ |
|
/*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/ |
|
fprintf(ficrespij,"%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(ficrespij," %.5f", p3mat[i][j][h]); |
|
fprintf(ficrespij,"\n"); |
|
} |
|
free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
|
fprintf(ficrespij,"\n"); |
fprintf(ficrespij,"\n"); |
} |
} |
/*}*/ |
free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
|
fprintf(ficrespij,"\n"); |
} |
} |
return 0; |
} |
|
/*}*/ |
|
return 0; |
} |
} |
|
|
int hBijx(double *p, int bage, int fage, double ***prevacurrent){ |
int hBijx(double *p, int bage, int fage, double ***prevacurrent){ |
/*------------- h Bij x at various ages ------------*/ |
/*------------- h Bij x at various ages ------------*/ |
|
/* To be optimized with precov */ |
int stepsize; |
int stepsize; |
/* int agelim; */ |
/* int agelim; */ |
int ageminl; |
int ageminl; |
Line 11720 int hPijx(double *p, int bage, int fage)
|
Line 12227 int hPijx(double *p, int bage, int fage)
|
/* /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */ |
/* /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */ |
/* k=k+1; */ |
/* k=k+1; */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
k=TKresult[nres]; |
if(i1 != 1 && TKresult[nres]!= k) |
if(TKresult[nres]==0) k=1; /* To be checked for noresult */ |
continue; |
/* for(k=1; k<=i1;k++){ /\* For any combination of dummy covariates, fixed and varying *\/ */ |
fprintf(ficrespijb,"\n#****** "); |
/* if(i1 != 1 && TKresult[nres]!= k) */ |
for(j=1;j<=cptcoveff;j++) |
/* continue; */ |
fprintf(ficrespijb,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficrespijb,"\n#****** "); |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
for(j=1;j<=cptcovs;j++){ |
fprintf(ficrespijb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
fprintf(ficrespijb," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]); |
} |
/* for(j=1;j<=cptcoveff;j++) */ |
fprintf(ficrespijb,"******\n"); |
/* fprintf(ficrespijb,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
if(invalidvarcomb[k]){ /* Is it necessary here? */ |
/* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ */ |
fprintf(ficrespijb,"\n#Combination (%d) ignored because no cases \n",k); |
/* fprintf(ficrespijb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
continue; |
} |
} |
fprintf(ficrespijb,"******\n"); |
|
if(invalidvarcomb[k]){ /* Is it necessary here? */ |
/* for (agedeb=fage; agedeb>=bage; agedeb--){ /\* If stepm=6 months *\/ */ |
fprintf(ficrespijb,"\n#Combination (%d) ignored because no cases \n",k); |
for (agedeb=bage; agedeb<=fage; agedeb++){ /* If stepm=6 months and estepm=24 (2 years) */ |
continue; |
/* nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /\* Typically 20 years = 20*12/6=40 *\/ */ |
} |
nhstepm=(int) rint((agedeb-ageminl)*YEARM/stepm+0.1)-1; /* Typically 20 years = 20*12/6=40 or 55*12/24=27.5-1.1=>27 */ |
|
nhstepm = nhstepm/hstepm; /* Typically 40/4=10, because estepm=24 stepm=6 => hstepm=24/6=4 or 28*/ |
/* 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) */ |
/* nhstepm=nhstepm*YEARM; aff par mois*/ |
/* nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /\* Typically 20 years = 20*12/6=40 *\/ */ |
|
nhstepm=(int) rint((agedeb-ageminl)*YEARM/stepm+0.1)-1; /* Typically 20 years = 20*12/6=40 or 55*12/24=27.5-1.1=>27 */ |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); /* We can't have it at an upper level because of nhstepm */ |
nhstepm = nhstepm/hstepm; /* Typically 40/4=10, because estepm=24 stepm=6 => hstepm=24/6=4 or 28*/ |
/* and memory limitations if stepm is small */ |
|
|
/* nhstepm=nhstepm*YEARM; aff par mois*/ |
/* oldm=oldms;savm=savms; */ |
|
/* hbxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k); */ |
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); /* We can't have it at an upper level because of nhstepm */ |
hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm, k, nres);/* Bug valgrind */ |
/* and memory limitations if stepm is small */ |
/* hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm,oldm,savm, dnewm, doldm, dsavm, k); */ |
|
fprintf(ficrespijb,"# Cov Agex agex-h hbijx with i,j="); |
/* oldm=oldms;savm=savms; */ |
|
/* hbxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k); */ |
|
hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm, k, nres);/* Bug valgrind */ |
|
/* hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm,oldm,savm, dnewm, doldm, dsavm, k); */ |
|
fprintf(ficrespijb,"# Cov Agex agex-h hbijx with i,j="); |
|
for(i=1; i<=nlstate;i++) |
|
for(j=1; j<=nlstate+ndeath;j++) |
|
fprintf(ficrespijb," %1d-%1d",i,j); |
|
fprintf(ficrespijb,"\n"); |
|
for (h=0; h<=nhstepm; h++){ |
|
/*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/ |
|
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," %1d-%1d",i,j); |
fprintf(ficrespijb," %.5f", p3mat[i][j][h]);/* Bug valgrind */ |
fprintf(ficrespijb,"\n"); |
fprintf(ficrespijb,"\n"); |
for (h=0; h<=nhstepm; h++){ |
} |
/*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/ |
free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb - h*hstepm/YEARM*stepm ); |
fprintf(ficrespijb,"\n"); |
/* fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb + h*hstepm/YEARM*stepm ); */ |
} /* end age deb */ |
for(i=1; i<=nlstate;i++) |
/* } /\* end combination *\/ */ |
for(j=1; j<=nlstate+ndeath;j++) |
|
fprintf(ficrespijb," %.5f", p3mat[i][j][h]);/* Bug valgrind */ |
|
fprintf(ficrespijb,"\n"); |
|
} |
|
free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
|
fprintf(ficrespijb,"\n"); |
|
} /* end age deb */ |
|
} /* end combination */ |
|
} /* end nres */ |
} /* end nres */ |
return 0; |
return 0; |
} /* hBijx */ |
} /* hBijx */ |
Line 12163 int main(int argc, char *argv[])
|
Line 12674 int main(int argc, char *argv[])
|
strcpy(model,modeltemp); |
strcpy(model,modeltemp); |
} |
} |
} |
} |
/* printf(" model=1+age%s modeltemp= %s, model=%s\n",model, modeltemp, model);fflush(stdout); */ |
/* printf(" model=1+age%s modeltemp= %s, model=1+age+%s\n",model, modeltemp, model);fflush(stdout); */ |
printf("model=1+age+%s\n",model);fflush(stdout); |
printf("model=1+age+%s\n",model);fflush(stdout); |
fprintf(ficparo,"model=1+age+%s\n",model);fflush(stdout); |
fprintf(ficparo,"model=1+age+%s\n",model);fflush(stdout); |
fprintf(ficres,"model=1+age+%s\n",model);fflush(stdout); |
fprintf(ficres,"model=1+age+%s\n",model);fflush(stdout); |
Line 12191 int main(int argc, char *argv[])
|
Line 12702 int main(int argc, char *argv[])
|
numlinepar++; |
numlinepar++; |
if(line[1]=='q'){ /* This #q will quit imach (the answer is q) */ |
if(line[1]=='q'){ /* This #q will quit imach (the answer is q) */ |
z[0]=line[1]; |
z[0]=line[1]; |
|
}else if(line[1]=='d'){ /* For debugging individual values of covariates in ficresilk */ |
|
debugILK=1;printf("DebugILK\n"); |
} |
} |
/* printf("****line [1] = %c \n",line[1]); */ |
/* printf("****line [1] = %c \n",line[1]); */ |
fputs(line, stdout); |
fputs(line, stdout); |
Line 12204 int main(int argc, char *argv[])
|
Line 12717 int main(int argc, char *argv[])
|
covar=matrix(0,NCOVMAX,firstobs,lastobs); /**< used in readdata */ |
covar=matrix(0,NCOVMAX,firstobs,lastobs); /**< used in readdata */ |
if(nqv>=1)coqvar=matrix(1,nqv,firstobs,lastobs); /**< Fixed quantitative covariate */ |
if(nqv>=1)coqvar=matrix(1,nqv,firstobs,lastobs); /**< Fixed quantitative covariate */ |
if(nqtv>=1)cotqvar=ma3x(1,maxwav,1,nqtv,firstobs,lastobs); /**< Time varying quantitative covariate */ |
if(nqtv>=1)cotqvar=ma3x(1,maxwav,1,nqtv,firstobs,lastobs); /**< Time varying quantitative covariate */ |
if(ntv+nqtv>=1)cotvar=ma3x(1,maxwav,1,ntv+nqtv,firstobs,lastobs); /**< Time varying covariate (dummy and quantitative)*/ |
/* if(ntv+nqtv>=1)cotvar=ma3x(1,maxwav,1,ntv+nqtv,firstobs,lastobs); /\**< Time varying covariate (dummy and quantitative)*\/ */ |
|
if(ntv+nqtv>=1)cotvar=ma3x(1,maxwav,ncovcol+nqv+1,ncovcol+nqv+ntv+nqtv,firstobs,lastobs); /**< Might be better */ |
cptcovn=0; /*Number of covariates, i.e. number of '+' in model statement plus one, indepently of n in Vn*/ |
cptcovn=0; /*Number of covariates, i.e. number of '+' in model statement plus one, indepently of n in Vn*/ |
/* v1+v2+v3+v2*v4+v5*age makes cptcovn = 5 |
/* v1+v2+v3+v2*v4+v5*age makes cptcovn = 5 |
v1+v2*age+v2*v3 makes cptcovn = 3 |
v1+v2*age+v2*v3 makes cptcovn = 3 |
Line 12447 Please run with mle=-1 to get a correct
|
Line 12961 Please run with mle=-1 to get a correct
|
mint=matrix(1,maxwav,firstobs,lastobs); |
mint=matrix(1,maxwav,firstobs,lastobs); |
anint=matrix(1,maxwav,firstobs,lastobs); |
anint=matrix(1,maxwav,firstobs,lastobs); |
s=imatrix(1,maxwav+1,firstobs,lastobs); /* s[i][j] health state for wave i and individual j */ |
s=imatrix(1,maxwav+1,firstobs,lastobs); /* s[i][j] health state for wave i and individual j */ |
printf("BUG ncovmodel=%d NCOVMAX=%d 2**ncovmodel=%f BUG\n",ncovmodel,NCOVMAX,pow(2,ncovmodel)); |
/* printf("BUG ncovmodel=%d NCOVMAX=%d 2**ncovmodel=%f BUG\n",ncovmodel,NCOVMAX,pow(2,ncovmodel)); */ |
tab=ivector(1,NCOVMAX); |
tab=ivector(1,NCOVMAX); |
ncodemax=ivector(1,NCOVMAX); /* Number of code per covariate; if O and 1 only, 2**ncov; V1+V2+V3+V4=>16 */ |
ncodemax=ivector(1,NCOVMAX); /* Number of code per covariate; if O and 1 only, 2**ncov; V1+V2+V3+V4=>16 */ |
ncodemaxwundef=ivector(1,NCOVMAX); /* Number of code per covariate; if - 1 O and 1 only, 2**ncov; V1+V2+V3+V4=>16 */ |
ncodemaxwundef=ivector(1,NCOVMAX); /* Number of code per covariate; if - 1 O and 1 only, 2**ncov; V1+V2+V3+V4=>16 */ |
Line 12485 Please run with mle=-1 to get a correct
|
Line 12999 Please run with mle=-1 to get a correct
|
TvarVDind=ivector(1,NCOVMAX); /* */ |
TvarVDind=ivector(1,NCOVMAX); /* */ |
TvarVQ=ivector(1,NCOVMAX); /* */ |
TvarVQ=ivector(1,NCOVMAX); /* */ |
TvarVQind=ivector(1,NCOVMAX); /* */ |
TvarVQind=ivector(1,NCOVMAX); /* */ |
|
TvarVV=ivector(1,NCOVMAX); /* */ |
|
TvarVVind=ivector(1,NCOVMAX); /* */ |
|
|
Tvalsel=vector(1,NCOVMAX); /* */ |
Tvalsel=vector(1,NCOVMAX); /* */ |
Tvarsel=ivector(1,NCOVMAX); /* */ |
Tvarsel=ivector(1,NCOVMAX); /* */ |
Line 12594 Please run with mle=-1 to get a correct
|
Line 13110 Please run with mle=-1 to get a correct
|
} |
} |
|
|
ncovcombmax=pow(2,cptcoveff); |
ncovcombmax=pow(2,cptcoveff); |
invalidvarcomb=ivector(1, ncovcombmax); |
invalidvarcomb=ivector(0, ncovcombmax); |
for(i=1;i<ncovcombmax;i++) |
for(i=0;i<ncovcombmax;i++) |
invalidvarcomb[i]=0; |
invalidvarcomb[i]=0; |
|
|
/* Nbcode gives the value of the lth modality (currently 1 to 2) of jth covariate, in |
/* Nbcode gives the value of the lth modality (currently 1 to 2) of jth covariate, in |
Line 12740 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 13256 Title=%s <br>Datafile=%s Firstpass=%d La
|
fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\"> \n\ |
fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\"> \n\ |
<font size=\"2\">IMaCh-%s <br> %s</font> \ |
<font size=\"2\">IMaCh-%s <br> %s</font> \ |
<hr size=\"2\" color=\"#EC5E5E\"> \n\ |
<hr size=\"2\" color=\"#EC5E5E\"> \n\ |
This file: <a href=\"%s\">%s</a>Title=%s <br>Datafile=<a href=\"%s\">%s</a> Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s<br>\n\ |
This file: <a href=\"%s\">%s</a></br>Title=%s <br>Datafile=<a href=\"%s\">%s</a> Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s<br>\n\ |
\n\ |
\n\ |
<hr size=\"2\" color=\"#EC5E5E\">\ |
<hr size=\"2\" color=\"#EC5E5E\">\ |
<ul><li><h4>Parameter files</h4>\n\ |
<ul><li><h4>Parameter files</h4>\n\ |
Line 13486 Please run with mle=-1 to get a correct
|
Line 14002 Please run with mle=-1 to get a correct
|
case 13: |
case 13: |
num_filled=sscanf(line,"result:%[^\n]\n",resultlineori); |
num_filled=sscanf(line,"result:%[^\n]\n",resultlineori); |
nresult++; /* Sum of resultlines */ |
nresult++; /* Sum of resultlines */ |
printf("Result %d: result:%s\n",nresult, resultlineori); |
/* printf("Result %d: result:%s\n",nresult, resultlineori); */ |
/* removefirstspace(&resultlineori); */ |
/* removefirstspace(&resultlineori); */ |
|
|
if(strstr(resultlineori,"v") !=0){ |
if(strstr(resultlineori,"v") !=0){ |
Line 13495 Please run with mle=-1 to get a correct
|
Line 14011 Please run with mle=-1 to get a correct
|
return 1; |
return 1; |
} |
} |
trimbb(resultline, resultlineori); /* Suppressing double blank in the resultline */ |
trimbb(resultline, resultlineori); /* Suppressing double blank in the resultline */ |
printf("Decoderesult resultline=\"%s\" resultlineori=\"%s\"\n", resultline, resultlineori); |
/* printf("Decoderesult resultline=\"%s\" resultlineori=\"%s\"\n", resultline, resultlineori); */ |
if(nresult > MAXRESULTLINESPONE-1){ |
if(nresult > MAXRESULTLINESPONE-1){ |
printf("ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\nYou can use the 'r' parameter file '%s' which uses option mle=0 to get other results. ",MAXRESULTLINESPONE-1,nresult,rfileres); |
printf("ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\nYou can use the 'r' parameter file '%s' which uses option mle=0 to get other results. ",MAXRESULTLINESPONE-1,nresult,rfileres); |
fprintf(ficlog,"ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\nYou can use the 'r' parameter file '%s' which uses option mle=0 to get other results. ",MAXRESULTLINESPONE-1,nresult,rfileres); |
fprintf(ficlog,"ERROR: Current version of IMaCh limits the number of resultlines to %d, you used %d\nYou can use the 'r' parameter file '%s' which uses option mle=0 to get other results. ",MAXRESULTLINESPONE-1,nresult,rfileres); |
Line 13742 Please run with mle=-1 to get a correct
|
Line 14258 Please run with mle=-1 to get a correct
|
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
} |
} |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
printf(" V%d=%f ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]); /* TvarsQ[j] gives the name of the jth quantitative (fixed or time v) */ |
printf(" V%d=%lg ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]); /* TvarsQ[j] gives the name of the jth quantitative (fixed or time v) */ |
fprintf(ficreseij,"V%d=%f ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]); |
fprintf(ficreseij,"V%d=%lg ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]); |
} |
} |
fprintf(ficreseij,"******\n"); |
fprintf(ficreseij,"******\n"); |
printf("******\n"); |
printf("******\n"); |
Line 13761 Please run with mle=-1 to get a correct
|
Line 14277 Please run with mle=-1 to get a correct
|
|
|
|
|
/*---------- State-specific expectancies and variances ------------*/ |
/*---------- State-specific expectancies and variances ------------*/ |
|
/* Should be moved in a function */ |
strcpy(filerest,"T_"); |
strcpy(filerest,"T_"); |
strcat(filerest,fileresu); |
strcat(filerest,fileresu); |
if((ficrest=fopen(filerest,"w"))==NULL) { |
if((ficrest=fopen(filerest,"w"))==NULL) { |
Line 13832 Please run with mle=-1 to get a correct
|
Line 14348 Please run with mle=-1 to get a correct
|
/* Tvresult[nres][j] Name of the variable at position j in this resultline */ |
/* Tvresult[nres][j] Name of the variable at position j in this resultline */ |
/* Tresult[nres][j] Value of this variable at position j could be a float if quantitative */ |
/* Tresult[nres][j] Value of this variable at position j could be a float if quantitative */ |
/* We give up with the combinations!! */ |
/* We give up with the combinations!! */ |
printf("\n j=%d In computing T_ Dummy[modelresult[%d][%d]]=%d, modelresult[%d][%d]=%d cptcovs=%d, cptcoveff=%d Fixed[modelresult[nres][j]]=%d\n", j, nres, j, Dummy[modelresult[nres][j]],nres,j,modelresult[nres][j],cptcovs, cptcoveff,Fixed[modelresult[nres][j]]); /* end if dummy or quanti */ |
/* if(debugILK) */ |
|
/* printf("\n j=%d In computing T_ Dummy[modelresult[%d][%d]]=%d, modelresult[%d][%d]=%d cptcovs=%d, cptcoveff=%d Fixed[modelresult[nres][j]]=%d\n", j, nres, j, Dummy[modelresult[nres][j]],nres,j,modelresult[nres][j],cptcovs, cptcoveff,Fixed[modelresult[nres][j]]); /\* end if dummy or quanti *\/ */ |
|
|
if(Dummy[modelresult[nres][j]]==0){/* Dummy variable of the variable in position modelresult in the model corresponding to j in resultline */ |
if(Dummy[modelresult[nres][j]]==0){/* Dummy variable of the variable in position modelresult in the model corresponding to j in resultline */ |
printf("V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
printf("V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
fprintf(ficlog,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
fprintf(ficlog,"V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
fprintf(ficrest,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
fprintf(ficrest,"V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
if(Fixed[modelresult[nres][j]]==0){ /* Fixed */ |
if(Fixed[modelresult[nres][j]]==0){ /* Fixed */ |
printf("fixed ");fprintf(ficlog,"fixed ");fprintf(ficrest,"fixed "); |
printf("fixed ");fprintf(ficlog,"fixed ");fprintf(ficrest,"fixed "); |
}else{ |
}else{ |
Line 13847 Please run with mle=-1 to get a correct
|
Line 14364 Please run with mle=-1 to get a correct
|
/* fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
/* fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
}else if(Dummy[modelresult[nres][j]]==1){ /* Quanti variable */ |
}else if(Dummy[modelresult[nres][j]]==1){ /* Quanti variable */ |
/* For each selected (single) quantitative value */ |
/* For each selected (single) quantitative value */ |
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
printf(" V%d=%lg ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
fprintf(ficlog," V%d=%lg ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
fprintf(ficrest," V%d=%lg ",Tvqresult[nres][j],Tqresult[nres][j]); |
if(Fixed[modelresult[nres][j]]==0){ /* Fixed */ |
if(Fixed[modelresult[nres][j]]==0){ /* Fixed */ |
printf("fixed ");fprintf(ficlog,"fixed ");fprintf(ficrest,"fixed "); |
printf("fixed ");fprintf(ficlog,"fixed ");fprintf(ficrest,"fixed "); |
}else{ |
}else{ |
Line 13870 Please run with mle=-1 to get a correct
|
Line 14389 Please run with mle=-1 to get a correct
|
|
|
fprintf(ficresstdeij,"\n#****** "); |
fprintf(ficresstdeij,"\n#****** "); |
fprintf(ficrescveij,"\n#****** "); |
fprintf(ficrescveij,"\n#****** "); |
|
/* It could have been: for(j=1;j<=cptcoveff;j++) {printf("V=%d=%lg",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);} */ |
|
/* But it won't be sorted and depends on how the resultline is ordered */ |
for(j=1;j<=cptcoveff;j++) { |
for(j=1;j<=cptcoveff;j++) { |
fprintf(ficresstdeij,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); |
fprintf(ficresstdeij,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); |
/* fprintf(ficresstdeij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
/* fprintf(ficresstdeij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
/* fprintf(ficrescveij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
/* fprintf(ficrescveij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
} |
} |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value, TvarsQind gives the position of a quantitative in model equation */ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value, TvarsQind gives the position of a quantitative in model equation */ |
fprintf(ficresstdeij," V%d=%f ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]); |
fprintf(ficresstdeij," V%d=%lg ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]); |
fprintf(ficrescveij," V%d=%f ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]); |
fprintf(ficrescveij," V%d=%lg ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]); |
} |
} |
fprintf(ficresstdeij,"******\n"); |
fprintf(ficresstdeij,"******\n"); |
fprintf(ficrescveij,"******\n"); |
fprintf(ficrescveij,"******\n"); |
Line 13889 Please run with mle=-1 to get a correct
|
Line 14410 Please run with mle=-1 to get a correct
|
/* fprintf(ficresvij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[TnsdVar[Tvaraff[j]]])]); */ |
/* fprintf(ficresvij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[TnsdVar[Tvaraff[j]]])]); */ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
/* fprintf(ficresvij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); /\* To solve *\/ */ |
/* fprintf(ficresvij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); /\* To solve *\/ */ |
fprintf(ficresvij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); /* Solved */ |
fprintf(ficresvij," V%d=%lg ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); /* Solved */ |
} |
} |
fprintf(ficresvij,"******\n"); |
fprintf(ficresvij,"******\n"); |
|
|
Line 14002 Please run with mle=-1 to get a correct
|
Line 14523 Please run with mle=-1 to get a correct
|
free_matrix(oldms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(oldms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(newms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(newms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(savms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(savms, 1,nlstate+ndeath,1,nlstate+ndeath); |
if(ntv+nqtv>=1)free_ma3x(cotvar,1,maxwav,1,ntv+nqtv,firstobs,lastobs); |
/* if(ntv+nqtv>=1)free_ma3x(cotvar,1,maxwav,1,ntv+nqtv,firstobs,lastobs); */ |
|
if(ntv+nqtv>=1)free_ma3x(cotvar,1,maxwav,ncovcol+nqv+1,ncovcol+nqv+ntv+nqtv,firstobs,lastobs); |
if(nqtv>=1)free_ma3x(cotqvar,1,maxwav,1,nqtv,firstobs,lastobs); |
if(nqtv>=1)free_ma3x(cotqvar,1,maxwav,1,nqtv,firstobs,lastobs); |
if(nqv>=1)free_matrix(coqvar,1,nqv,firstobs,lastobs); |
if(nqv>=1)free_matrix(coqvar,1,nqv,firstobs,lastobs); |
free_matrix(covar,0,NCOVMAX,firstobs,lastobs); |
free_matrix(covar,0,NCOVMAX,firstobs,lastobs); |
Line 14041 Please run with mle=-1 to get a correct
|
Line 14563 Please run with mle=-1 to get a correct
|
free_ivector(TvarVDind,1,NCOVMAX); |
free_ivector(TvarVDind,1,NCOVMAX); |
free_ivector(TvarVQ,1,NCOVMAX); |
free_ivector(TvarVQ,1,NCOVMAX); |
free_ivector(TvarVQind,1,NCOVMAX); |
free_ivector(TvarVQind,1,NCOVMAX); |
|
free_ivector(TvarVV,1,NCOVMAX); |
|
free_ivector(TvarVVind,1,NCOVMAX); |
|
|
free_ivector(Tvarsel,1,NCOVMAX); |
free_ivector(Tvarsel,1,NCOVMAX); |
free_vector(Tvalsel,1,NCOVMAX); |
free_vector(Tvalsel,1,NCOVMAX); |
free_ivector(Tposprod,1,NCOVMAX); |
free_ivector(Tposprod,1,NCOVMAX); |
free_ivector(Tprod,1,NCOVMAX); |
free_ivector(Tprod,1,NCOVMAX); |
free_ivector(Tvaraff,1,NCOVMAX); |
free_ivector(Tvaraff,1,NCOVMAX); |
free_ivector(invalidvarcomb,1,ncovcombmax); |
free_ivector(invalidvarcomb,0,ncovcombmax); |
free_ivector(Tage,1,NCOVMAX); |
free_ivector(Tage,1,NCOVMAX); |
free_ivector(Tmodelind,1,NCOVMAX); |
free_ivector(Tmodelind,1,NCOVMAX); |
free_ivector(TmodelInvind,1,NCOVMAX); |
free_ivector(TmodelInvind,1,NCOVMAX); |