Hi,
I'm trying to make a simple maximum likelihood estimator. This is something I've done several times before, but this time I'm getting an error and I can't figure out why. I'm using Stata/MP 16.0.
In this case I'm trying to estimate a multivariate normal model. Here's the code:
When I run ml check, I'm getting the following message
And I can't figure out why that is. It's been a while since I've done this kind of thing, so I may be forgetting something basic. Can anyone shed some light on this?
I'm trying to make a simple maximum likelihood estimator. This is something I've done several times before, but this time I'm getting an error and I can't figure out why. I'm using Stata/MP 16.0.
In this case I'm trying to estimate a multivariate normal model. Here's the code:
Code:
gen c1= invnorm(uniform())
gen c2= invnorm(uniform())
gen c3= invnorm(uniform())
capture program drop mvn_ll
program mvn_ll
version 16.0
args todo b lnf
tempvar b1x b2x b3x lnsigma1 lnsigma2 lnsigma3
mleval `b1x' = `b', eq(1)
mleval `b2x' = `b', eq(2)
mleval `b3x' = `b', eq(3)
mleval `lnsigma1' = `b', eq(4) scalar
mleval `lnsigma2' = `b', eq(5) scalar
mleval `lnsigma3' = `b', eq(6) scalar
tempname Y MU SIGMA
matrix `Y' = ($ML_y1 \ $ML_y2 \ $ML_y3)
matrix `MU' = (`b1x'\ `b2x' \ `b3x')
matrix `SIGMA' = (exp(`lnsigma1')^2, 0, 0 \ 0,exp(`lnsigma2')^2, 0 \ 0, 0, exp(`lnsigma3')^2)
mlsum `lnf' = lnmvnormalden(`MU',`SIGMA',`Y')
end
ml model lf mvn_ll (c1=) (c2=) (c3=) (lnsigma1:) (lnsigma2:) (lnsigma3:)
ml max
Code:
Test 1: Calling mvn_ll to check if it computes log likelihood and
does not alter coefficient vector...
FAILED; mvn_ll returned error 111.
Here is a trace of its execution:
------------------------------------------------------------------------------
-> mvn_ll __00000I __00000J __00000K __00000L __00000M __00000N __00000O
- `begin'
= capture noisily version 16: mvn_ll __00000I __00000J __00000K __00000L __00000M __00000N __00
> 000O
---------------------------------------------------------------------------- begin mvn_ll ---
- version 16.0
- args todo b lnf
- tempvar b1x b2x b3x lnsigma1 lnsigma2 lnsigma3
- mleval `b1x' = `b', eq(1)
= mleval __00000P = __00000J, eq(1)
vector __00000J not found
------------------------------------------------------------------------------ end mvn_ll ---
- `end'
= set trace off
------------------------------------------------------------------------------
Fix mvn_ll.
r(111);

Comment