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: Multivariate kernel regression


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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index