Bookmark and Share

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]

R: st: error 506 (matrix not positive definite) when bootstrapping eigenvalue after one-way manova


From   "Carlo Lazzaro" <[email protected]>
To   <[email protected]>
Subject   R: st: error 506 (matrix not positive definite) when bootstrapping eigenvalue after one-way manova
Date   Wed, 15 Jun 2011 07:40:12 +0200

Dear Sergiy,
thanks a lot for your appreciated insights about this (for me) still weird
issue. Yes, I have taken a look at the printed version of Stata manual that
came with the 9.2 release, but I did not find out any useful diagnostic
advice for tracking down what corrupted the matrix. This strikes me even
more since foreign variable was not affected by any
transformation/manipulation.

Kindest Regards,
Carlo

-----Messaggio originale-----
Da: [email protected]
[mailto:[email protected]] Per conto di Sergiy Radyakin
Inviato: mercoledì 15 giugno 2011 2.00
A: [email protected]
Oggetto: Re: st: error 506 (matrix not positive definite) when bootstrapping
eigenvalue after one-way manova

Hello Carlo,
below is a somewhat more compact code that still exhibits the same
problem as you have.

Note:
1) the use of the version statement
2) sysuse is used here instead of use not to bother about the path
3) no magic numbers in the code, constants are determined from data
4) _manova is called internally by manova.


The error 506 is related to matrix not being positive definite. You
may want to read the formulas in the Stata documentation (PDF or
printed, not help) for manova to figure out exactly why this is a
requirement.

Best, Sergiy Radyakin



//--------------------------------------------------------------------------
--------------

version 9
clear
sysuse auto


// THIS WORKS
_manova price mpg=i.foreign [],

// TRANSFORM VARIABLES

sum price if foreign
local foreign_price=r(mean)

sum price if foreign==0, meanonly
replace price=price-r(mean)+`foreign_price' if foreign==0
sum price if foreign==1, meanonly
replace price=price-r(mean)+`foreign_price' if foreign==1

sum mpg if foreign
local foreign_mpg=r(mean)

sum  mpg if foreign==0, meanonly
replace  mpg= mpg-r(mean)+`foreign_mpg' if foreign==0
sum  mpg if foreign==1, meanonly
replace  mpg= mpg-r(mean)+`foreign_mpg' if foreign==1

// TRY AGAIN, THIS DOES NOT WORK
_manova price mpg=i.foreign [],

//--------------------------------------------------------------------------
--------------
END --------------




*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index