Also look at zoo's rollapply. 

MW

On Apr 2, 2013, at 13:51, Rui Barradas <ruipbarra...@sapo.pt> wrote:

> Hello,
> 
> The error comes from NAs where you would expect coefficients. Try the 
> following.
> 
> 
> 
> set.seed(7511)  # Make the example reproducible
> 
> N <- 100
> Time <-1:N
> Price <- rnorm(N, 8, 2)
> 
> estim <- numeric(N)   # It's better to allocate the results
> error <- numeric(N)   # vectors in advance
> for (i in Time) {
>     regr <- lm(Price[1:i] ~ Time[1:i])
>     estim[i] <- coef(regr)[2]
>     if(is.na(coef(regr)[2]))
>         error[i] <- NA
>     else
>         error[i] <- summary(regr)$coefficients[2,2]
> 
> }
> 
> 
> Hope this helps,
> 
> Rui Barradas
> 
> Em 02-04-2013 17:44, triskell4-umbre...@yahoo.fr escreveu:
>> Hello,
>> 
>> Some context:  let's say I have a data series (let's call it PRICE, for 
>> simplicity), sample size N.  I have a desire to regress that on TIME, and 
>> then to use the TIME and intercept coefficients to predict the price in the 
>> next period and to use the standard error to calculate a confidence 
>> interval.  This is all very easy.
>> 
>> However, what I need help for is to calculate a confidence interval for each 
>> point in time:  imagining that at the end of the 10th period I have 10 data 
>> points, and wish to regress them on the 10 periods to create a confidence 
>> interval for the next 'predicted' price.  And so on from TIME[10:100].  So 
>> the first regression would be of PRICE[1:10] on TIME[1:10], the second of 
>> PRICE[1:11] on TIME[1:11], the third of PRICE[1:11] on TIME[1:11], and so on 
>> to PRICE[1:N] and TIME[1:N].  I'd like to be able to vary the starting point 
>> (so it would need to be an argument in the function, in this case it would 
>> be 10).  The ultimate output of the code would be to save the TIME 
>> coefficients and standard errors it generates to two vectors, say TIME.coef 
>> and TIME.SE.
>> 
>> I'm not sure if lapply() can be bent to my will, or if a for loop would be 
>> too inefficient, or what.  I'm not new to R, but I'm fairly new to this kind 
>> of programming.
>> 
>> This is a bungled mess of a narrative, and I apologize.  Please feel free to 
>> use TIME=1:100 and PRICE=rnorm(100,8,2).
>> 
>> Here's an attempt, which has failed for reasons I can only imagine.  Any 
>> help getting this to work would be greatly appreciated.  Any help doing this 
>> without loops would be even better.
>> 
>> 
>>> Time=1:100
>>> Price=rnorm(100,8,2)
>>> 
>>> estim=0     #I'm hoping this will be the Time coefficient
>>> error=0      #I'm hoping this will be the standard error of the Time 
>>> coefficient
>>> for (i in Time) {
>> +     regr=lm(Price[1:i]~Time[1:i])
>> +     estim=c(estim,coef(summary(regr))[2,1])
>> +     error=c(error,coef(summary(regr))[2,1])
>> +     }
>> Error: subscript out of bounds
>> 
>> 
>> Many, many thanks in advance.
>> 
>> Mendi
>>    [[alternative HTML version deleted]]
>> 
>> 
>> 
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> 
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to