Re: [R] Help with permutation / loops
Hello Nikhil, hope you are well today. I am sorry to be a pain but I have one follow up question, I am trying to express my results in a grid, which would look like a 6 by 6 matrix and would have just Yes or NO in each grid.. So what I am thinking is a way to store every result I get on apply(b,2,coint) in an array or vector, and express them is this matrix. So that I can just look at it and see whether assets swap2 and vol are cointegrated.. Do you reckon you point me in the right direction as to how to do that? Thank you! Thiago -Original Message- From: Nikhil Kaza [mailto:nikhil.l...@gmail.com] Sent: 11 August 2010 12:35 To: Ferreira, Thiago Alves [ICG-MKTS] Cc: 'r-help@R-project.org' Subject: Re: [R] Help with permutation / loops How about this? untested since no data is provided. a - paste(x,1:6,sep=) b- combn(a,2) coint-function (x) { x1 - get(x[1]) x2 - get(x[2]) adfdata(x1) adfdata(x2) engle-lm(x1~x2) residual-resid(engle) adfresd(residual, k=1) par(mfrow=c(2,1)) ts.plot(x1) ts.plot(x2) ts.plot(residual) } apply(b,2,coint) Careful with the plots, you may just overwrite them on default device. One way to overcome it is to plot them to a pdf and name them appropriately for each iteration. Nikhil Kaza Asst. Professor, City and Regional Planning University of North Carolina nikhil.l...@gmail.com On Aug 11, 2010, at 6:34 AM, Ferreira, Thiago Alves wrote: Hi everyone, I am writing a code for cointegration between n (n=6 initially) pairs. I have done the whole thing for 2 variables. There is a function coint(x1,x2) that takes 2 inputs x1 and x2 and does the following: coint-function (x1,x2) { adfdata(x1) adfdata(x2) engle-lm(x1~x2) residual-resid(engle) adfresd(residual, k=1) par(mfrow=c(2,1)) ts.plot(x1) ts.plot(x2) ts.plot(residual) } Where X1,x2,..,x6 are time series of length 250 or more Where adfdata() is a function that calculates the adf test for x1 and x2. There are 6 variables in total (x1,x2,...,x6) and I want to calculate this function coint for the permutation of these variables. That is coint(x1,x2); coint(x1,x3); coint(x1,x4);...coint(x6,x5) (without repetition because x1,x1 are cointegrated already) I thought about creating an array with the combinations Xi,Xj and apply the function to each combination in the array but I could not get it to work... I would really appreciate if someone could help me on this! Thank you, Kind regards, Thiago __ 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.
Re: [R] Help with permutation / loops
The adfresd function that you have, prints the outcome of the test rather than `return' ing a value. If you would modify that function to return a value (True or false/ or p-value) you should automatically get vector that you desire. Then is a simple task of naming the resultant vector with. apply(b,2, paste, collapse=_) On Thu, Aug 12, 2010 at 10:15 AM, Ferreira, Thiago Alves thiago.alves.ferre...@citi.com wrote: Hello Nikhil, hope you are well today. I am sorry to be a pain but I have one follow up question, I am trying to express my results in a grid, which would look like a 6 by 6 matrix and would have just Yes or NO in each grid.. So what I am thinking is a way to store every result I get on apply(b,2,coint) in an array or vector, and express them is this matrix. So that I can just look at it and see whether assets swap2 and vol are cointegrated.. Do you reckon you point me in the right direction as to how to do that? Thank you! Thiago -Original Message- From: Nikhil Kaza [mailto:nikhil.l...@gmail.com] Sent: 11 August 2010 12:35 To: Ferreira, Thiago Alves [ICG-MKTS] Cc: 'r-help@R-project.org' Subject: Re: [R] Help with permutation / loops How about this? untested since no data is provided. a - paste(x,1:6,sep=) b- combn(a,2) coint-function (x) { x1 - get(x[1]) x2 - get(x[2]) adfdata(x1) adfdata(x2) engle-lm(x1~x2) residual-resid(engle) adfresd(residual, k=1) par(mfrow=c(2,1)) ts.plot(x1) ts.plot(x2) ts.plot(residual) } apply(b,2,coint) Careful with the plots, you may just overwrite them on default device. One way to overcome it is to plot them to a pdf and name them appropriately for each iteration. Nikhil Kaza Asst. Professor, City and Regional Planning University of North Carolina nikhil.l...@gmail.com On Aug 11, 2010, at 6:34 AM, Ferreira, Thiago Alves wrote: Hi everyone, I am writing a code for cointegration between n (n=6 initially) pairs. I have done the whole thing for 2 variables. There is a function coint(x1,x2) that takes 2 inputs x1 and x2 and does the following: coint-function (x1,x2) { adfdata(x1) adfdata(x2) engle-lm(x1~x2) residual-resid(engle) adfresd(residual, k=1) par(mfrow=c(2,1)) ts.plot(x1) ts.plot(x2) ts.plot(residual) } Where X1,x2,..,x6 are time series of length 250 or more Where adfdata() is a function that calculates the adf test for x1 and x2. There are 6 variables in total (x1,x2,...,x6) and I want to calculate this function coint for the permutation of these variables. That is coint(x1,x2); coint(x1,x3); coint(x1,x4);...coint(x6,x5) (without repetition because x1,x1 are cointegrated already) I thought about creating an array with the combinations Xi,Xj and apply the function to each combination in the array but I could not get it to work... I would really appreciate if someone could help me on this! Thank you, Kind regards, Thiago __ 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. [[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 with permutation / loops
Hi everyone, I am writing a code for cointegration between n (n=6 initially) pairs. I have done the whole thing for 2 variables. There is a function coint(x1,x2) that takes 2 inputs x1 and x2 and does the following: coint-function (x1,x2) { adfdata(x1) adfdata(x2) engle-lm(x1~x2) residual-resid(engle) adfresd(residual, k=1) par(mfrow=c(2,1)) ts.plot(x1) ts.plot(x2) ts.plot(residual) } Where X1,x2,..,x6 are time series of length 250 or more Where adfdata() is a function that calculates the adf test for x1 and x2. There are 6 variables in total (x1,x2,...,x6) and I want to calculate this function coint for the permutation of these variables. That is coint(x1,x2); coint(x1,x3); coint(x1,x4);...coint(x6,x5) (without repetition because x1,x1 are cointegrated already) I thought about creating an array with the combinations Xi,Xj and apply the function to each combination in the array but I could not get it to work... I would really appreciate if someone could help me on this! Thank you, Kind regards, Thiago __ 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.
Re: [R] Help with permutation / loops
How about this? untested since no data is provided. a - paste(x,1:6,sep=) b- combn(a,2) coint-function (x) { x1 - get(x[1]) x2 - get(x[2]) adfdata(x1) adfdata(x2) engle-lm(x1~x2) residual-resid(engle) adfresd(residual, k=1) par(mfrow=c(2,1)) ts.plot(x1) ts.plot(x2) ts.plot(residual) } apply(b,2,coint) Careful with the plots, you may just overwrite them on default device. One way to overcome it is to plot them to a pdf and name them appropriately for each iteration. Nikhil Kaza Asst. Professor, City and Regional Planning University of North Carolina nikhil.l...@gmail.com On Aug 11, 2010, at 6:34 AM, Ferreira, Thiago Alves wrote: Hi everyone, I am writing a code for cointegration between n (n=6 initially) pairs. I have done the whole thing for 2 variables. There is a function coint(x1,x2) that takes 2 inputs x1 and x2 and does the following: coint-function (x1,x2) { adfdata(x1) adfdata(x2) engle-lm(x1~x2) residual-resid(engle) adfresd(residual, k=1) par(mfrow=c(2,1)) ts.plot(x1) ts.plot(x2) ts.plot(residual) } Where X1,x2,..,x6 are time series of length 250 or more Where adfdata() is a function that calculates the adf test for x1 and x2. There are 6 variables in total (x1,x2,...,x6) and I want to calculate this function coint for the permutation of these variables. That is coint(x1,x2); coint(x1,x3); coint(x1,x4);...coint(x6,x5) (without repetition because x1,x1 are cointegrated already) I thought about creating an array with the combinations Xi,Xj and apply the function to each combination in the array but I could not get it to work... I would really appreciate if someone could help me on this! Thank you, Kind regards, Thiago __ 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.