ismael ismael
2020-Feb-04 13:20 UTC
[Rd] Stroring and extracting AICs from an ARIMA model using a nested loop
I am nowaware that I should not post this type of questions on this group. However, Iwould like to have some clarifications related to the response you've?alreadyprovided. The code you provided yields accurate results, however I still haveissues grasping the loop process in case 1 & 2. In case1,?the use of?"p+1" and "q+1" is still blurry tome? Likewise "0L" and " i + 1L" in case 2. ? Can youplease provide explanations on the loop mechanisms you've used.? Le lundi 3 f?vrier 2020 ? 03:47:20 UTC?6, Rui Barradas <ruipbarradas at sapo.pt> a ?crit : Hello, You can solve the problem in two different ways. 1. Redefine storage1 as a matrix and extract the aic *in* the loop. storage1 <- matrix(0, 4, 4) for(p in 0:3){ ? for(q in 0:3){ ? ? storage1[p + 1, q + 1] <- arima(etc)$aic ? } } 2. define storage1 as a list. storage1 <- vector("list", 16) i <- 0L for(p in 0:3){ ? for(q in 0:3){ ? ? i <- i + 1L ? ? storage1[[i]] <- arima(etc) ? } } lapply(storage1, '[[', "aic")? # get the aic's. Maybe sapply is better it will return a vector. Hope this helps, Rui Barradas ?s 06:23 de 03/02/20, ismael ismael via R-devel escreveu:> Hello > I am trying to extract AICs from an ARIMA estimation with different > combinations of p & q ( p =0,1,2,3 > and q=0,1.2,3). I have tried using the following code unsucessfully. Can > anyone help? > > code: > storage1 <- numeric(16) > for (p in 0:3){ > >? ? ? for (q in 0:3){ >? >? ? ? storage1[p]? <- arima(x,order=c(p,0,q), method="ML")} > } > storage1$aic > > ??? [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >[[alternative HTML version deleted]]
Rui Barradas
2020-Feb-04 15:36 UTC
[Rd] Stroring and extracting AICs from an ARIMA model using a nested loop
Hello, Don't worry, we've seen worst questions :). Inline. ?s 13:20 de 04/02/20, ismael ismael escreveu:> I am now aware that I should not post this type of questions on this > group. However, I would like to have some clarifications related to the > response you've?already provided. The code you provided yields accurate > results, however I still have issues grasping the loop process in case 1 > & 2. > > In case 1,?the use of?"p+1" and "q+1" is still blurry to me?1. R indexes starting from 1, both your orders p and q are 0:3. So to assign the results to the results matrix, add 1 and get indices 1:4. You could also set the row and column names after, to make it more clear: dimnames(storage1) <- list(paste0("p", 0:3), paste0("q", 0:3)) 2. 0L is an integer, just 0 is a floating-point corresponding to the C language double. class(0L) # "integer" class(0) # "numeric" typeof(0L) # "integer" typeof(0) # "double" Indices are integers, so I used integers and added 1L every iteration through the inner loop. This also means that in point 1. I should have indexed the matrix with p + 1L and q + 1L, see the output of class(0:3) Hope this helps, Rui Barradas Likewise> "0L" and " i + 1L" in case 2. > > Can you please provide explanations on the loop mechanisms you've used. > > > > > > Le lundi 3 f?vrier 2020 ? 03:47:20 UTC?6, Rui Barradas > <ruipbarradas at sapo.pt> a ?crit : > > > Hello, > > You can solve the problem in two different ways. > > 1. Redefine storage1 as a matrix and extract the aic *in* the loop. > > storage1 <- matrix(0, 4, 4) > for(p in 0:3){ > ? for(q in 0:3){ > ? ? storage1[p + 1, q + 1] <- arima(etc)$aic > ? } > } > > > 2. define storage1 as a list. > > storage1 <- vector("list", 16) > i <- 0L > for(p in 0:3){ > ? for(q in 0:3){ > ? ? i <- i + 1L > ? ? storage1[[i]] <- arima(etc) > ? } > } > > lapply(storage1, '[[', "aic")? # get the aic's. > > Maybe sapply is better it will return a vector. > > > Hope this helps, > > Rui Barradas > > > > > ?s 06:23 de 03/02/20, ismael ismael via R-devel escreveu: > > Hello > > I am trying to extract AICs from an ARIMA estimation with different > > combinations of p & q ( p =0,1,2,3 > > and q=0,1.2,3). I have tried using the following code unsucessfully. Can > > anyone help? > > > > code: > > storage1 <- numeric(16) > > for (p in 0:3){ > > > >? ? ? for (q in 0:3){ > > > >? ? ? storage1[p]? <- arima(x,order=c(p,0,q), method="ML")} > > } > > storage1$aic > > > > > ??? [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > >
ismael ismael
2020-Feb-04 21:00 UTC
[Rd] Stroring and extracting AICs from an ARIMA model using a nested loop
I does help! Thank you for clarifications! Sent from my iPhone> On Feb 4, 2020, at 9:36 AM, Rui Barradas <ruipbarradas at sapo.pt> wrote: > > ?Hello, > > Don't worry, we've seen worst questions :). > Inline. > > ?s 13:20 de 04/02/20, ismael ismael escreveu: >> I am now aware that I should not post this type of questions on this group. However, I would like to have some clarifications related to the response you've already provided. The code you provided yields accurate results, however I still have issues grasping the loop process in case 1 & 2. >> In case 1, the use of "p+1" and "q+1" is still blurry to me? > > 1. R indexes starting from 1, both your orders p and q are 0:3. So to assign the results to the results matrix, add 1 and get indices 1:4. > You could also set the row and column names after, to make it more clear: > > dimnames(storage1) <- list(paste0("p", 0:3), paste0("q", 0:3)) > > 2. 0L is an integer, just 0 is a floating-point corresponding to the C language double. > > class(0L) # "integer" > class(0) # "numeric" > > typeof(0L) # "integer" > typeof(0) # "double" > > Indices are integers, so I used integers and added 1L every iteration through the inner loop. > > This also means that in point 1. I should have indexed the matrix with p + 1L and q + 1L, see the output of > > class(0:3) > > > Hope this helps, > > Rui Barradas > > Likewise >> "0L" and " i + 1L" in case 2. >> Can you please provide explanations on the loop mechanisms you've used. >> Le lundi 3 f?vrier 2020 ? 03:47:20 UTC?6, Rui Barradas <ruipbarradas at sapo.pt> a ?crit : >> Hello, >> You can solve the problem in two different ways. >> 1. Redefine storage1 as a matrix and extract the aic *in* the loop. >> storage1 <- matrix(0, 4, 4) >> for(p in 0:3){ >> for(q in 0:3){ >> storage1[p + 1, q + 1] <- arima(etc)$aic >> } >> } >> 2. define storage1 as a list. >> storage1 <- vector("list", 16) >> i <- 0L >> for(p in 0:3){ >> for(q in 0:3){ >> i <- i + 1L >> storage1[[i]] <- arima(etc) >> } >> } >> lapply(storage1, '[[', "aic") # get the aic's. >> Maybe sapply is better it will return a vector. >> Hope this helps, >> Rui Barradas >> ?s 06:23 de 03/02/20, ismael ismael via R-devel escreveu: >> > Hello >> > I am trying to extract AICs from an ARIMA estimation with different >> > combinations of p & q ( p =0,1,2,3 >> > and q=0,1.2,3). I have tried using the following code unsucessfully. Can >> > anyone help? >> > >> > code: >> > storage1 <- numeric(16) >> > for (p in 0:3){ >> > >> > for (q in 0:3){ >> > >> > storage1[p] <- arima(x,order=c(p,0,q), method="ML")} >> > } >> > storage1$aic >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list >> > https://stat.ethz.ch/mailman/listinfo/r-devel >> >
Maybe Matching Threads
- Stroring and extracting AICs from an ARIMA model using a nested loop
- Stroring and extracting AICs from an ARIMA model using a nested loop
- Stroring and extracting AICs from an ARIMA model using a nested loop
- Stroring and extracting AICs from an ARIMA model using a nested loop
- AIC and BIC from arima()