Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: mata optimize problem
From
Austin Nichols <[email protected]>
To
[email protected]
Subject
Re: st: mata optimize problem
Date
Sat, 3 Jul 2010 09:44:16 -0400
Michael Ralph M. Abrigo <[email protected]> :
I have not read through this, but you should put the dimensions of
every matrix in as a comment, and also print out the matrices once,
and then maybe you will see where the error is.
On Sat, Jul 3, 2010 at 2:08 AM, Michael Ralph M. Abrigo
<[email protected]> wrote:
> Good day statalisters!
> I am practically new in programming, especially in Mata. I'm trying to
> implement Lambert, Brown and Florax's (2010) poisson spatial lag model
> ("A two-step estimator for a spatial lag model for counts: Theory,
> small sample performance and an application", Urban and Regional
> Economics) in Stata using full-information ML (instead of the two-step
> LIML). However, I got stuck because of a conformability error which I
> cannot trace (I was able to generate the matrices interactively using
> ad hoc values). I was hoping I can do the FIML first before I venture
> to their two-step estimator.
> Any hint will be greatly appreciated.
> Below is my code and the error messages.
> Cheers,
> Michael
> drop _all
> ** (1) Set version; Open file
> version 11.0
> webuse "dollhill3.dta", clear
> ** (2) Generate constant; Local variables
> gen cons = 1
> local y deaths
> local xlist smokes pyears cons
> ** (3) Generate weight matrix
> sort pyears
> gen xcoor = _n
> gen ycoor = _n
> spwmatrix gecon xcoor ycoor, wname(W) wtype(bin) ///
> dband(0 1000) rowstand mata replace
> ** (4) Optimize using Mata
> mata
> void spmlpoisson (
> real scalar todo,
> real rowvector rho_b,
> real colvector lndensity,
> real matrix g,
> real matrix H)
> {
> external y, X, W, I
> transmorphic A_inv
> real colvector Xb_sar, mu_sar
> real rowvector b
> real scalar rho
> rho_b = rho, b
> A_inv = cholinv(I - rho * W)
> Xb_sar = A_inv * X * b'
> mu_sar = exp(Xb_sar)
> lndensity = (y :* Xb_sar) - mu_sar - lnfactorial(y)
> }
> st_view(y = ., ., "`y'")
> st_view(X = ., ., tokens("`xlist'"))
> fh = fopen("W", "r")
> W = fgetmatrix(fh)
> fclose(fh)
> I = I(cols(W))
> S = optimize_init()
> optimize_init_evaluator(S, &spmlpoisson())
> optimize_init_which(S, "max")
> optimize_init_evaluatortype(S, "d0")
> optimize_init_params(S, J(1, cols(X) + 1, 0))
> rho_b = optimize(S)
> *: 3200 conformability error
> spmlpoisson(): - function returned error
> opt__calluser0_d(): - function returned error
> opt__d0_calluser(): - function returned error
> deriv__call1user_d(): - function returned error
> _deriv__compute_value(): - function returned error
> _deriv(): - function returned error
> opt__eval_nr_d0(): - function returned error
> opt__eval(): - function returned error
> opt__looputil_iter0_common(): - function returned error
> opt__looputil_iter0_nr(): - function returned error
> opt__loop_nr(): - function returned error
> optimize(): - function returned error
> <istmt>: - function returned error
> r(3200);
>
>
> end
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/