一、選題背景
近年來,人類大量燃燒煤炭、天然氣等含碳燃料導致溫室氣 體過度排放,大量溫室氣體強烈吸收地面輻射中的紅外線,造 成溫室效應不斷累積,使得地球溫度上升,造成全球氣候變暖。
氣象溫度的預測一直以來都是天氣預測的重點問題,天氣 不僅直接影響人們的健康、甚至影響人們的心情;此外,天氣變 化還會影響一個國家的經濟狀況。....
二、方案論證(設計理念)
時間序列是按照統計將某一個事物的統計量發生的先后順序的值按照統計時間排列的數列。時間序列分析通過已經發生的序列數值規律,來預測未來序列的數值情況,通常應用于連續序列的預測問題。例如:金融領域對下一個交易日大盤點數的預測;未來天氣情況的預測;下一個時刻某種商品的銷量情況的預測;電影票房變化情況的預測。簡而言之,時間序列就是我們在不同時間點或者時間段上的對于某一種現象或行為觀察得到的一組序列。
三、過程論述
數據來源為全球暖化數據集,在其中本文選取了中國主要城市天氣狀況表(月)該數據集,其中選擇了北京市的數據情況,具體情況如下:
首先進行數據的讀取和相應的展示:
描述性統計分析
接下來進行數據的可視化展示:
從上面四幅圖可以看出,特別是最后一圖,北京市1996-2019年的氣溫圖,氣溫圖有著極強的周期性、季節性。隨后畫出北京市1996-2019年的氣溫時序圖。
四、結果分析
進行模型構建前,要對序列數據純隨機性檢驗。可以判斷數據是否具有建模的條件,如果沒有,則沒有意義建模。
表1??時間序列數據純隨機檢驗
滯后期數 | 卡方統計量 | P值 |
滯后6期P值 | 808.94 | 0.000 |
滯后12期P值 滯后18期P值 | 1216.9 2387.9 | 0.000 0.000 |
從上表結果可以看出,其p值均小于0.05,即在顯著性水平為5%情況下,拒絕原假設,則可以進行建模
下面進行ADF檢驗,查看其平穩性,隨后就進行模型自動定階:
隨后展示序列狀態分布的qq圖,情況如下:
模型預測
五、課程設計總結
在本研究中,選取了北京市1996-1至2019-12的數據進行研究,首先查看數據的具體情況,隨后進行可視化,畫出了其他變量的直方圖,如氣溫、降水量、日照量等等,隨后針對氣溫進行建模和分析,在建模前進行了一系列的檢驗,針對具有極強的季節性和周期性數據,本文最終的模型選擇為ARIMA(0,0,1)(1,1,0)[12],最終預測了12其,即2020年全年的氣溫變化,直觀的看,模型預測的較好,都較好的抓取了前面數據的特征,預測的結果也較符合客觀規律。
代碼:
library(openxlsx)
dataset<- read.xlsx("氣溫.xlsx", sheet = 1)
#View(dataset)
dataset
summary(dataset)#####描述性統計分析
###畫出柱狀圖
###相對濕度
AverageRelativeHumidity<-dataset$AverageRelativeHumidity
AverageRelativeHumidity
barplot(AverageTemperature,xlab="時間",ylab="濕度",col="blue",main="平均相對濕度",border="blue")
###Precipitation降水量
Precipitation<-dataset$Precipitation
Precipitation
barplot(Precipitation,xlab="時間",ylab="Precipitation",col="blue",main="Precipitation降水量",border="green")
##月日照SunshineHours
SunshineHours<-dataset$SunshineHours
SunshineHours
barplot(SunshineHours,xlab="時間",ylab="SunshineHours",col="blue",main="月日照小時",border="yellow")
##平均氣溫
AverageTemperature<-dataset$AverageTemperature
AverageTemperature
barplot(AverageTemperature,xlab="時間",ylab="氣溫",col="blue",main="平均氣溫",border="red")###北京氣溫時間序列圖
AverageTemperature
AT<-ts(AverageTemperature,start=c(1996),frequency=12)
AT
plot(AT,type="o",pch=20,main="1996年-2019年北京氣溫時間序列圖",xlab = "年份/Y",ylab="氣溫",col = "pink")
#白噪聲檢驗
for(i in 1:3) print(Box.test(AT,type = "Ljung-Box",lag=6*i))
###非白噪聲,可建模###自動定階
auto.arima(AT)
###模型擬合
AT.fit<-auto.arima(AT)
AT.fit
##模型評判選擇
arima<-auto.arima(AT,trace=T)
accuracy(AT.fit)#模型預測
per_AT<-forecast(AT.fit,h=12)
per_AT
plot(per_AT)
創作不易,希望大家多多點贊收藏和評論!