Robust statistics and optimmization from Python
Robert Kern
rkern at ucsd.edu
Mon Aug 29 11:26:33 EDT 2005
tkpmep at hotmail.com wrote:
> I use Python to generate a huge amount of data in a .csv file which I
> then process using Excel. In particular, I use Excel's solver to solve
> a number of non-linear equation, and then regress the results of
> hundreds of calls to Solver against a set of known values, enabling me
> to calibrate my model. This is a pain: i'd much rather perform all the
> computations in Python and improve on Excels' regression as well.
>
> Questions:
> 1. Is there a way to perform (or make a call to) a non-linear
> optimization from Python?
Look at scipy. http://www.scipy.org
In [1]: from scipy import optimize
In [2]: optimize?
...
Optimization Tools
==================
A collection of general-purpose optimization routines.
fmin -- Nelder-Mead Simplex algorithm
(uses only function calls)
fmin_powell -- Powell's (modified) level set method (uses only
function calls)
fmin_cg -- Non-linear (Polak-Rubiere) conjugate gradient
algorithm
(can use function and gradient).
fmin_bfgs -- Quasi-Newton method (can use function and gradient)
fmin_ncg -- Line-search Newton Conjugate Gradient (can use
function, gradient and hessian).
leastsq -- Minimize the sum of squares of M equations in
N unknowns given a starting estimate.
Constrained Optimizers (multivariate)
fmin_l_bfgs_b -- Zhu, Byrd, and Nocedal's L-BFGS-B constrained
optimizer
(if you use this please quote their papers --
see help)
fmin_tnc -- Truncated Newton Code originally written by
Stephen Nash and
adapted to C by Jean-Sebastien Roy.
fmin_cobyla -- Contrained Optimization BY Linear Approximation
> 2. Do Python packages for robust statistics (robust regression in
> particular) exist. If so, which one would you recommend/
Offhand, I can't think of any, but it's easy enough to do maximum
likelihood with Laplacians and the functions above. If you find suitable
FORTRAN or C code that implements a particular "robust" algorithm, it
can probably wrapped for scipy relatively easily.
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the Python-list
mailing list