[R] creating a function

Jeff Newmiller jdnewmil at dcn.davis.CA.us
Sun Dec 23 16:57:50 CET 2012


Sounds like you want to simulate an ARIMA model. Why don't you read up on that topic using RSiteSearch() and then perhaps rephrase your question?
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

Simone Gogna <singletonthebest at msn.com> wrote:

>Hi, 
>thank you Rui for your reply.
>I understand I haven���t made it clear enough.
>What I do want to make is a kind of autoregressive process where Y_t+1
>depends on its lagged value Y_t.
>If I wanted to simulate a simple AR(1) process I would have done
>something as follows:
>
>n<-500
>Y_init_cond<-0
>Et<-ts(rnorm(n,mean=0,sd=1))
>Yt<-Et*0
>Yt[1]<-Y_init_cond+Et[1]
>for(i in 2:(n)) {
>  Yt[i]<-Yt[i-1]+Et[i]
>}
>Yt<-ts(Yt[(length(Yt)-n+1):length(Yt)])
>
>where Et is a vector of random errors.
>Since I do not want to simulate a simple autoregressive process the
>code above is no longer suitable for my purpose.
>In fact what I want to do is a function as Y_t+1 = Y_t +
>(1\p)*summation(x(Y_t,Y_t-1,...)) + epsilon.t,
>where Y_t+1 depends on its lagged value Y_t, but also on 1/p (which is
>a parameter) times summation(x(Y_t,Y_t-1,...)) where x is a function
>that also depends on the lagged values of Y_t+1 from Y_t to Y_t-n.
>Epsilon_t is, as You said a vector of random errors.
>
>Any suggestion is very appreciated.
>
>thanks and best regards,
>Simone
>
>From: Rui Barradas 
>Sent: Saturday, December 22, 2012 8:29 PM
>To: Simone Gogna 
>Cc: r-help at r-project.org 
>Subject: Re: [R] creating a function
>
>Hello,
>
>It's a bad idea to name a function and one of it's arguments Y, use
>Yfun and Y.
>What does summation(x(Y.t, Y.t-1, ...)) mean? Is there a multiplication
>sign between x and (Y.t, ...)?
>And is epsilon a vector of errors, one for each Y.t?
>If so, the following might do it.
>
>
>Yfun <- function(Y, p, x, epsilon){
>    for (i in 2:length(Y)) {
>        Y[i] <- Y[i-1] + (1/p)*sum(x*Y[1:(i-1)]) + epsilon[i]
>    }
>    Y                      
>}
>
>
>Hope this helps,
>
>Rui Barradas
>
>Em 22-12-2012 09:29, Simone Gogna escreveu:
>Dear R users,
>I��������d like to create a function as:
>
>Y.t+1 = Y.t + (1\p)*summation(x(Y.t,Y.t-1,...)) + epsilon.t
>
>where x is a function of Y.t, Y.t-1 and so on, epsilon is a random
>error and p is a parameter.
>
>Do you think something of the following form might be appropriate?
>
>Y<-function(Y,p,x,epsilon){
>                       for (i in 2:length(Y)) {
>                         Y[i]<-Y[i-1]+(1/p)*sum(x(Y[i-1]))+epsilo.t}
>                       Y                      
>}
>
>Any indication is warmly appreciated.
>
>thanks and best regards
>	[[alternative HTML version deleted]]
>
>
>   
>
>______________________________________________
>R-help at 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.
>
>
>	[[alternative HTML version deleted]]
>
>
>
>------------------------------------------------------------------------
>
>______________________________________________
>R-help at 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.




More information about the R-help mailing list