MATLAB一維自回歸預報模型的建立與預報值的復原

2021-10-06 22:42:13 字數 4034 閱讀 2552

clc;clear all

;close all

%% 讀取資料

f =

'ncep.sst.mean.nc'

;lon = ncread(f,

'lon');

lat = ncread(f,

'lat');

time = ncread(f,

'time');

sst = ncread(f,

'sst');

latq =

25;lonq =

130;

%插值點

length_1 = length(time)

;[lat lon]

= meshgrid(lat,lon)

;%網格化

%% 插值

sst(sst<

-9e36)=

0;for i =

1:length_1

sstq(i)

= interp2(lat,lon,squeeze(sst(:,

:,i)

),latq,lonq)

;end

%% 畫圖_時間序列曲線

set(0,

'defaultfigurecolor'

,'w'

)set

(gcf,

'units'

,'normalized'

,'position',[

0.25

0.25

0.50.5])

;figure(1)

;plot(time,sstq)

;datetick(

'x',

'yyyymm'

,'keepticks');

xlabel(

'year/month');

ylabel(

'sst');

box off;

title(

'北緯25度,東經130度位置處海表溫度時間序列'

,'fontsize',15

,'fontweight'

,'bold');

hold on;

%% 去趨勢

sst1 = sstq(:)

;dsst = detrend(sst1)

;trendline = sst1 - dsst;

%% 畫圖_趨勢線

plot(time,trendline)

;datetick(

'x',

'yyyymm'

,'keepticks');

xlabel(

'years/months');

ylabel(

'sst(℃)');

legend(

'時間序列'

,'趨勢線');

%% 畫圖_去趨勢

figure(2)

;set(0

,'defaultfigurecolor'

,'w'

)set

(gcf,

'units'

,'normalized'

,'position',[

0.25

0.25

0.50.5])

;plot(time,dsst,

'r-');

datetick(

'x',

'yyyymm'

,'keepticks');

xlabel(

'years/months');

ylabel(

'sst(℃)');

title(

'北緯25度,東經130度位置處去趨勢後的海表溫度時間序列'

,'fontsize',15

,'fontweight'

,'bold');

hold on;

%% 年迴圈,氣候態平均

timestr = datestr(time,30)

;mm = str2num(timestr(:,

5:6)

);for i =1:

12 m_index = find(mm == i)

; climate_sst(i)

= mean(dsst(m_index));

circle_sst(m_index)

= climate_sst(i)

; dssta(m_index)

= dsst(m_index)

- climate_sst(i)

;end

%% 畫圖_氣候態月平均

plot(time,circle_sst,

'k--');

datetick(

'x',

'yyyymm'

,'keepticks');

xlabel(

'year/month');

ylabel(

'ssc(℃)');

legend(

'去趨勢後的海表溫度'

,'氣候態月平均');

box off;

%% 畫圖_去氣候態月平均

figure(3)

;set(0

,'defaultfigurecolor'

,'w'

)set

(gcf,

'units'

,'normalized'

,'position',[

0.25

0.25

0.50.5])

;plot(time,dssta)

;datetick(

'x',

'yyyymm'

,'keepticks');

%legend(

'去趨勢、去氣候態月平均');

xlabel(

'year/month');

ylabel(

'ssc(℃)');

title(

'北緯25度,東經130度位置處去趨勢和氣候態月平均後的海表溫度時間序列'

,'fontsize',15

,'fontweight'

,'bold');

box off;

hold on;

%% 自回歸建模

%矩陣xx

n = length_1;

xx =

;x =

;for k =1:

5for i = k:n-6+k

x(i-k+1)

= dssta(i)

; end

xx = cat(

2,x',xx)

;end

%矩陣y

y = dssta(

6:n)

;y = y';

b = regress(y,xx)

;for o =

6:length_1

dssta_x(o)

= b(1)

*dssta(o-1)

+b(2

)*dssta(o-2)

+b(3

)*dssta(o-3)

+b(4

)*dssta(o-4)

+b(5

)*dssta(o-5)

;end

%% 畫圖_預報值

plot(time,dssta_x)

;datetick(

'x',

'yyyymm'

,'keepticks');

legend(

'去趨勢、去氣候態月平均'

,'預報值');

%% 精度檢驗

eil=dssta_x(

6:end)

-dssta(

6:end)

;lamdal=sqrt(

sum(eil.^2

)/(length(eil)))

;lamdat=std(dssta(

6:end),1

);g=lamdal/lamdat;

自回歸模型

回歸分析 regression analysis 是確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法。運用十分廣泛,回歸分析按照涉及的自變數的多少,可分為一元回歸分析和多元回歸分析 按照自變數和因變數之間的關係型別,可分為線性回歸分析和非線性回歸分析 ar模型 ar模型,即自回歸 aut...

自回歸模型(AR Model)

1.自回歸模型的定義 自回歸模型 autoregressive model 是用自身做回歸變數的過程,即利用前期若干時刻的隨機變數的線性組合來描述以後某時刻隨機變數的線性回歸模型 1 它是時間序列中的一種常見形式 2 2.ar模型的狀態空間形式 ar process in state space f...

機器學習(一) matlab邏輯回歸

最近開了新的坑 emmmmmm這個坑有點深 目前學到的機器學習都是給定一類資料,然後對其進行 對於 演算法,其基本思想就是設定一條曲線或直線,計算其值與對應的訓練集中的值的差的平方,對各個點的平方進行相加。最終取和最小的乙個值作為最終的結果。這樣就可以保證得到的曲線或直線是最接近實際規律的。邏輯回歸...