Dear collegues,
I am programming my MLE model, however it is impossible to find feasible value. The model specification is very simple, as i'm trying to estimate a parametric model to get the alpha (CRRA) of the utiliy function (expo, or prelec).
Here is my code
program define ML_eut0
args lnf r
tempvar prob1l prob2l prob3l prob4l prob5l prob1r prob2r prob3r prob4r prob5r y1 y2 y3 y4 y5 x1 x2 x3 x4 x5 euL euR euDiff euRatio tmp lnf_eut lnf_pt p1 p2 p3 p4 p5 f1 f2
quietly {
* construct likelihood for EUT
generate double `prob1l' = $ML_y2
generate double `prob2l' = $ML_y3
generate double `prob3l' = $ML_y4
generate double `prob4l' = $ML_y5
generate double `prob5l' = $ML_y6
generate double `prob1r' = $ML_y7
generate double `prob2r' = $ML_y8
generate double `prob3r' = $ML_y9
generate double `prob4r' = $ML_y10
generate double `prob5r' = $ML_y11
generate double `y1' = $ML_y12
generate double `y2' = $ML_y13
generate double `y3' = $ML_y14
generate double `y4' = $ML_y15
generate double `y5' = $ML_y16
generate double `euL' = ((`prob1l'*`y1')^`r')+((`prob2l'*`y2')^`r')+((`pro b3l'*`y3')^`r')+((`prob4l'*`y4')^`r')+((`prob5l'*` y5')^`r')
generate double `x1' = $ML_y17
generate double `x2' = $ML_y18
generate double `x3' = $ML_y19
generate double `x4' = $ML_y20
generate double `x5' = $ML_y21
generate double `euR' = ((`prob1r'*`x1')^`r')+((`prob2r'*`x2')^`r')+((`pro b3r'*`x3')^`r')+((`prob4r'*`x4')^`r')+((`prob5r'*` x5')^`r')
generate double `euDiff' = `euL' - `euR'
replace `lnf' = ln($cdf( `euDiff')) if $ML_y1==1
replace `lnf' = ln($cdf(-`euDiff')) if $ML_y1==0
}
end
ml model lf ML_eut0 (r: choice prob_a_1 prob_a_2 prob_a_3 prob_a_4 prob_a_5 prob_b_1 prob_b_2 prob_b_3 prob_b_4 prob_b_5 prize_a_1 prize_a_2 prize_a_3 prize_a_4 prize_a_5 prize_b_1 prize_b_2 prize_b_3 prize_b_4 prize_b_5 = )
Thanks for the support.
Ruggiero
I am programming my MLE model, however it is impossible to find feasible value. The model specification is very simple, as i'm trying to estimate a parametric model to get the alpha (CRRA) of the utiliy function (expo, or prelec).
Here is my code
program define ML_eut0
args lnf r
tempvar prob1l prob2l prob3l prob4l prob5l prob1r prob2r prob3r prob4r prob5r y1 y2 y3 y4 y5 x1 x2 x3 x4 x5 euL euR euDiff euRatio tmp lnf_eut lnf_pt p1 p2 p3 p4 p5 f1 f2
quietly {
* construct likelihood for EUT
generate double `prob1l' = $ML_y2
generate double `prob2l' = $ML_y3
generate double `prob3l' = $ML_y4
generate double `prob4l' = $ML_y5
generate double `prob5l' = $ML_y6
generate double `prob1r' = $ML_y7
generate double `prob2r' = $ML_y8
generate double `prob3r' = $ML_y9
generate double `prob4r' = $ML_y10
generate double `prob5r' = $ML_y11
generate double `y1' = $ML_y12
generate double `y2' = $ML_y13
generate double `y3' = $ML_y14
generate double `y4' = $ML_y15
generate double `y5' = $ML_y16
generate double `euL' = ((`prob1l'*`y1')^`r')+((`prob2l'*`y2')^`r')+((`pro b3l'*`y3')^`r')+((`prob4l'*`y4')^`r')+((`prob5l'*` y5')^`r')
generate double `x1' = $ML_y17
generate double `x2' = $ML_y18
generate double `x3' = $ML_y19
generate double `x4' = $ML_y20
generate double `x5' = $ML_y21
generate double `euR' = ((`prob1r'*`x1')^`r')+((`prob2r'*`x2')^`r')+((`pro b3r'*`x3')^`r')+((`prob4r'*`x4')^`r')+((`prob5r'*` x5')^`r')
generate double `euDiff' = `euL' - `euR'
replace `lnf' = ln($cdf( `euDiff')) if $ML_y1==1
replace `lnf' = ln($cdf(-`euDiff')) if $ML_y1==0
}
end
ml model lf ML_eut0 (r: choice prob_a_1 prob_a_2 prob_a_3 prob_a_4 prob_a_5 prob_b_1 prob_b_2 prob_b_3 prob_b_4 prob_b_5 prize_a_1 prize_a_2 prize_a_3 prize_a_4 prize_a_5 prize_b_1 prize_b_2 prize_b_3 prize_b_4 prize_b_5 = )
Thanks for the support.
Ruggiero

Comment