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]
Re: st: Calculating Mahalanobis distance
From
Tirthankar Chakravarty <[email protected]>
To
[email protected]
Subject
Re: st: Calculating Mahalanobis distance
Date
Tue, 4 May 2010 03:26:14 +0530
Well, I was not after the summary measure of the Mahalanobis distance,
rather the distance scores for each pair of observations, but it turns
out that this too is fairly easily achievable using David Kantor's
-mahapick- (SSC) as:
*******************************************
sysuse auto, clear
mahascore weight length, gen(md_w_l_sq) refmeans compute
g md_w_l = sqrt(md_w_l_sq)
su md_w_l
*******************************************
T
2010/5/4 Steve Samuels <[email protected]>:
> To get Mahalanobis D2, you must multiply T2 by:
> (1/n1 + 1/n2), still a very easy calculation.
>
> Steve
>
>
> 2010/5/3 Lachenbruch, Peter <[email protected]>:
>> From the Stata manual we have
>> Methods and formulas
>> hotelling is implemented as an ado-file.
>> See Wilks (1962, 556-561) for a general discussion. The original formulation was by Hotelling (1931) and Mahalanobis (1930, 1936).
>> For the test that the means of k variables are 0, let x be a 1 x k matrix of the means and S be the estimated covariance matrix. Then T2 = xbarS(inverse)xbar'.
>> For two groups, the test of equality is T2 = (x1bar - x2bar)S(inverse)(x1bar - x2bar)'.
>> This seems a simpler way than the code given
>>
>> Tony
>>
>> Peter A. Lachenbruch
>> Department of Public Health
>> Oregon State University
>> Corvallis, OR 97330
>> Phone: 541-737-3832
>> FAX: 541-737-4001
>>
>>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] On Behalf Of Tirthankar Chakravarty
>> Sent: Monday, May 03, 2010 2:09 PM
>> To: [email protected]
>> Subject: Re: st: Calculating Mahalanobis distance
>>
>> <>
>> To calculate the centred Mahalanobis distance between two variables as
>> here try this:
>> ***********************************************
>> clear*
>> sysuse auto, clear
>> mata
>> real vector maha_dist(string scalar varlist, string scalar touse)
>> {
>> real matrix mX
>> real matrix mZ
>> st_view(mX=., ., tokens(varlist), touse)
>> mZ = mX :- mean(mX)
>> return(sqrt(diagonal(mZ*invsym(cross(mZ, mZ)/(rows(mZ)-1) )*mZ')))
>>
>> }
>> end
>> cap prog drop md
>> program define md
>> version 11
>> syntax varlist [if] [in], [GENerate(string )]
>> marksample touse
>> mata: vReturn = maha_dist("`varlist'", "`touse'")
>> getmata `generate' = vReturn
>> end
>> md weight length, gen(md_w_l)
>> su md_w_l
>> ***********************************************
>>
>> You can put this in two -foreach- loops to calculate the distance
>> between a bunch of variables.
>>
>> T
>>
>> 2010/5/3 Schijven, Mario <[email protected]>:
>>> Hi all,
>>>
>>> Does anyone know whether Stata has a pre-programmed command to compute Mahalanobis distance? So far, I've manually computed the Euclidean distance between two sets of firms in a dataset, but I need to compute the Mahalanobis distance. If Stata cannot do this, perhaps someone knows how to do it in Excel (i.e., how do I modify the formula for calculating Euclidean distance into one for Mahalanobis distance)?
>>>
>>> All the very best and many thanks in advance,
>>>
>>> Mario Schijven
>>> Mays Business School
>>> Texas A&M University
>>>
>>> *
>>> * 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/
>>>
>>
>>
>>
>> --
>> To every ω-consistent recursive class κ of formulae there correspond
>> recursive class signs r, such that neither v Gen r nor Neg(v Gen r)
>> belongs to Flg(κ) (where v is the free variable of r).
>>
>> *
>> * 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/
>>
>> *
>> * 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/
>>
>
>
>
> --
> Steven Samuels
> [email protected]
> 18 Cantine's Island
> Saugerties NY 12477
> USA
> Voice: 845-246-0774
> Fax: 206-202-4783
>
> *
> * 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/
>
--
To every ω-consistent recursive class κ of formulae there correspond
recursive class signs r, such that neither v Gen r nor Neg(v Gen r)
belongs to Flg(κ) (where v is the free variable of r).
*
* 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/