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]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: where and how to use marksample touse in a byable procedure? |

Date |
Mon, 5 Dec 2011 00:08:14 +0000 |

You posted similar questions on 23 and 24 November and didn't get much out of the list. I think your main problem was, and is, that you are expecting the list to understand why a program does not work when what you are trying to do is unclear: "grid searching" is too general a description to make that evident and in any case you say nothing about your dataset and only give some of your code. However, a clue is given by the first line quoted here if sigma1 < 1 | sigma1 == . This coding is usually wrong as explained at http://www.stata.com/support/faqs/lang/ifqualifier.html Nick On Sun, Dec 4, 2011 at 4:08 PM, econqian222 <maguixianstatalist@gmail.com> wrote: > Hi, all > I still can't solve the problem in writing the code(grid-searching to > obtain value of sigma) for each value of hs to get the corresponding value > of sigma. The point is that how and where to use -marksample touse- to > create a temporary variable? I want to make the code "byable" to run for > each value of hs(10290,10420,10511,10519,10591). However, once the program > runs, and a sigma was obtained for its corresponding value of hs, all the > values of sigma are given for the same value. Could anyone help me to check > this problem? > > Many thanks in advance, > 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 > > > 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/

**References**:**st: where and how to use marksample touse in a byable procedure?***From:*econqian222 <maguixianstatalist@gmail.com>

- Prev by Date:
**st: predicted marginal effects for sample** - Next by Date:
**Re: st: Fw: Event within dates** - Previous by thread:
**st: where and how to use marksample touse in a byable procedure?** - Next by thread:
**Re: st: question about spmap** - Index(es):