天天看點

python去噪音_python中的噪聲是什麼意思

你的序列均值為零嗎?

方差随時間變化嗎?

值與延遲值相關嗎?

你可以用一些工具來檢查你的時間序列是否為白噪音:

建立一個折線圖。檢查總體特征,如變化的平均值,方差或延遲變量之間的明顯關系。

計算彙總統計。對照序列中有意義的連續塊的均值和方差,檢查整個序列的均值和方差(如年、月、日)。

建立一個自相關的圖。檢查延遲變量之間的總體相關性。

白噪聲時間序列的例子

在本節中,我們将使用Python建立一個高斯白噪聲序列并做一些檢查。它有助于在實踐中建立和評估白噪聲時間序列。它将提供參考架構和示例圖并且使用和比較自己的時間序列項目的統計測試,以檢查它們是否為白噪聲

首先,我們可以使用随機子產品的gauss()函數建立一個1,000個随機高斯變量的清單。

我們将從高斯分布提取變量:平均值(mu)0.0和标準偏差(sigma)1.0。

一旦建立,為友善起見,我們可以在Pandas序列中打包這個清單。

from randomimport gaussfrom randomimport seedfrom pandasimport Seriesfrom pandas.tools.plottingimport autocorrelation_plot

# seed random number generatorseed(1)# create white noise series

series= [gauss(0.0,1.0)for iin range(1000)]series= Series(series)

接下來,我們可以計算和列印一些彙總統計資料,包含序列的平均值和标準偏差。

# summary statsprint(series.describe())

鑒于我們在繪制随機數時定義了平均值和标準偏差,是以應該不會有意外。

count 1000.000000mean -0.013222std 1.003685min -2.96121425% -0.68419250% -0.01093475% 0.703915max 2.737260

我們可以看到平均值接近0.0,标準偏差接近1.0。考慮到樣本較小預測會有些誤差。

如果我們有更多的資料,将序列分成兩半計算和比較每一半的彙總統計可能會更有趣。我們認為每個子系列的平均值和标準差都會相似。

現在我們可以建立一些序列的線條圖。

# line plot

series.plot()pyplot.show()

我們可以看到,這個序列似乎是随機的。

python去噪音_python中的噪聲是什麼意思

我們還可以建立直方圖,并确認分布是高斯分布。

# histogram plot

series.hist()pyplot.show()

事實上,直方圖顯示了典型的鐘形曲線。

python去噪音_python中的噪聲是什麼意思

最後,我們可以建立一個自相關圖并檢查延遲變量的所有自相關。

# autocorrelationautocorrelation_plot(series)pyplot.show()

自相關圖沒有顯示任何顯著的自相關特征。在峰值時可信度達在95%和99%,但這隻是統計的偶然情況。

python去噪音_python中的噪聲是什麼意思

為了完整性,下面提供了完整的代碼清單。

from randomimport gaussfrom randomimport seedfrom pandasimport Seriesfrom pandas.tools.plottingimport autocorrelation_plotfrom matplotlibimport pyplot

# seed random number generatorseed(1)# create white noise series

series= [gauss(0.0,1.0)for iin range(1000)]series= Series(series)# summary statsprint(series.describe())# line plot

series.plot()pyplot.show()# histogram plot

series.hist()pyplot.show()# autocorrelationautocorrelation_plot(series)pyplot.show()