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 |