From: Duncan Murdoch <murdoch_at_stats.uwo.ca>

Date: Mon 13 Nov 2006 - 21:18:56 GMT

>>> Full_Name: Ian McLeod

*>>> Version: 2.3.1
*

*>>> OS: Windows
*

*>>> Submission from: (NULL) (129.100.76.136)
*

*>>>
*

*>>>
*

>>> This is certainly a bug.

*>>>
*

>>> There are two problems:

*>>>
*

*>>> (i) the error message is wrong since lag.max is set to 1. Perhaps, if the
*

*>>> function acf can not be used for in this situaiton, a different error message
*

*>>> would be more appropriate. I understand why this might be done but I don't
*

*>>> think it is the best approach.
*

>>> (ii) Please look at the function GetB which is attached. This is part a

*>>> computation for a fast algorithm for exact mle of mean. Usually phi here are
*

*>>> the coefficients from a high order AR but when I tried for AR(1) I got the error
*

*>>> message. So the workaround is given. Notice that I use:
*

*>>>
*

*>>> p*as.vector(acf(phi,lag.max=p,type="covariance",demean=FALSE,plot=FALSE)$acf)
*

*>>>
*

*>>> so what I expect to get when p=length(phi)=1 is just phi^2. This is what
*

*>>> happens in Mathematica with ListCorrelate[{phi},{phi}]. When you have
*

*>>> acf="correlation" and demean=TRUE then one gets 0/0 which should be defined as 1
*

*>>> in this situation.
*

*>>>
*

>>> Probably if the R authors just want to use acf for data analysis they may simply

*>>> choose to require length(x)>1 in acf(x,...) although I don't see the harm in my
*

*>>> suggestion either.
*

R-devel@r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Tue Nov 14 08:25:59 2006

Date: Mon 13 Nov 2006 - 21:18:56 GMT

On 11/13/2006 2:24 PM, A.I. McLeod wrote:

>> I don't think that's a reasonable expectation. You've got an empty sum >> in the formula for the lag 1 autocovariance: >> >> sum_{i=1}^0 phi_i phi_{i+1} >> >> R is assuming that's not what you meant and is reporting it as an error. >> If it gave you any value, it should be zero, not phi^2. >> > ******************************************** > I agree the empty sum which is the lag 1 autocovariance should be zero but this is the SECOND term in $acf output. > For the first term, > 1) if demean=F, it is variance which is phi^2 as I suggested > 2) if demean=T, it is the variance/variance = 0/0 which I said should best be 1

I've put this change into R-devel and R-patched now.

Duncan Murdoch

> > > ----- Original Message ----- > From: "Duncan Murdoch" <murdoch@stats.uwo.ca> > To: <aimcleod@uwo.ca> > Cc: <r-devel@stat.math.ethz.ch>; <R-bugs@biostat.ku.dk> > Sent: Monday, November 13, 2006 11:22 AM > Subject: Re: [Rd] bug in acf (PR#9360) > > >> On 11/13/2006 10:30 AM, aimcleod@uwo.ca wrote:

>>> Full_Name: Ian McLeod

>>>> There is a simple bug in acf as shown below: >>>> >>>> z <- 1 >>>> acf(z,lag.max=1,plot=FALSE) >>>> Error in acf(z, lag.max = 1, plot = FALSE) : >>>> 'lag.max' must be at least 1 >>>>

>>> This is certainly a bug.

>> >> I'd say it's a documentation bug, rather than a code bug.

>>> There are two problems:

>> >> What happens is that lag.max is reduced to length(z)-1, which is zero in >> your case. This change should be mentioned in the documentation. >>

>>> (ii) Please look at the function GetB which is attached. This is part a

>> >> I don't think that's a reasonable expectation. You've got an empty sum >> in the formula for the lag 1 autocovariance: >> >> sum_{i=1}^0 phi_i phi_{i+1} >> >> R is assuming that's not what you meant and is reporting it as an error. >> If it gave you any value, it should be zero, not phi^2. >> >> Duncan Murdoch >>

>>> Probably if the R authors just want to use acf for data analysis they may simply

R-devel@r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Tue Nov 14 08:25:59 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Mon 13 Nov 2006 - 23:30:40 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel.
Please read the posting
guide before posting to the list.
*