statistics for complex valued random variables

[email protected] Mon, 20 Nov 2023 10:46:53 -0500
Newsgroups gmane.comp.python.scientific.devel
Message-ID <CAMMTP+AuxBj=uGmGgtkcnU-bC5ksPYyPwy8+c+MpxxsWde_ZgQ@mail.gmail.com>
This is not scipy specific.

How much interest and usefulness is there in supporting statistics for
complex random variables in Python?

I spent the last 2 weeks trying to figure out regression and statistics for
complex random variables.
References are mainly in the signal processing literature.
But I still have not figured out if there is actually a demand for basic
statistics. For example I found very few cases of hypothesis testing with
complex random variables in the literature.

https://github.com/statsmodels/statsmodels/issues/3528  OLS for complex
https://github.com/statsmodels/statsmodels/issues/9064 statistics for
complex

Example:
For means squared error computation, there was a brief discussion whether
there should be an `abs` (i.e. conjugate) in the definition.
Standard variance uses x.H x as inner product, pseudo-variance uses x.T x.
numpy and scipy support the standard variance and covariance but not the
pseudo version.

If the pseudo-variance is zero, then the random variable is (second order)
circular or proper.
In that case just looking at conj/hermition products is enough.
If the pseudo-variance is not zero, then the statistics for the random
variables needs to take the "pseudo" part into account.
AFAIK, there is currently no pseudo (co)variance in either numpy or scipy
(although they are easy to compute).
(Another area that I have not looked at in details is `optimize` for
complex valued functions and parameters, even if the objective function is
real, like hermitian least squares)

The definitions for distributions and statistics for complex random
variables that I have seen are all derived from the combined real
representation [real, imag]. example circular and non-circular complex
normal distribution.
The motivation for complex valued statistics is then mainly a convenience
when it is easier to work with complex numbers instead of their homomorphic
real representation.

I looked at this mainly out of curiosity and for fun. I still don't know
how useful some "generic" statistics is.
There are many applications in the signal processing literature, but most
of those seem to be rather specific to signal processing (and not so much
in the range of what statsmodels would cover.)

Actual implementation could be spread across numpy, scipy.stats and
statsmodels similar to other areas of statistics.

Josef

_______________________________________________
SciPy-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/scipy-dev.python.org/
Member address: [email protected]