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: loop for grid-search
From
econqian222 <[email protected]>
To
[email protected]
Subject
st: loop for grid-search
Date
Wed, 2 May 2012 01:34:58 -0700 (PDT)
Hi, all
Thanks for your so many kind help. Unfortunately, I still can’t solve
the problem of writing loop for my grid-search program. Since that my
program can't be combined with “bysort”, that is
Bysort product: “my grid-search program”
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/loop-for-grid-search-tp7519403.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/