Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: RE: ado file from my personal folder not loading


From   Jeph Herrin <junk@spandrel.net>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: RE: ado file from my personal folder not loading
Date   Fri, 06 Nov 2009 17:50:26 -0500


Looks like you have a copy in your local directory, and that
would be the copy that Stata finds first. Delete the one in
the current directory, and try again.

hth,
Jeph



László Sándor wrote:
Thanks, Martin!

I've tried this, but got nowhere, have a look:
. which emlatentclass
./emlatentclass.ado

. set trace on

. emlatentclass d_fdeic treat, by(taxproid07)
last estimates not found
(error occurred while loading emlatentclass.ado)
r(301);

Does anybody have any other guess?

Thanks!

Laszlo

On Fri, Nov 6, 2009 at 5:09 PM, Martin Weiss <martin.weiss1@gmx.de> wrote:
<>

Try -which emlatentclass- to check whether Stata sees it... -set trace on- to make sense of the error...


HTH
Martin

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of László Sándor
Sent: Freitag, 6. November 2009 23:05
To: statalist@hsphsun2.harvard.edu
Subject: st: ado file from my personal folder not loading

Thank you for all your help today.

I have another quick question. I saved my first ever user-written ado
file in my personal folder. The proof is the output:
. personal dir
your personal ado-directory is ~/ado/personal/

emlatentclass.ado


But when I would run it (under Stata 11), I get:
. emlatentclass d_fdeic treat, by(taxproid07)
last estimates not found
(error occurred while loading emlatentclass.ado)
r(301);


I tried to catch basic syntax errors, to no avail so far. I'd be
grateful for any quick guesses what are the usual suspects, or you
might even skim my draft of code below. Thank you!

Laszlo

program emlatentclass, eclass
               version 11
               syntax varlist [if] [in], BY(varname)
               marksample touse
               markout touse `varlist' `by'
               tokenize `varlist'
               local lhs `1'
               macro shift
               local rhs `*'
               local k: word count `rhs'
qui sum touse
local nobs = r(sum)
gen prob_class1 = 0.5
local mix "prob_class1"

set matadebug on
mata:
mata set matalnum on

void function estep(real rowvector b1, real rowvector b2, real scalar
s1, real scalar s2, string scalar lhs, string scalar rhs, string
scalar mix, string scalar by) {
           real scalar logli_l, logli_h
           real vector y
           real matrix X
           st_view(id,.,by)
           info = panelsetup(id, 1)
           st_view(X,.,rhs)
           st_view(y,.,lhs)
           st_view(pi,.,mix)
           index_hi = normalden(y:-X*b1', 0, sqrt(s1))
           index_li = normalden(y:-X*b2', 0, sqrt(s2))
           for (i=1;i<=rows(info);i++) {
               index_l = panelsubmatrix(index_li,i,info)
               index_h = panelsubmatrix(index_hi,i,info)
               panelsubview(pi_i,pi,i,info)
               logli_l = quadcolsum(log(index_l))
               logli_h = quadcolsum(log(index_h))
               pi_i[.] =
J(rows(nu_i),1,exp(logli_h)/(exp(logli_h)+exp(logli_l)))
           }
}
mata mosave estep, replace

function mstep(transmorphic M,
                real rowvector b,
                real colvector lnf)
             {
                     real colvector  p1, p2
                     real scalar s1, s2
                     real colvector  y1

                     p1 = moptimize_util_xb(M, b, 1)
                     p2 = moptimize_util_xb(M, b, 2)
                     s1 = moptimize_util_xb(M, b, 3)
                     s2 = moptimize_util_xb(M, b, 4)
                     y = moptimize_util_depvar(M, 1)
                     st_view(mix,.,moptimize_util_userinfo(M,1))

                     lnf = ln(mix:*normalden(y:-p1, 0,
sqrt(s1))+(1:-mix):*normalden(y:-p2, 0, sqrt(s2)))
             }
mata mosave mstep, replace

b1 = J(1,`k',1)
b2 = J(1,`k',1)
s1 = 1
s2 = 1
d = 1
while d>10^(-3)) {
// E-step
   estep(b1,b2,s1,s2,"`lhs'","`rhs'","`mix'","`by'")
// M-step
   M = moptimize_init()
   moptimize_init_evaluator(M, &mstep())
   moptimize_init_evaluatortype(M,"lf")
   moptimize_init_touse(M, "touse")
   moptimize_init_ndepvars(M, 1)
   moptimize_init_depvar(M, 1, "`lhs'")
   moptimize_init_eq_n(M, 4)
   moptimize_init_eq_indepvars(M, 1, "`rhs'")
   moptimize_init_eq_cons(M, 1, "on")
   moptimize_init_eq_indepvars(M, 2, "`rhs'")
   moptimize_init_eq_cons(M, 2, "on")
   moptimize_init_eq_name(M, 1, "class1")
   moptimize_init_eq_name(M, 2, "class2")
   moptimize_init_eq_name(M, 3, "se1")
   moptimize_init_eq_name(M, 4, "se2")
//    moptimize_init_by(M, "`by'")
   moptimize_init_eq_coefs(M, 1, b1)
   moptimize_init_eq_coefs(M, 2, b2)
   moptimize_init_eq_coefs(M, 3, s1)
   moptimize_init_eq_coefs(M, 4, s2)
   moptimize_init_search(M, "on")
   moptimize_init_search_random(M, "on")
   moptimize_init_search_bounds(M, 3, (0,.))
   moptimize_init_search_bounds(M, 4, (0,.))
   moptimize_init_valueid(M, "LogL with given mixing")
   moptimize_init_nuserinfo(M, 1)
   moptimize_init_userinfo(M, 1, "`mix'")
   _moptimize(M)
   moptimize_result_post(M)
   b1n = moptimize_result_coefs(M,1)
   b2n = moptimize_result_coefs(M,2)
   s1n = moptimize_result_coefs(M,3)
   s2n = moptimize_result_coefs(M,4)
   d = sum(abs((b1n-b1,b2n-b2,s1n-s1,s2n-s2)))
   b1 = b1n
   b2 = b2n
   s1 = s1n
   s2 = s2n
}
end
// ereturn post b V, esample(touse) o(`nobs')
ereturn display
end

exit
*
*   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/


*
*   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/


*
*   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/

*
*   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/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index