Dear StatList,

I am trying to replicate Harrison G. (2008) MLE of utility Functions using Stata. However, I am stucked at the very first commands. I run the following and get this error: "too few variables specified r(102)"

Here is the code

program define ML_eut0
version 9.0
args lnf r
tempvar choice prob0l prob1l prob2l prob3l prob0r prob1r prob2r prob3r endow m0 m1 m2 m3 y0 y1 y2 y3 euL euR euDiff
quietly {
generate int `choice' = $ML_y1
generate double `prob01' = $ML_y2
generate double `prob1l' = $ML_y3
generate double `prob2l' = $ML_y4
generate double `prob3l' = $ML_y5
generate double `prob0r' = $ML_y6
generate double `prob1r' = $ML_y7
generate double `prob2r' = $ML_y8
generate double `prob3r' = $ML_y9
generate double `m0' = $ML_y10
generate double `m1' = $ML_y11
generate double `m3' = $ML_y12
generate double `m4' = $ML_y13
generate double `m5' = $ML_y14
replace `m0' = `endow' + `m0'
replace `m1' = `endow' + `m1'
replace `m2' = `endow' + `m2'
replace `m3' = `endow' + `m3'
generate double `y0' = `m0'^`r'
generate double `y1' = `m1'^`r'
generate double `y0' = `m0'^`r'
generate double `y1' = `m1'^`r'
generate double `y2' = `m2'^`r'
generate double `y3' = `m3'^`r'
generate double `euL' = (`prob0l'*`y0')+(`prob1l'*`y1')+(`prob2l'*`y2')+(` prob3l'*`y3')
generate double `euR' = (`prob0r'*`y0')+(`prob1r'*`y1')+(`prob2r'*`y2')+(` prob3r'*`y3')
generate double `euDiff' = `euR' - `euL'
replace `lnf' = ln(normal( `euDiff')) if `choice'==1
replace `lnf' = ln(normal(-`euDiff')) if `choice'==0
replace ll = `lnf'
}
end

ml model lf ML_eut0 (r: Choices P0left P1left P2left P3left P0right P1right P2right P3right prize0 prize1 prize2 prize3 stake = ), cluster(id) technique(nr) maximize

Any suggestions?