Dear Allan,
The -clv- module is based on an algorithm to select groups of variables
in order to maximize the sum of the first eigenvalues of each groups
(the criterion is close of this one used in the Varclus SAS procedure
and, more generaly, of the PCA). It is not easy to modify the code to
obtain a HCA based on a matrix of similarity because the criterion used
by -clv- have not properties of distances (and so the algorithm is not
adapt to do that). If you use Stata 9, follow the Ken Higbee's advice
and use the very nice -clustermat- official module. With preeceding
versions of Stata, I have wrote the -hcaccprox- module which realize a
HCA on the variables based on specific similarity measures: this module
cannot directly use others similarity measures than these ones I have
programed, but a modification of the code is more easy for your purpose.
Best,
Jean-Benoit Hardouin
[email protected] a �crit :
Allan Garland <[email protected]> asks:
Is there a relatively easy way to implement a hierarchical cluster
analysis in Stata 9 on the variables (not the observations), using a
different measure of distance between the variables?
The "clv" program appears to use an approach to assessing the distances
similar to that of principal components. Using the built-in cluster
commands on the variables requires transposing the rows and columns of
the data. I looked at that routine and it wasn't simple enough (for me)
to see how to alter Jean-Benoit Hardouin's code to do this (I'm an
intermediate at program writing).
In any case, what I want to implement in Stata is what Frank Harrell
describes in his textbook (FE Harrell Jr. (2001). Regression Modeling
Strategies. New York, Springer) where he promotes the value of doing HCA
(for data reduction) using as a measure of distance/similarity between
variables the Hoeffding's D (W Hoeffding. A Non-Parametric Test of
Independence. Annals of Mathematical Statistics 19(4):546-557, 1948).
I've written code that calculates the matrix of D's between all pairs of
variables, and am HOPING that someone can point me in the direction of
Stata programming code that will let me do something simple --- i.e.
just plug the matrix of D's in and thus obtain a HCA.
Stata 9 has the -clustermat- command that performs hierarchical
clustering on a matrix. Since you have already created a matrix
with the Hoeffding's D distances you can feed that into
-clustermat-. In the Stata 9 manuals look at "[MV] clustermat"
(starting on page 83 of the MV manual).
Ken Higbee [email protected]
StataCorp 1-800-STATAPC
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
--
***************************************************************************
Jean-Benoit Hardouin
Biostatisticien
Observatoire R�gional de la Sant� du Centre
BP 2439
1, rue Porte Madeleine
45032 Orl�ans Cedex 1
t�l : 02 38 74 48 80
fax : 02 38 74 48 81
Email : [email protected]
**************************************************************************
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/