Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Multivariate kernel regression |
Date | Fri, 19 Oct 2012 18:09:45 +0100 |
There is some small potential for confusion as the name -kernreg- is already taken, as of 1996. snp10 from http://www.stata.com/stb/stb30 STB-30 snp10. Nonparametric regression: kernel, ASH-WARPing, and k-NN. / STB insert by I.H. Salgado-Ugarte, M. Shimizu & T. Taniuchi, / Univ. of Tokyo, Faculty of Agriculture, Department of Fisheries, / Yayoi 1-1-1, Bunkyo-ku, Tokyo 113, Japan. / Tel. (011)-81-3-3812-2111 ext. 5281 / FAX In principle, people putting stuff in the public domain should check using -findit- whether a program name is in public use. Nick On Fri, Oct 19, 2012 at 5:20 PM, Josh Hyman <hyman.josh@gmail.com> wrote: > Thank you so much Austin and Shan. > > Shan - I very much appreciate your pointing out the .ado files on > Manski's webpage, in particular kernreg.ado and gridgen.ado . These > will be a great place for me to start, and seem very to be very > similar to what Austin recommended I try starting with. Ideally I > would like to use slightly more than 4 covariates, but this is > terrific for now, and I will see if I can augment the code to accept a > few more. > > Austin - Thanks a lot for your suggestions. I met with John DiNardo > recently about this project, but haven't asked him about the > multivariate kernel regression. I sent him an email yesterday to see > if he will discuss this with me. I will begin by coding up your > suggestion to help me understand. Your explanation was very helpful > for me in understanding how the multivariate kernel regression is > operating. > > Thanks again to you both! This was my first time posting a question to > the Stata listserve, and I found it incredibly helpful. > Thanks, > Josh > > On Wed, Oct 17, 2012 at 2:25 PM, Austin Nichols <austinnichols@gmail.com> wrote: >> >> Josh Hyman <hyman.josh@gmail.com>: >> Taking the mean of Y for values of X near X0 *is* a regression; you >> are calculating the conditional mean of Y. What you describe is a >> zero-degree local polynomial regression in -lpoly- (a regression on >> just a constant), which is inadvisable (though -lpoly- default >> behavior) for the reasons given in the -lpoly- manual entry. Better to >> regress on X and interactions (all in deviation form from point X0) >> and predict at X=X0. I recommend you start with a simple example with >> say 100 values of a one-dimensional X and try calculating the means of >> Y at (say) 10 values using a couple different approaches, to get a >> sense of what you are doing. Then generalize to 100*100 values of X1 >> and X2 and calculate mean Y at (say) 100 points on that grid. >> >> Did you look at http://fmwww.bc.edu/repec/bocode/t/tddens >> (multivariate kernel density estimation)? >> >> Ask John DiNardo if you have conceptual questions--if he is currently >> accessible to you at the Ford school--the big ideas may easier to >> explain in person. >> >> On Wed, Oct 17, 2012 at 1:04 PM, Josh Hyman <hyman.josh@gmail.com> wrote: >> > Hi Austin (and others), >> > >> > Thank you very much for your reply. Sorry about my delayed response - >> > I wanted to investigate more to make sure I understood your >> > suggestion. >> > >> > I'm not sure your suggestion gets me exactly what I was looking for, >> > and I want to clarify. My reference to -lpoly- in my initial post may >> > have been confusing. I don't actually want to do kernel-weighted local >> > regressions. I want to estimate "multivariate kernel regression", >> > which to my understanding, doesn't actually involve any regressions at >> > all. It takes the weighted average of Y for all observations near to >> > the particular value of X, weighted using the kernel function. And >> > where X represents more than 2 variables. So, this actually seems the >> > same to me as multivariate kernel density estimation, which I also >> > don't see any user-written commands for in Stata. What I am looking >> > for, I guess is like a version of -kdens2- that allows for more than >> > one "xvar", and wouldn't output a graph (since it would be in greater >> > than 3 dimensions), but rather would output the fitted or predicted >> > values of the Y (like -predict, xb-) for each observation. >> > >> > Regardless, it sounds like given your suggestion, one way to do this >> > is to loop over all possible combinations of the values of the X >> > variables and calculate the weighted Y for each combination using the >> > kernel of my choice? Please let me know if this would be your >> > suggestion, or if given my further clarification, if you know of any >> > user-written commands in Stata to do this, or if you have any other >> > suggestions. >> > >> > Thanks a lot for your help, and sorry again for the delayed response. >> > Josh >> > >> > >> > On Fri, Oct 12, 2012 at 3:31 PM, Austin Nichols <austinnichols@gmail.com> wrote: >> >> Josh Hyman <hyman.josh@gmail.com>: >> >> If you know the multivariate kernel you want to use, and the grid you >> >> want to smooth over, it is straightforward to loop over the grid and >> >> compute the regressions. To program a general estimator for a wide >> >> class of kernels would be substantially more work. See e.g. -kdens- >> >> on SSC and >> >> http://fmwww.bc.edu/repec/bocode/m/mf_mm_kern >> >> http://fmwww.bc.edu/RePEc/bocode/k/kdens.pdf >> >> >> >> A simple conic (triangle) kernel in 2 dimensions is easiest, see e.g. >> >> http://fmwww.bc.edu/repec/bocode/t/tddens >> >> >> >> On Fri, Oct 12, 2012 at 1:49 PM, Josh Hyman <hyman.josh@gmail.com> wrote: >> >>> Dear Statalist users, >> >>> >> >>> I am trying to figure out if there is a way in Stata to perform >> >>> multivariate kernel regression. I have investigated online and on the >> >>> Statalist, but with no success. What I am looking for would be similar >> >>> conceptually to the -lpoly- command, but with the ability to enter more >> >>> than one "xvar". >> >>> >> >>> If there are no Stata commands to do this (user-written or otherwise), then >> >>> do you recommend coding up a program to do this manually? I have used Stata >> >>> for many years, and written programs before, but have never had to code up >> >>> a regression manually. If you have suggestions on how to do this, or >> >>> resources to consult, that would be greatly appreciated. >> * >> * For searches and help try: >> * http://www.stata.com/help.cgi?search >> * http://www.stata.com/support/faqs/resources/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/faqs/resources/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/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/