Dear Prof. Michel and Aymeric
###IMPORT NECESSARY MODULES TO RUN BIOGEME
from biogeme import *
from biogeme import *
__rowId__=Variable('__rowId__')
pastexp,tsainexp,tsaoutexp,hand_carry,colleague,gender,income,age,education,pbc1,pbc2,pbc5=Variable('pastexp,tsainexp,tsaoutexp,hand_carry,colleague,gender,income,age,education,pbc1,pbc2,pbc5')
from headers import *
from loglikelihood import *
from statistics import *
### Variables
male = DefineVariable('male',gender == 1)
### Coefficients
coef_intercept = Beta('coef_intercept',0.0,-1000,1000,0 )
coef_male = Beta('coef_male',0.0,-1000,1000,0 )
coef_hand_carry = Beta('coef_hand_carry',0.0,-1000,1000,0 )
coef_tsainexp = Beta('coef_tsainexp',0.0,-1000,1000,0 )
coef_tsaoutexp = Beta('coef_tsaoutexp',0.0,-1000,1000,0 )
coef_colleague = Beta('coef_colleague',0.0,-1000,1000,0 )
coef_income = Beta('coef_income',0.0,-1000,1000,0 )
coef_education = Beta('coef_education',0.0,-1000,1000,0 )
coef_age = Beta('coef_age',0.0,-1000,1000,0 )
### Latent variable: structural equation
PBC = \
coef_intercept +\
coef_male * male +\
coef_hand_carry * hand_carry +\
coef_tsainexp * tsainexp +\
coef_tsaoutexp * tsaoutexp +\
coef_colleague * colleague +\
coef_income * income +\
coef_education * education +\
coef_age * age +\
### Measurement equations
INTER_pbc2 = Beta('INTER_pbc2',0.0,-10000,10000,0 )
INTER_pbc5 = Beta('INTER_pbc5',0.0,-10000,10000,0 )
B_pbc2_F1 = Beta('B_Envir02_F1',-0.431461,-10000,10000,0 )
B_pbc5_F1 = Beta('B_Envir05_F1',0.565903,-10000,10000,0 )
MODEL_pbc2 = INTER_pbc2 + B_pbc2_F1 * PBC
MODEL_pbc5 = INTER_pbc5 + B_pbc5_F1 * PBC
SIGMA_STAR_pbc2 = Beta('SIGMA_STAR_pbc2',1,-10000,10000,0 )
SIGMA_STAR_pbc5 = Beta('SIGMA_STAR_pbc5',10.0,-10000,10000,0 )
delta_1 = Beta('delta_1',1,0,10,0 )
delta_2 = Beta('delta_2',3.0,0,10,0 )
tau_1 = -delta_1 - delta_2
tau_2 = -delta_1
tau_3 = delta_1
tau_4 = delta_1 + delta_2
pbc2_tau_1 = (tau_1-MODEL_pbc2) / SIGMA_STAR_pbc2
pbc2_tau_2 = (tau_2-MODEL_pbc2) / SIGMA_STAR_pbc2
pbc2_tau_3 = (tau_3-MODEL_pbc2) / SIGMA_STAR_pbc2
pbc2_tau_4 = (tau_4-MODEL_pbc2) / SIGMA_STAR_pbc2
Indpbc2 = {
1: bioNormalCdf(pbc2_tau_1),
2: bioNormalCdf(pbc2_tau_2)-bioNormalCdf(pbc2_tau_1),
3: bioNormalCdf(pbc2_tau_3)-bioNormalCdf(pbc2_tau_2),
4: bioNormalCdf(pbc2_tau_4)-bioNormalCdf(pbc2_tau_3),
5: 1-bioNormalCdf(pbc2_tau_4),
6: 1.0,
-1: 1.0,
-2: 1.0
}
P_pbc2 = Elem(Indpbc2, pbc2)
pbc5_tau_1 = (tau_1-MODEL_pbc5) / SIGMA_STAR_pbc5
pbc5_tau_2 = (tau_2-MODEL_pbc5) / SIGMA_STAR_pbc5
pbc5_tau_3 = (tau_3-MODEL_pbc5) / SIGMA_STAR_pbc5
pbc5_tau_4 = (tau_4-MODEL_pbc5) / SIGMA_STAR_pbc5
Indpbc5 = {
1: bioNormalCdf(pbc5_tau_1),
2: bioNormalCdf(pbc5_tau_2)-bioNormalCdf(pbc5_tau_1),
3: bioNormalCdf(pbc5_tau_3)-bioNormalCdf(pbc5_tau_2),
4: bioNormalCdf(pbc5_tau_4)-bioNormalCdf(pbc5_tau_3),
5: 1-bioNormalCdf(pbc5_tau_4),
6: 1.0,
-1: 1.0,
-2: 1.0
}
P_pbc5 = Elem(Indpbc5, pbc5)
loglike = log(P_pbc2) + \
log(P_pbc5) +
# Defines an iterator on the data
rowIterator('obsIter')
BIOGEME_OBJECT.ESTIMATE = Sum(loglike,'obsIter')