On Wed, 2009-07-29 at 20:38 -0400, Skipper Seabold wrote:
> On Wed, Jul 29, 2009 at 8:17 PM, Skipper Seabold<jsseab...@gmail.com> wrote:
> > On Thu, Jul 23, 2009 at 9:50 AM, Skipper Seabold<jsseab...@gmail.com> wrote:
> >> On Thu, Jul 23, 2009 at 7:12 AM, Peter<rpy-l...@maubp.freeserve.co.uk> 
> >> wrote:
> >>> On Thu, Jul 23, 2009 at 12:02 PM, Laurent Gautier<lgaut...@gmail.com> 
> >>> wrote:
> >>>>>
> >>>>> Since x is a NumPy array these can come in different flavours, and
> >>>>> perhaps something here is breaking rpy2 or R, e.g.
> >>>>
> >>>> The bug report if for rpy-1.0.x, I think.
> >>>
> >>
> >> In [2]: rpy.__version__
> >> Out[2]: '1.4.0.dev7055'
> >>
> >> Is that expected behavior?  That is the numpy release that I currently
> >> have installed.  Note that I tested this on two machines however.  But
> >> yes it's rpy-1.0.3 I believe.
> >>
> >>> Sorry, you are right. I would still try making a copy of the NumPy array
> >>> which should give you a continuous C ordered array which owns its
> >>> own memory.
> >>>
> >>> Peter
> >>>
> >>
> >>
> >> Thanks, but I think I checked this.  When I said exactly the same, as
> >> far as I can tell they are exactly the same.
> >>
> >> Say exog is my x that I have imported and x is built as above from rpy
> >> and numpy.
> >>
> >> In [16]: x.flags
> >> Out[16]:
> >>  C_CONTIGUOUS : False
> >>  F_CONTIGUOUS : True
> >>  OWNDATA : False
> >>  WRITEABLE : True
> >>  ALIGNED : True
> >>  UPDATEIFCOPY : False
> >>
> >> In [17]: exog.flags
> >> Out[17]:
> >>  C_CONTIGUOUS : False
> >>  F_CONTIGUOUS : True
> >>  OWNDATA : False
> >>  WRITEABLE : True
> >>  ALIGNED : True
> >>  UPDATEIFCOPY : False
> >>
> >> In [18]: x.flags == exog.flags
> >> Out[18]: True
> >>
> >> In [19]: x.dtype
> >> Out[19]: dtype('float64')
> >>
> >> In [20]: exog.dtype
> >> Out[20]: dtype('float64')
> >>
> >> In [21]: x.shape
> >> Out[21]: (21, 4)
> >>
> >> In [22]: exog.shape
> >> Out[22]: (21, 4)
> >>
> >> I also tried making a copy of exog, so I had a C contiguous array that
> >> owns its own data, but it was the same result.  The weird thing is
> >> that using exog works for psi.bisquare and psi.huber, but when I try
> >> psi.hampel I get an error about the conformability of x and the wts,
> >> so it appears to be some sort of a dimensions issue in the iterated
> >> weighted least squares steps for RLM.  Anyway, I've update my code to
> >> use the array as built up from rpy for now and it works.  When I have
> >> time I will try to dig deeper.  I might also try to reinstall rpy
> >> tonight, though again this happened on two machines.
> >>
> >> Cheers,
> >>
> >> Skipper
> >>
> >
> > For posterity's sake, I will post my solution.  The problem was in how
> > Hampel's norm works and there are two workarounds.  The first is to
> > add an axis to the endogenous variable (as the initial exception said.
> >  I just looked in the wrong place.).  So in my example above for my
> > variables not from R/Rpy, I would have to add an axis to the response
> > variable so y = y[:,numpy.newaxis] or y = y[:,None].  This needs to be
> > done because Hampel's norm is a hard redescender for large outliers
> > (big ones get a weight of zero rather than just downweighted), so the
> > starting values are chosen differently and it was here that my
> > approach was failing.
> >
> > The second and probably "correct" way to do it (the above lead to some
> > odd behavior in how the results were returned) is to specify how you
> > want the initial values to be calculated.  So my command is then
> >
> > results3 = r.rlm(formula, data=frame, psi='psi.hampel', init='lts') #
> > lts = Least Trimmed Squares
> >
> > and everything works as usual.
> >
> > Skipper
> >
> 
> I spoke too soon.  You still need to add the axis, and the results are
> returned as dicts rather than arrays in my script though nothing else
> is different.  The weirdest thing has been the consistency with which
> I can reproduce this...


Did you have better luck with rpy2 ?





------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
rpy-list mailing list
rpy-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rpy-list

Reply via email to