如何用R语言adf.test()对PS1.txt数据执行Dickey Fuller检验?
解决ADF检验报错的修改方案
错误原因
adf.test()仅接受向量或单变量时间序列作为输入,但read.table()读取的data是数据框(data.frame),即使经过na.omit()处理后data2依然是数据框,不符合函数要求,因此触发报错。
修改后的代码
install.packages("tseries", dependencies = TRUE) library(tseries) # 读取数据(假设PS1.txt中仅包含一列待检验数据) data <- read.table(file.choose(), header = FALSE, sep = ";") head(data) # 提取数据框中的第一列转为向量,同时处理缺失值 data2 <- na.omit(data[[1]]) head(data2) # 执行ADF检验 adf.test(data2)
补充说明
- 若数据包含多列,需明确指定待检验的列,比如检验第二列可使用
data[[2]] - 若需将数据转为带时间索引的时间序列格式,可使用
ts()函数转换,示例:# 假设数据为月度频率,起始时间为2020年1月 ts_data <- ts(data2, start = c(2020, 1), frequency = 12) adf.test(ts_data)
内容的提问来源于stack exchange,提问作者AMoz
相关产品推荐
相关产品推荐

