[Numpy-discussion] Ticket #1223...

Charles R Harris charlesr.harris at gmail.com
Thu Jul 1 12:11:06 EDT 2010


On Thu, Jul 1, 2010 at 8:40 AM, Bruce Southey <bsouthey at gmail.com> wrote:

>  On 06/29/2010 11:38 PM, David Goldsmith wrote:
>
> On Tue, Jun 29, 2010 at 8:16 PM, Bruce Southey <bsouthey at gmail.com> wrote:
>
>> On Tue, Jun 29, 2010 at 6:03 PM, David Goldsmith
>> <d.l.goldsmith at gmail.com> wrote:
>> > On Tue, Jun 29, 2010 at 3:56 PM, <josef.pktd at gmail.com> wrote:
>> >>
>> >> On Tue, Jun 29, 2010 at 6:37 PM, David Goldsmith
>> >> <d.l.goldsmith at gmail.com> wrote:
>> >> > ...concerns the behavior of numpy.random.multivariate_normal; if
>> that's
>> >> > of
>> >> > interest to you, I urge you to take a look at the comments (esp. mine
>> >> > :-) );
>> >> > otherwise, please ignore the noise.  Thanks!
>> >>
>> >> You should add the link to the ticket, so it's faster for everyone to
>> >> check what you are talking about.
>> >>
>> >> Josef
>> >
>> > Ooops!  Yes I should; here it is:
>> >
>> > http://projects.scipy.org/numpy/ticket/1223
>> > Sorry, and thanks, Josef.
>> >
>> > DG
>> >
>> >
>>  > _______________________________________________
>> > NumPy-Discussion mailing list
>> > NumPy-Discussion at scipy.org
>> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>> >
>> >
>>  As I recall, there is no requirement for the variance/covariance of
>> the normal distribution to be positive definite.
>>
>
> No, not positive definite, positive *semi*-definite: yes, the variance may
> be zero (the cov may have zero-valued eigenvalues), but the claim (and I
> actually am "neutral" about it, in that I wanted to reference the claim in
> the docstring and was told that doing so was unnecessary, the implication
> being that this is a "well-known" fact), is that, in essence (in 1-D) the
> variance can't be negative, which seems clear enough.  I don't see you
> disputing that, and so I'm uncertain as to how you feel about the proposal
> to "weakly" enforce symmetry and positive *semi*-definiteness.  (Now, if you
> dispute that even requiring positive *semi*-definiteness is desirable,
> you'll have to debate that w/ some of the others, because I'm taking their
> word for it that indefiniteness is "unphysical.")
>
> DG
>
> >From http://en.wikipedia.org/wiki/Multivariate_normal_distribution
> "The covariance matrix is allowed to be singular (in which case the
> corresponding distribution has no density)."
>
> So you must be able to draw random numbers from such a distribution.
> Obviously what those numbers really mean is another matter (I presume
> the dependent variables should be a linear function of the independent
> variables) but the user *must* know since they entered it. Since the
> function works the docstring Notes comment must be wrong.
>
> Imposing any restriction means that this is no longer a multivariate
> normal random number generator. If anything, you can only raise a
> warning about possible non-positive definiteness but even that will
> vary depending how it is measured and on the precision being used.
>
>
> Bruce
>  _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
>
> --
> Mathematician: noun, someone who disavows certainty when their uncertainty
> set is non-empty, even if that set has measure zero.
>
> Hope: noun, that delusive spirit which escaped Pandora's jar and, with her
> lies, prevents mankind from committing a general suicide.  (As interpreted
> by Robert Graves)
>
>
> _______________________________________________
> NumPy-Discussion mailing listNumPy-Discussion at scipy.orghttp://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>  As you (and the theory) say, a variance should not be negative - yeah
> right :-) In practice that is not exactly true because estimation procedures
> like equating observed with expected sum of squares do lead to negative
> estimates. However, that is really a failure of the model, data and
> algorithm.
>
> I think the issue is really how numpy should handle input when that input
> is theoretically invalid.
>
>
I think the svd version could be used if a check is added for the
decomposition. That is, if cov = u*d*v, then dot(u,v) ~= identity. The
Cholesky decomposition will be faster than the svd for large arrays, but
that might not matter much for the common case.

<snip>

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20100701/c8f5014a/attachment.html>


More information about the NumPy-Discussion mailing list