On Wed, Apr 13, 2011 at 1:58 PM, Bruce Southey <bsouthey@gmail.com> wrote:
On 04/13/2011 12:33 PM, josef.pktd@gmail.com wrote:
Thanks Josef for the confirmation and making your computer sweat ;)
I have built current master
*In [3]: scipy.__version__ Out[3]: '0.10.0.dev'
the same story. The default starting parameters have changed. If your example worked before, then it's possible that it works with explicit starting
2011/4/13 Yaroslav Halchenko<lists@onerussian.com>: parameters.
(I haven't figured out yet how to make my new computer sweat.)
Josef
apparently it is known to some degree -- ncf is skipped the unittesting:
$> git grep -A 10 'TestFitMethod' scipy/stats/tests/test_distributions.py:class TestFitMethod(TestCase): scipy/stats/tests/test_distributions.py- skip = ['ncf'] scipy/stats/tests/test_distributions.py- scipy/stats/tests/test_distributions.py- @dec.slow scipy/stats/tests/test_distributions.py- def test_fit(self): scipy/stats/tests/test_distributions.py- for func, dist, args, alpha in test_all_distributions(): scipy/stats/tests/test_distributions.py- if dist in self.skip: scipy/stats/tests/test_distributions.py- continue
$> git show ba349771 commit ba349771afebb1473a961139570da770ada59032 Author: Travis Oliphant<oliphant@enthought.com> Date: Tue Jun 1 07:59:20 2010 +0000
Add tests for fit method including fixing input parameters.
;-) :-/
On Wed, 13 Apr 2011, josef.pktd@gmail.com wrote:
python -c 'import scipy.stats.distributions as ssd, numpy as np; d=ssd.ncf; d.fit(np.array([-0.03756533, 0.18115522, 0.06605958, -0.09195276, 0.06162608, 0.07139736, -0.1570828 , -0.11967677, -0.19186652, 0.29411319]));' I only have 0.9.0, I forgot to kill the process and 1 hour 22 minutes of cpu time later it still hadn't returned. At least a maximum iteration or maximum function evaluation should have stopped it. Josef -- =------------------------------------------------------------------= Keep in touch www.onerussian.com Yaroslav Halchenko www.ohloh.net/accounts/yarikoptic
SciPy-Dev mailing list SciPy-Dev@scipy.org http://mail.scipy.org/mailman/listinfo/scipy-dev
_______________________________________________ SciPy-Dev mailing list SciPy-Dev@scipy.org http://mail.scipy.org/mailman/listinfo/scipy-dev I did not run it very long because I saw this message: /usr/lib64/python2.7/site-packages/scipy/stats/distributions.py:1882: RuntimeWarning: invalid value encountered in double_scalars Lhat = muhat - Shat*mu
It seems that line 1874 (mu, mu2 = self.stats(*args,**{'moments':'mv'})) give mu and mu2 as inf's. So Lhat is nan and there are better uses for that cpu power than spinning around infinities ...
"To infinity and the nans beyond." It looks like mean and variance are only finite if the degrees of freedom for the ncf, dfn, dfd, are large enough, so I guess the starting values should be large. I think _fitstart could default back to loc=0, scale=1 if np.any(~np.isfinite(self.fit_loc_scale(data, *args))) This would remove at least one source of infs and nans. Yaroslav, Did you ever get a good estimate in your example with older versions? With numpy 1.3, scipy 0.72 and with fully specified starting values in scipy 0.9, the estimation results are the same as the starting values. So the estimation doesn't move and does not produce any useful results. (I don't have scipy 0.8 right now.) Also as a note: ncf doesn't have the pdf defined. I removed it a long time ago because it was buggy, and didn't figure out how to fix it. So any maximum likelihood estimation has to work with the generic pdf. Josef
Bruce
_______________________________________________ SciPy-Dev mailing list SciPy-Dev@scipy.org http://mail.scipy.org/mailman/listinfo/scipy-dev