Hi all,
I'm new to ml and it's really frustrating. It kept saying "invalid syntax" while I can't figure out where is the mistake.
Thank you for your time and attention in advance.
code for ml evaluator:
program myMLE_gf0
args todo b lnfj
scalar seta1=`b'[1,1]
scalar seta2=`b'[1,2]
scalar seta3=`b'[1,3]
capture confirm matrix EV_s0
capture confirm matrix EV_s1
scalar s0 = 1
dis s0
scalar s1 = 2
dis s1
mata: EV_s0 = getEV("seta1","seta2","seta3","M","s0")
mata: st_matrix("EV_s0",EV_s0)
dis EV_s0
mata: EV_s1 = getEV("seta1","seta2","seta3","M","s1")
mata: st_matrix("EV_s1",EV_s1)
dis EV_s1
mata: CProb_s0=getCProb("seta1","seta2","seta3","M","s0" ,"EV_s0")
mata: st_matrix("CProb_s0",CProb_s0)
dis CProb_s0
mata: CProb_s1=getCProb("seta1","seta2","seta3","M","s1" ,"EV_s1")
mata: st_matrix("CProb_s1",CProb_s1)
dis CProb_s1
forvalues bus_id = 0/`N' {
forvalues mile_now = 0/`M' {
forvalue action_now = 0/1 {
quietly replace `lnfj'= Q_bus[`bus_id'+1,1]*ln(`action_now'*CProb_s0[1,`mile_now'+1]+(1-`action_now')*(1-CProb_s0[1,`mile_now'+1]))+ (1-Q_bus[`bus_id'+1,1])*ln(`action_now'*CProb_s1[1,`mile_now'+1]+(1-`action_now')*(1-CProb_s1[1,`mile_now'+1])) if bus==`bus_id' & mile==`mile_now' & action ==`action_now'
}
}
}
end
------------------end of code for ml evaluator----------------------------------
Then:
ml model gf0 myMLE_gf0 (action = mile period)
ml check
It shows:
--------------------message from stata-----------------------------------------
...
CProb_s1[1,6]
c1 c2 c3 c4 c5 c6
r1 .5 .5 .5 .5 .5 .5
----------------------------------------------------- end _matrix_cmds.List ---
- exit
------------------------------------------------------------ end _matrix_cmds ---
- forvalues bus_id = 0/`N' {
= forvalues bus_id = 0/ {
invalid syntax
----------------------------------------------------------------- end myMLE_gf0 ---
- `end'
= set trace off
------------------------------------------------------------------------------
Fix myMLE_gf0.
r(198);
--------------------end of message from stata-----------------------------------------
Looking forward to some one help me out from this.
Thanks a lot!
I'm new to ml and it's really frustrating. It kept saying "invalid syntax" while I can't figure out where is the mistake.
Thank you for your time and attention in advance.
code for ml evaluator:
program myMLE_gf0
args todo b lnfj
scalar seta1=`b'[1,1]
scalar seta2=`b'[1,2]
scalar seta3=`b'[1,3]
capture confirm matrix EV_s0
capture confirm matrix EV_s1
scalar s0 = 1
dis s0
scalar s1 = 2
dis s1
mata: EV_s0 = getEV("seta1","seta2","seta3","M","s0")
mata: st_matrix("EV_s0",EV_s0)
dis EV_s0
mata: EV_s1 = getEV("seta1","seta2","seta3","M","s1")
mata: st_matrix("EV_s1",EV_s1)
dis EV_s1
mata: CProb_s0=getCProb("seta1","seta2","seta3","M","s0" ,"EV_s0")
mata: st_matrix("CProb_s0",CProb_s0)
dis CProb_s0
mata: CProb_s1=getCProb("seta1","seta2","seta3","M","s1" ,"EV_s1")
mata: st_matrix("CProb_s1",CProb_s1)
dis CProb_s1
forvalues bus_id = 0/`N' {
forvalues mile_now = 0/`M' {
forvalue action_now = 0/1 {
quietly replace `lnfj'= Q_bus[`bus_id'+1,1]*ln(`action_now'*CProb_s0[1,`mile_now'+1]+(1-`action_now')*(1-CProb_s0[1,`mile_now'+1]))+ (1-Q_bus[`bus_id'+1,1])*ln(`action_now'*CProb_s1[1,`mile_now'+1]+(1-`action_now')*(1-CProb_s1[1,`mile_now'+1])) if bus==`bus_id' & mile==`mile_now' & action ==`action_now'
}
}
}
end
------------------end of code for ml evaluator----------------------------------
Then:
ml model gf0 myMLE_gf0 (action = mile period)
ml check
It shows:
--------------------message from stata-----------------------------------------
...
CProb_s1[1,6]
c1 c2 c3 c4 c5 c6
r1 .5 .5 .5 .5 .5 .5
----------------------------------------------------- end _matrix_cmds.List ---
- exit
------------------------------------------------------------ end _matrix_cmds ---
- forvalues bus_id = 0/`N' {
= forvalues bus_id = 0/ {
invalid syntax
----------------------------------------------------------------- end myMLE_gf0 ---
- `end'
= set trace off
------------------------------------------------------------------------------
Fix myMLE_gf0.
r(198);
--------------------end of message from stata-----------------------------------------
Looking forward to some one help me out from this.
Thanks a lot!
Comment