Bookmark and Share

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]

st: byable or loop for this program?


From   econqian222 <[email protected]>
To   [email protected]
Subject   st: byable or loop for this program?
Date   Wed, 2 May 2012 02:06:05 -0700 (PDT)

Hi, all
     Thanks for your so many kind and quick help. Unfortunately, I still
can’t solve
the problem of writing loop for my grid-search program. I have tried to make
the following program following the command "bysort product" by writting
"byable" for it, however, it doesn't work.

I also tried to write loop program for it for each value of
product(1,2,3,...), but I still can't succeed!

Could anyone help me to figure this out?

My specific data  for this program is listed as below:
product y       x1hat   x2hat   sigma
1       4.65605 3.82133 .5891969        0.1
1       8.55465 3.273241        .1132121        0.1
1       .5072982        3.273241        .1132121        0.1
2       .0668553        3.781385        .112315 .
2       4.346485        3.999861        .1429252        .
2       .453282 3.389864        .27451  .
3       2.514498        2.554792        .432496 0.5
3       5.027869        3.869841        .1236284        0.5
3       1.121937        3.781385        .112315 0.5

How can I run the following grid-search program by product(1,2,3,…)?

My grid-search program goes 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.0)/`s'
local RhoJump = `RhoMax' / (`J2' - 2)
foreach r of numlist 0(`RhoJump')`RhoMax'{
mat uHat[1,`col'] = `r'
qui gen uTemp = y -`cons'-((`r') / ((((`s')-1)^2) * (1-(`r')))) *
x1hat-((2*(`r') -1) / (((`s')-1) * (1-(`r')))) * x2hat
qui by product: egen sTemp = mean(uTemp)
qui replace sTemp = sTemp*sTemp*(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'
}




Many thanks
Qian



--
View this message in context: http://statalist.1588530.n2.nabble.com/byable-or-loop-for-this-program-tp7519471.html
Sent from the Statalist mailing list archive at Nabble.com.

*
*   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index