Untitled


editor: visual

library(forecast)
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
vocalno <- read.csv("C:/Users/16326/Desktop/chap22_be92394d85793c391501.csv", header = TRUE)
vocalno_ts <- ts(vocalno$rain, start = c(1970, 1), frequency = 12)
par(mfrow = c(2, 1))
plot(vocalno_ts, main = "月度降雨量时序图", xlab = "时间", ylab = "降雨量", col = 2)
acf_values <- acf(vocalno_ts, lag.max = 24, plot = FALSE)
print(acf_values$acf)
, , 1

             [,1]
 [1,]  1.00000000
 [2,]  0.34878937
 [3,]  0.23770713
 [4,] -0.07415001
 [5,] -0.28578858
 [6,] -0.30098456
 [7,] -0.28983459
 [8,] -0.27600436
 [9,] -0.20945006
[10,] -0.05130390
[11,]  0.22242035
[12,]  0.26482644
[13,]  0.37324071
[14,]  0.19040835
[15,]  0.04188287
[16,] -0.14973129
[17,] -0.24380772
[18,] -0.25216288
[19,] -0.23876692
[20,] -0.21989669
[21,] -0.16890354
[22,] -0.04000531
[23,]  0.10462811
[24,]  0.32189799
[25,]  0.34128806
acf(vocalno_ts, lag.max = 24, main = "月度降雨量自相关图")

读取数据

suicide <- read.table(“C:/Users/16326/Desktop/习题2.7数据.txt”, header = TRUE)

将数据转换为时间序列对象

suicide1 <- ts(suicide$V2, start = 1915) # 假设数据在第二列

绘制原始序列的时序图

par(mfrow = c(2, 1)) plot(suicide1, col = 2, main = “Original Time Series”, ylab = “Value”, xlab = “Year”) abline(h = mean(suicide1), col = “blue”, lty = 2) # 添加均值线

绘制原始序列的自相关图

acf(suicide1, lag.max = 24, main = “ACF of Original Series”)# 对序列进行一阶差分 diffsuicide <- diff(suicide1, differences = 1)

绘制一阶差分序列的时序图

plot(diffsuicide, col = 2, main = “First Differenced Time Series”, ylab = “Value”, xlab = “Year”) abline(h = mean(diffsuicide), col = “blue”, lty = 2) # 添加均值线

绘制一阶差分序列的自相关图# 对原始序列进行纯随机性检验

cat(“Pure Randomness Test for Original Series:”) for (k in 1:10) { print(Box.test(suicide1, lag = k, type = “Ljung-Box”)) }

如果原始序列是非平稳的,对一阶差分后的序列进行纯随机性检验

cat(“Pure Randomness Test for First Differenced Series:”) for (k in 1:10) { print(Box.test(diffsuicide, lag = k, type = “Ljung-Box”)) } acf(diffsuicide, lag.max = 24, main = “ACF of First Differenced Series”)