Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


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

Re: st: how to write "byable" for this program?


From   Nick Cox <njcoxstata@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: how to write "byable" for this program?
Date   Thu, 24 Nov 2011 12:09:55 +0000

There is no way round needing to understand that.

Nick

On Thu, Nov 24, 2011 at 11:53 AM, econqian222
<maguixianstatalist@gmail.com> wrote:
> Hi, Nick
>    Thanks for your kind reply!
>     I still can't understand the crutial part you referred to, so if I want
> to solve the problem i decribed in last message, how should I write the
> code?
>
> Many thanks,
> Qian
>
>      The dataset goes like the following:
>
> hs y x1hat x2hat sigma
> 10290 736 283.731 141
> 10420 826 10.615 1.375
> 10511 276 78 2.687
> 10511 528 196.735 3.278
> 10511 818 148.753 11.0796
> 10511 251 4.861 .718
> 10519 276 6.189 .718
> 10519 276 9.396 .621
> 10519 404 7.355 .636
> 10591 682 10.8318 .812
> 10591 528 9.09482 .636
> 10591 276 8.49024 .417
>
> Program grid, byable(recall)
> "run the following grid-searching code"
> end
> by hs: grid
>
> The grid-searching code is listed as following:
> if sigma1 < 1 | sigma1 == . {
> local sigma1_hat = .
> local rho1_hat = .
> }
> local SigmaMin = 1.05
> local SigmaMax = 131.05
> local SigmaJump = 1.0
> local J1 = (`SigmaMax' - `SigmaMin')/`SigmaJump' + 2
> local J2 = 32
>
> sort product t
> mat uHat = J(`J1',`J2',.)
> local row = 2
>
> foreach s of numlist `SigmaMin'(`SigmaJump')`SigmaMax'{
> mat uHat[`row',1] = `s'
> local col = 2
> local RhoMax = (`s'-1)/`s'
> local RhoJump = `RhoMax' / (`J2' - 2)
> foreach r of numlist 0(`RhoJump')`RhoMax'{
> mat uHat[1,`col'] = `r'
> qui gen uTemp = y -((`r') / ((((`s')-1)^2) * (1-(`r')))) * x1hat-((2*(`r')
> -1) / (((`s')-1) * (1-(`r')))) * x2hat
> qui  gen sTemp = uTemp*uTemp*(1/period)
> qui summ sTemp, d
> mat uHat[`row',`col'] = r(sum)
> drop uTemp sTemp
> local col = `col' + 1
> }
> local row = `row' + 1
> }
> local MinU = uHat[2,2]
> local rho_hat = uHat[1,2]
> local sigma_hat = uHat[2,1]
> local row = 2
>
> foreach s of numlist `SigmaMin'(`SigmaJump')`SigmaMax'{
>  local col = 2
>
> foreach r of numlist 0(`RhoJump')`RhoMax'{
> if `MinU' > uHat[`row',`col'] {
> local MinU = uHat[`row',`col']
> local rho_grid_hat = uHat[1,`col']
> local sigma_grid_hat = uHat[`row',1]
> }
> local col = `col' + 1
> }
> local row = `row' + 1
> }
> foreach var in sigma rho {
> capture replace `var'1 = ``var'_grid_hat'
> local `var'1_hat = ``var'_grid_hat'
> }
>

*
*   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   |   Site index