|
|
| version 1.344, 2022/09/14 19:33:30 | version 1.345, 2022/09/16 13:40:11 |
|---|---|
| Line 1 | Line 1 |
| /* $Id$ | /* $Id$ |
| $State$ | $State$ |
| $Log$ | $Log$ |
| Revision 1.345 2022/09/16 13:40:11 brouard | |
| Summary: Version 0.99r41 | |
| * imach.c (Module): 0.99r41 Was an error when product of timevarying and fixed. Using FixedV[of name] now. Thank you Feinuo | |
| Revision 1.344 2022/09/14 19:33:30 brouard | Revision 1.344 2022/09/14 19:33:30 brouard |
| Summary: version 0.99r40 | Summary: version 0.99r40 |
| Line 3949 double func( double *x) | Line 3954 double func( double *x) |
| */ | */ |
| ioffset=2+nagesqr ; | ioffset=2+nagesqr ; |
| /* Fixed */ | /* Fixed */ |
| for (kf=1; kf<=ncovf;kf++){ /* For each fixed covariate dummu or quant or prod */ | for (kf=1; kf<=ncovf;kf++){ /* For each fixed covariate dummy 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 */ |
| Line 3978 double func( double *x) | Line 3983 double func( double *x) |
| for(ncovv=1, iposold=0; ncovv <= ncovvt ; ncovv++){ /* Varying covariates (single and product but no age )*/ | 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 */ | 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*/ | 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 */ | if(FixedV[itv]!=0){ /* Not a fixed covariate */ |
| cotvarv=cotvar[mw[mi][i]][TvarVV[ncovv]][i]; /* cotvar[wav][ncovcol+nqv+iv][i] */ | cotvarv=cotvar[mw[mi][i]][TvarVV[ncovv]][i]; /* cotvar[wav][ncovcol+nqv+iv][i] */ |
| }else{ /* fixed covariate */ | }else{ /* fixed covariate */ |
| cotvarv=covar[Tvar[TvarFind[itv]]][i]; | cotvarv=covar[itv][i]; /* Error: TvarFind gives the name, that is the true column of fixed covariates, but Tvar of the model */ |
| } | } |
| if(ipos!=iposold){ /* Not a product or first of a product */ | if(ipos!=iposold){ /* Not a product or first of a product */ |
| cotvarvold=cotvarv; | cotvarvold=cotvarv; |
| Line 4384 double funcone( double *x) | Line 4389 double funcone( double *x) |
| * TvarVVind 2 3 7 7 8 8 9 9 | * TvarVVind 2 3 7 7 8 8 9 9 |
| * TvarFind[k] 1 0 0 0 0 0 0 0 0 | * TvarFind[k] 1 0 0 0 0 0 0 0 0 |
| */ | */ |
| /* Other model ncovcol=5 nqv=0 ntv=3 nqtv=0 nlstate=3 | |
| /* V2 V3 V4 are fixed V6 V7 are timevarying so V8 and V5 are not in the model and product column will start at 9 Tvar[4]=6 | |
| * FixedV[ncovcol+qv+ntv+nqtv] V5 | |
| * V1 V2 V3 V4 V5 V6 V7 V8 | |
| * 0 0 0 0 0 1 1 1 | |
| * model= V2 + V3 + V4 + V6 + V7 + V6*V2 + V7*V2 + V6*V3 + V7*V3 + V6*V4 + V7*V4 | |
| * kmodel 1 2 3 4 5 6 7 8 9 10 11 | |
| * ncovf 1 2 3 | |
| * ncovvt=14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
| * TvarVV[1]@14 = itv {6, 7, 6, 2, 7, 2, 6, 3, 7, 3, 6, 4, 7, 4} | |
| * TvarVVind[1]@14= {4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11} | |
| * TvarFind[1]@14= {1, 2, 3, 0 <repeats 12 times>} | |
| * Tvar[1]@20= {2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14} | |
| * TvarFind[itv] 0 0 0 | |
| * FixedV[itv] 1 1 1 0 1 0 1 0 1 0 0 | |
| * Tvar[TvarFind[ncovf]]=[1]=2 [2]=3 [4]=4 | |
| * Tvar[TvarFind[itv]] [0]=? ?ncovv 1 à ncovvt] | |
| * Not a fixed cotvar[mw][itv][i] 6 7 6 2 7, 2, 6, 3, 7, 3, 6, 4, 7, 4} | |
| * fixed covar[itv] [6] [7] [6][2] | |
| */ | |
| for(ncovv=1, iposold=0; ncovv <= ncovvt ; ncovv++){ /* Varying covariates (single and product but no age) including individual from products */ | 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 */ | itv=TvarVV[ncovv]; /* TvarVV={3, 1, 3} gives the name of each varying covariate, exploding product */ |
| ipos=TvarVVind[ncovv]; /* TvarVVind={2, 5, 5] gives the position in the model of the ncovv th 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 */ | /* if(TvarFind[itv]==0){ /\* Not a fixed covariate? Could be a fixed covariate of a product with a higher than ncovcol+nqv, itv *\/ */ |
| cotvarv=cotvar[mw[mi][i]][TvarVV[ncovv]][i]; /* because cotvar starts now at first ncovcol+nqv+ (1 to nqtv) */ | if(FixedV[itv]!=0){ /* Not a fixed covariate? Could be a fixed covariate of a product with a higher than ncovcol+nqv, itv */ |
| cotvarv=cotvar[mw[mi][i]][TvarVV[ncovv]][i]; /* because cotvar starts now at first ncovcol+nqv+ntv+nqtv (1 to nqtv) */ | |
| }else{ /* fixed covariate */ | }else{ /* fixed covariate */ |
| cotvarv=covar[Tvar[TvarFind[itv]]][i]; | /* cotvarv=covar[Tvar[TvarFind[itv]]][i]; /\* Error: TvarFind gives the name, that is the true column of fixed covariates, but Tvar of the model *\/ */ |
| cotvarv=covar[itv][i]; /* Error: TvarFind gives the name, that is the true column of fixed covariates, but Tvar of the model */ | |
| } | } |
| if(ipos!=iposold){ /* Not a product or first of a product */ | if(ipos!=iposold){ /* Not a product or first of a product */ |
| cotvarvold=cotvarv; | cotvarvold=cotvarv; |
| Line 11120 int decodemodel( char model[], int lasto | Line 11148 int decodemodel( char model[], int lasto |
| * Model V2 + V1 + V3*age + V3 + V5*V6 + V7*V8 + V8*age + V8 | * Model V2 + V1 + V3*age + V3 + V5*V6 + V7*V8 + V8*age + V8 |
| * k= 1 2 3 4 5 6 7 8 | * k= 1 2 3 4 5 6 7 8 |
| * cptcovn number of covariates (not including constant and age ) = # of + plus 1 = 7+1=8 | * cptcovn number of covariates (not including constant and age ) = # of + plus 1 = 7+1=8 |
| * covar[k,i], value of kth covariate if not including age for individual i: | * covar[k,i], are for fixed covariates, value of kth covariate if not including age for individual i: |
| * covar[1][i]= (V1), covar[4][i]=(V4), covar[8][i]=(V8) | * covar[1][i]= (V1), covar[4][i]=(V4), covar[8][i]=(V8) |
| * Tvar[k] # of the kth covariate: Tvar[1]=2 Tvar[2]=1 Tvar[4]=3 Tvar[8]=8 | * Tvar[k] # of the kth covariate: Tvar[1]=2 Tvar[2]=1 Tvar[4]=3 Tvar[8]=8 |
| * if multiplied by age: V3*age Tvar[3=V3*age]=3 (V3) Tvar[7]=8 and | * if multiplied by age: V3*age Tvar[3=V3*age]=3 (V3) Tvar[7]=8 and |
| * Tage[++cptcovage]=k | * Tage[++cptcovage]=k |
| * if products, new covar are created after ncovcol with k1 | * if products, new covar are created after ncovcol + nqv (quanti fixed) with k1 |
| * Tvar[k]=ncovcol+k1; # of the kth covariate product: Tvar[5]=ncovcol+1=10 Tvar[6]=ncovcol+1=11 | * Tvar[k]=ncovcol+k1; # of the kth covariate product: Tvar[5]=ncovcol+1=10 Tvar[6]=ncovcol+1=11 |
| * Tprod[k1]=k; Tprod[1]=5 Tprod[2]= 6; gives the position of the k1th product | * Tprod[k1]=k; Tprod[1]=5 Tprod[2]= 6; gives the position of the k1th product |
| * Tvard[k1][1]=m Tvard[k1][2]=m; Tvard[1][1]=5 (V5) Tvard[1][2]=6 Tvard[2][1]=7 (V7) Tvard[2][2]=8 | * Tvard[k1][1]=m Tvard[k1][2]=m; Tvard[1][1]=5 (V5) Tvard[1][2]=6 Tvard[2][1]=7 (V7) Tvard[2][2]=8 |
| * Tvar[cptcovn+k2]=Tvard[k1][1];Tvar[cptcovn+k2+1]=Tvard[k1][2]; | * Tvar[cptcovn+k2]=Tvard[k1][1];Tvar[cptcovn+k2+1]=Tvard[k1][2]; |
| * Tvar[8+1]=5;Tvar[8+2]=6;Tvar[8+3]=7;Tvar[8+4]=8 inverted | * Tvar[8+1]=5;Tvar[8+2]=6;Tvar[8+3]=7;Tvar[8+4]=8 inverted |
| * V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 | * V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 |
| * < ncovcol=8 > | * < ncovcol=8 8 fixed covariate. Additional starts at 9 (V5*V6) and 10(V7*V8) > |
| * Model V2 + V1 + V3*age + V3 + V5*V6 + V7*V8 + V8*age + V8 d1 d1 d2 d2 | * Model V2 + V1 + V3*age + V3 + V5*V6 + V7*V8 + V8*age + V8 d1 d1 d2 d2 |
| * k= 1 2 3 4 5 6 7 8 9 10 11 12 | * k= 1 2 3 4 5 6 7 8 9 10 11 12 |
| * Tvar[k]= 2 1 3 3 10 11 8 8 5 6 7 8 | * Tvard[k]= 2 1 3 3 10 11 8 8 5 6 7 8 |
| * p Tvar[1]@12={2, 1, 3, 3, 11, 10, 8, 8, 7, 8, 5, 6} | * p Tvar[1]@12={2, 1, 3, 3, 9, 10, 8, 8} |
| * p Tprod[1]@2={ 6, 5} | * p Tprod[1]@2={ 6, 5} |
| *p Tvard[1][1]@4= {7, 8, 5, 6} | *p Tvard[1][1]@4= {7, 8, 5, 6} |
| * covar[k][i]= V2 V1 ? V3 V5*V6? V7*V8? ? V8 | * covar[k][i]= V2 V1 ? V3 V5*V6? V7*V8? ? V8 |