Hello,
From the help page for ?adf.test: "The p-values are interpolated from
Table 4.2, p. 103 of Banerjee et al. (1993)."
I believe it's a problem with your data. Putting a print statement in
the code for adf.test() gave me the following:
Call:
lm(formula = yt ~ xt1 + 1 + tt + yt1)
Residuals:
ALL 3 residuals are 0: no residual degrees of freedom!
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) -24.319 NA NA NA
xt1 -3.115 NA NA NA
tt 18.087 NA NA NA
yt1 NA NA NA NA
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 2 and 0 DF, p-value: NA
And the test statistic becomes NaN (Not a Number). It's computed as
coefficients[2, 1]/coefficients[2, 2] or -3.115/NA.
So when it tries to interpolate the p-value, the variable 'interpol' is
equal to NaN and the if test fails.
With a standard error like NA, maybe you don't have enough data points
to run the tests. (Only 3 residuals, all zero, like seen above.)
Rui Barradas
Em 24-06-2013 20:12, Olga Musayev escreveu:
Rui-- thanks so much for the help!
I'm getting this error though, which is leaving me stumped:
test<-lapply(ids, function(i) {
if(!any(is.na <http://is.na>(df[df$ID==i,3])))
{adf.test(df[df$ID==i, 3])} else {NA} })
Error in if (interpol == min(tablep)) warning("p-value smaller than
printed p-value") else warning("p-value greater than printed p-value") :
missing value where TRUE/FALSE needed
Any idea what this could mean?
On Sun, Jun 23, 2013 at 4:54 PM, Rui Barradas <ruipbarra...@sapo.pt
<mailto:ruipbarra...@sapo.pt>> wrote:
Hello,
Sorry, I forgot to Cc the list.
Rui Barradas
Em 23-06-2013 21:44, Rui Barradas escreveu:
Hello,
See if the following does what you want.
lapply(seq_len(obsv), function(i) adf.test(df[df$ID == i, 3]))
Hope this helps,
Rui Barradas
Em 23-06-2013 19:12, Olga Musayev escreveu:
Short question: Is it possible to use statistical tests,
like the
Augmented
Dickey-Fuller test, in functions with for-loops? If not, are
there any
alternative ways to scale measures?
Detailed explanation: I am working with time-series, and I
want to flag
curves that are not stationary and which display pulses,
trends, or level
shifts.
df
DATE ID VALUE2012-03-06 1 5.672012-03-07 1
3.452012-03-08 1 4.562012-03-09 1 20.302012-03-10 1
5.102012-03-06 2 5.672012-03-07 2 3.452012-03-08 2
4.562012-03-09 2 5.282012-03-10 2 5.102012-03-06 3
5.672012-03-07 3 7.802012-03-08 3 8.792012-03-09 3
9.432012-03-10 3 10.99
You can see, object 2 is stationary, but 3 exhibits a
trend and 1 has a
pulse at 3/09.
What I want, in pseudo-code:
flag<- list()
for (i in 1:length(obsv)) {
if adf.test(i) FAIL {
append(flag, i)
}}
What I have so far:
library(tseries)
adf.test(df[which(df$ID==1), 3])
Augmented Dickey-Fuller Test
data: dataDickey-Fuller = 11.1451, Lag order = 16, p-value
= 0.01null
hypothesis: non-stationary
adf.test(df[which(df$ID==2), 3])
Augmented Dickey-Fuller Test
data: dataDickey-Fuller = 11.1451, Lag order = 16, p-value
= 0.99
alternative hypothesis: stationary
adf.test(df[which(df$ID==3), 3])Augmented Dickey-Fuller Test
data: dataDickey-Fuller = 11.1451, Lag order = 16, p-value
= 0.04null
hypothesis: non-stationary
How can I use this output in a for-loop? Thank you in
advance!
[[alternative HTML version deleted]]
________________________________________________
R-help@r-project.org <mailto:R-help@r-project.org> mailing list
https://stat.ethz.ch/mailman/__listinfo/r-help
<https://stat.ethz.ch/mailman/listinfo/r-help>
PLEASE do read the posting guide
http://www.R-project.org/__posting-guide.html
<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.