最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【視頻】K近鄰KNN算法原理與R語言結(jié)合新冠疫情對股票價格預(yù)測|數(shù)據(jù)分享|附代碼數(shù)據(jù)

2023-03-17 23:54 作者:拓端tecdat  | 我要投稿

全文下載鏈接:http://tecdat.cn/?p=24057

最近我們被客戶要求撰寫關(guān)于KNN算法的研究報告,包括一些圖形和統(tǒng)計輸出。

本文的目標(biāo)是使用K-最近鄰(K近鄰),ARIMA和神經(jīng)網(wǎng)絡(luò)模型分析Google股票數(shù)據(jù)集預(yù)測Google的未來股價,然后分析各種模型

K-最近鄰(K近鄰)是一種用于回歸和分類的監(jiān)督學(xué)習(xí)算法。K近鄰?試圖通過計算測試數(shù)據(jù)與所有訓(xùn)練點(diǎn)之間的距離來預(yù)測測試數(shù)據(jù)的正確類別。然后選擇最接近測試數(shù)據(jù)的K個點(diǎn)。K近鄰算法計算測試數(shù)據(jù)屬于'K'個訓(xùn)練數(shù)據(jù)的類的概率,并且選擇概率最高的類。在回歸的情況下,該值是“K”個選定訓(xùn)練點(diǎn)的平均值。

讓我們看看下面的例子,以便更好地理解

為什么我們需要 K近鄰?算法?

假設(shè)有兩個類別,A 和B,并且我們有一個新的數(shù)據(jù)點(diǎn)x1,那么這個數(shù)據(jù)點(diǎn)將位于這些類別中的哪一個。為了解決這類問題,我們需要一個K近鄰算法。借助K近鄰,我們可以輕松識別特定數(shù)據(jù)集的類別??紤]下圖:

K近鄰?是如何工作的?

K近鄰?的工作原理可以根據(jù)以下算法進(jìn)行解釋:

  • 步驟1:選擇鄰居的數(shù)量K

  • 步驟2:計算K個鄰居的歐幾里得距離

  • 步驟3:根據(jù)計算出的歐幾里得距離取K個最近鄰。

  • 步驟4:在這k個鄰居中,統(tǒng)計每個類別的數(shù)據(jù)點(diǎn)個數(shù)。

  • 步驟 5:將新數(shù)據(jù)點(diǎn)分配給鄰居數(shù)量最大的類別。

  • 步驟6:我們的模型準(zhǔn)備好了。

假設(shè)我們有一個新的數(shù)據(jù)點(diǎn),我們需要把它放在所需的類別中。

首先,我們將選擇鄰居的數(shù)量,因此我們將選擇 k=5。

接下來,我們將計算數(shù)據(jù)點(diǎn)之間的歐幾里得距離。歐幾里得距離是兩點(diǎn)之間的距離,我們已經(jīng)在幾何學(xué)中研究過??梢杂嬎銥椋?/p>

通過計算歐幾里得距離,我們得到了最近鄰,即 A 類中的2個最近鄰和 B 類中的3個最近鄰。

正如我們所見,3 個最近的鄰居來自類別B,因此這個新數(shù)據(jù)點(diǎn)必須屬于類別B。

如何選擇 K 值?

Kvalue 表示最近鄰的計數(shù)。我們必須計算測試點(diǎn)和訓(xùn)練過的標(biāo)簽點(diǎn)之間的距離。每次迭代更新距離度量的計算成本很高,這就是為什么 K近鄰?是一種惰性學(xué)習(xí)算法。

那么如何選擇最優(yōu)的K值呢?

  • 沒有預(yù)先定義的統(tǒng)計方法來找到最有利的 K 值。

  • 初始化一個隨機(jī)的 K 值并開始計算。

  • 選擇較小的 K 值會導(dǎo)致決策邊界不穩(wěn)定。

  • 較大的 K 值更適合分類,因?yàn)樗梢云交瑳Q策邊界。

  • 得出錯誤率和 K 之間的圖,表示定義范圍內(nèi)的值。然后選擇K值作為具有最小錯誤率。

現(xiàn)在您將了解通過實(shí)施模型來選擇最佳 K 值。

計算距離:

第一步是計算新點(diǎn)和每個訓(xùn)練點(diǎn)之間的距離。計算該距離有多種方法,其中最常見的方法是歐幾里得、曼哈頓(用于連續(xù))和漢明距離(用于分類)。

歐幾里得距離:歐幾里得距離計算為新點(diǎn) (x) 和現(xiàn)有點(diǎn) (y) 之間的平方差之和的平方根。

曼哈頓距離:這是實(shí)際向量之間的距離,使用它們的絕對差之和。

**
**

結(jié)合新冠疫情COVID-19對股票價格預(yù)測:ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時間序列分析

1.概要

本文的目標(biāo)是使用各種預(yù)測模型分析Google股票數(shù)據(jù)集?(?查看文末了解數(shù)據(jù)獲取方式?)?預(yù)測Google的未來股價,然后分析各種模型。

**

拓端

,贊32

**

拓端

,贊18

**

拓端

,贊13

2.簡介

預(yù)測算法是一種試圖根據(jù)過去和現(xiàn)在的數(shù)據(jù)預(yù)測未來值的過程。提取并準(zhǔn)備此歷史數(shù)據(jù)點(diǎn),來嘗試預(yù)測數(shù)據(jù)集所選變量的未來值。在市場歷史期間,一直有一種持續(xù)的興趣試圖分析其趨勢,行為和隨機(jī)反應(yīng)。不斷關(guān)注在實(shí)際發(fā)生之前先了解發(fā)生了什么,這促使我們繼續(xù)進(jìn)行這項(xiàng)研究。我們還將嘗試并了解?COVID-19對股票價格的影響。

3.所需包

library(quantmod)?R的定量金融建模和交易框架library(forecast)?預(yù)測時間序列和時間序列模型library(tseries)?時間序列分析和計算金融。library(timeseries)?'S4'類和金融時間序列的各種工具。library(readxl)?readxl包使你能夠輕松地將數(shù)據(jù)從Excel中取出并輸入R中。library(kableExtra)?顯示表格library(data.table)?大數(shù)據(jù)的快速聚合library(DT)?以更好的方式顯示數(shù)據(jù)library(tsfknn)?進(jìn)行KNN回歸預(yù)測

4.數(shù)據(jù)準(zhǔn)備

4.1導(dǎo)入數(shù)據(jù)

我們使用Quantmod軟件包獲取了Google股票價格2015年1月1日到2020年4月24日的數(shù)據(jù),用于我們的分析。為了分析COVID-19對Google股票價格的影響,我們從quantmod數(shù)據(jù)包中獲取了兩組數(shù)據(jù)。

  • 首先將其命名為data_before_covid,其中包含截至2020年2月28日的數(shù)據(jù)。

  • 第二個名為data_after_covid,其中包含截至2020年4月24日的數(shù)據(jù)。

所有分析和模型都將在兩個數(shù)據(jù)集上進(jìn)行,以分析COVID-19的影響(如果有)。

getSymbols("GOG"?fro=?"2015-01-01",?to?=?"2019-02-28")before_covid?<-dafae(GOOG)getSymbols("GOG"?,?frm?=?"2015-01-01")after_covid?<-?as.tae(GOOG)

4.2數(shù)據(jù)的圖形表示

par(mfrow?=?c(1,2)) plot.ts(fore_c)

4.3數(shù)據(jù)集預(yù)覽

最終數(shù)據(jù)集可以在下面的交互式表格中找到。

table(before_covid)

4.4變量匯總

變量描述Open當(dāng)日股票開盤價High當(dāng)日股票最高價Low當(dāng)日股價最低Close當(dāng)日股票收盤價Volumn總交易量Adjusted調(diào)整后的股票價格,包括風(fēng)險或策略

5. ARIMA模型

我們首先分析兩個數(shù)據(jù)集的ACF和PACF圖。

par(mfrow?=?c(2,2))acft(bfoe_covid)pacf(bfre_covid)

然后,我們進(jìn)行?ADF(Dickey-Fuller)?檢驗(yàn)和?KPSS(Kwiatkowski-Phillips-Schmidt-Shin)?檢驗(yàn),檢驗(yàn)兩個數(shù)據(jù)集收盤價的時間序列數(shù)據(jù)的平穩(wěn)性。

print(adf.test)

print(adfes(sata_after_covid))

通過以上ADF檢驗(yàn),我們可以得出以下結(jié)論:

  • 對于COVID-19之前的數(shù)據(jù)集,ADF測試給出的p值為?0.2093,該值大于0.05,因此說明時間序列數(shù)據(jù)?不是平穩(wěn)的。

  • 對于COVID-19之后的數(shù)據(jù)集,ADF測試給出的p值為0.01974,該值?小于0.05,這說明時間序列數(shù)據(jù)是?平穩(wěn)的。

print(kpss.s(t_before_covid))

print(kpss.est(Dafter_covid))

通過以上KPSS測試,我們可以得出以下結(jié)論:

  • 對于COVID-19之前的數(shù)據(jù)集,KPSS測試得出的p值為?0.01,該值小于0.05,因此說明時間序列數(shù)據(jù)?不是平穩(wěn)的。

  • 對于COVID-19之后的數(shù)據(jù)集,KPSS測試給出的p值為?0.01,該值小于0.05,這說明時間序列數(shù)據(jù)?不是平穩(wěn)的。

因此,我們可以從以上兩個測試得出結(jié)論,時間序列數(shù)據(jù)?不是平穩(wěn)的。

然后,我們使用?auto?函數(shù)來確定每個數(shù)據(jù)集的時間序列模型。

?auto.ar(befor_covid,?lamd?=?"auto")

?auto.arma(after_covid)

從auto函數(shù)中,我們得出兩個數(shù)據(jù)集的以下模型:

  • 在COVID-19之前:ARIMA(2,1,0)

  • 在COVID-19之后:ARIMA(1,1,1)

獲得模型后,我們將對每個擬合模型執(zhí)行殘差診斷。

par(mfrow?=?c(2,3))plot(before_covidresiduals)plot(mfter_covidresiduals)

從殘差圖中,我們可以確認(rèn)殘差的平均值為0,并且方差也為常數(shù)。對于滯后> 0,ACF為0,而PACF也為0。

因此,我們可以說殘差表現(xiàn)得像白噪聲,并得出結(jié)論:ARIMA(2,1,0)和ARIMA(1,1,1)模型很好地擬合了數(shù)據(jù)?;蛘?,我們也可以使用Box-Ljung檢驗(yàn)在0.05的顯著性水平上進(jìn)行檢驗(yàn)殘差是符合白噪聲。

Box.test(moderesiduals)

Box.tst(moeit_fter_covidreia,?type?=?"Ljung-Box")

在此,兩個模型的p值均大于0.05。因此,在顯著性水平為0.05的情況下,我們無法拒絕原假設(shè),而得出的結(jié)論是殘差遵循白噪聲。這意味著該模型很好地擬合了數(shù)據(jù)。

一旦為每個數(shù)據(jù)集確定了模型,就可以預(yù)測未來幾天的股票價格。

點(diǎn)擊標(biāo)題查閱往期內(nèi)容

自然語言處理NLP:主題LDA、情感分析疫情下的新聞文本數(shù)據(jù)

左右滑動查看更多

01

02

03

04

6. KNN回歸時間序列預(yù)測模型

KNN模型可用于分類和回歸問題。最受歡迎的應(yīng)用是將其用于分類問題?,F(xiàn)在,使用r軟件包,可以在任何回歸任務(wù)應(yīng)用KNN。這項(xiàng)研究的目的是說明不同的預(yù)測工具,對其進(jìn)行比較并分析預(yù)測的行為。在我們的KNN研究之后,我們提出可以將其用于分類和回歸問題。為了預(yù)測新數(shù)據(jù)點(diǎn)的值,模型使用“特征相似度”,根據(jù)新點(diǎn)與訓(xùn)練集上點(diǎn)的相似程度為值分配新點(diǎn)。

第一項(xiàng)任務(wù)是確定我們的KNN模型中的k值。選擇k值的一般經(jīng)驗(yàn)法則是取樣本中數(shù)據(jù)點(diǎn)數(shù)的平方根。因此,對于COVID-19之前的數(shù)據(jù)集,我們?nèi) = 32;對于COVID-19之后的數(shù)據(jù)集,我們?nèi) = 36。

par(mfrow?=?c(2,1)) knn_before_covid?<-?kn(bfrvdGO.Clse,??k?=?32) knn_after_covid?<-?kn(ber_oiGOG.lose?,k?=?36)plot(knn_before_covid?)plot(knn_after_covid?)

然后,我們針對預(yù)測時間序列評估KNN模型。

before_cvid?<-?ll_ig(pdn_befr_vid) afer_vd<-?rog_ogn(redkn_afer_vd)

7.前饋神經(jīng)網(wǎng)絡(luò)建模

我們將嘗試實(shí)現(xiàn)的下一個模型是帶有神經(jīng)網(wǎng)絡(luò)的預(yù)測模型。在此模型中,我們使用單個隱藏層形式,其中只有一層輸入節(jié)點(diǎn)將加權(quán)輸入發(fā)送到接收節(jié)點(diǎn)的下一層。預(yù)測函數(shù)將單個隱藏層神經(jīng)網(wǎng)絡(luò)模型擬合到時間序列。函數(shù)模型方法是將時間序列的滯后值用作輸入數(shù)據(jù),以達(dá)到非線性自回歸模型。

第一步是確定神經(jīng)網(wǎng)絡(luò)的隱藏層數(shù)。盡管沒有用于計算隱藏層數(shù)的特定方法,但時間序列預(yù)測遵循的最常見方法是通過計算使用以下公式:

其中Ns:訓(xùn)練樣本數(shù)Ni:輸入神經(jīng)元數(shù)No:輸出神經(jīng)元數(shù)a:1.5 ^ -10

#隱藏層的創(chuàng)建 hn_before_covid?<-?length(before.Close)/(alpha*(lengthGOOG.Close?+?61) hn_after_covid?<-?length(after_covidClose)/(alpha*(lengthafter_ovdClose+65)) #擬合nnnn(before_covid$GOOG.Close,?size?=?hn_beoe_cid,? #?使用nnetar進(jìn)行預(yù)測。 ?forecast(befe_cvid,?h?61,?I?=UE)forecast(aftr_coid,?h?=?5,?I?=?RE)

plot(nn_fcst_afte_cvid)

然后,我們使用以下參數(shù)分析神經(jīng)網(wǎng)絡(luò)模型的性能:

accuracy

accuracy

8.所有模型的比較

現(xiàn)在,我們使用參數(shù)諸如RMSE(均方根誤差),MAE(均值絕對誤差)和MAPE(均值絕對百分比誤差)對所有三個模型進(jìn)行分析?。

sumary_le_efore_oid?<-?data.frame(RMSE?=?nuerc(),?MAE?=?uer(),? ????????????????????????????MAPE?=?numric(),?snsAsacrs?=?FALSE) summ_tabe_fter_ovd?<-?data.fame(RMSE?=?umeri(),?MAE?=?nmei(),? ????????????????????????????MAPE?=?numeic())kable(smary_abe_eor_oid?)模型RMSEMAEMAPEARIMA13.08.81.0KNN44.033.73.1神經(jīng)網(wǎng)絡(luò)13.08.71.0kable(sumary_tbl_aft_cifulith?=?F,?fixdtead?=?T?)模型RMSEMAEMAPEARIMA16.610.41.0KNN45.935.73.3神經(jīng)網(wǎng)絡(luò)14.79.81.0

因此,從以上模型性能參數(shù)的總結(jié)中,我們可以看到神經(jīng)網(wǎng)絡(luò)模型在兩個數(shù)據(jù)集上的性能均優(yōu)于ARIMA和KNN模型。因此,我們將使用神經(jīng)網(wǎng)絡(luò)模型來預(yù)測未來兩個月的股價。

9.最終模型:COVID-19之前

現(xiàn)在,我們使用直到2月的數(shù)據(jù)來預(yù)測3月和4月的值,然后將預(yù)測價格與實(shí)際價格進(jìn)行比較,以檢查是否由于COVID-19可以歸因于任何重大影響。

foestdungcvid<-?datafame("De ????????????????????????????????????"Actua?Values"?=? datatable(foestdungcvid,?ilte=?'to')

從表中我們可以看到,3月和4月期間,Google股票的實(shí)際價值通常比預(yù)測值要高一些。因此,可以說,盡管發(fā)生了這種全球性大流行,但Google股票的表現(xiàn)仍然相當(dāng)不錯。

10.最終模型:COVID-19之后

現(xiàn)在,我們使用直到4月的數(shù)據(jù)預(yù)測5月和6月的值,以了解Google的未來股價。

foreataov?<-?data.frae(dn_reataeimean?)table(foreataov?)

從表中可以得出結(jié)論,在5月和6月的接下來的幾個月中,Google股票的價格將繼續(xù)上漲并表現(xiàn)良好。

點(diǎn)擊標(biāo)題查閱往期內(nèi)容

Fama French (FF) 三因子模型和CAPM模型分析股票市場投資組合風(fēng)險/收益可視化
配對交易策略統(tǒng)計套利量化交易分析股票市場
Copula 算法建模相依性分析股票收益率時間序列案例
用COPULA模型進(jìn)行蒙特卡洛(MONTE CARLO)模擬和擬合股票收益數(shù)據(jù)分析
R使用LASSO回歸預(yù)測股票收益
金融時間序列模型ARIMA 和GARCH 在股票市場預(yù)測應(yīng)用
時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
自然語言處理NLP:主題LDA、情感分析疫情下的新聞文本數(shù)據(jù)
在R語言中使用航空公司復(fù)雜網(wǎng)絡(luò)對疫情進(jìn)行建模
matlab用高斯曲線擬合模型分析疫情數(shù)據(jù)
R語言ARIMA-GARCH波動率模型預(yù)測股票市場蘋果公司日收益率時間序列
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言用綜合信息準(zhǔn)則比較隨機(jī)波動率(SV)模型對股票價格時間序列建模
R語言回測交易:根據(jù)歷史信號/交易創(chuàng)建股票收益曲線
Python中TensorFlow的長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)、指數(shù)移動平均法預(yù)測股票市場和可視化
R語言k-Shape時間序列聚類方法對股票價格時間序列聚類
R語言邏輯回歸Logistic回歸分析預(yù)測股票漲跌
R語言時變波動率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率時間序列
R語言中的copula GARCH模型擬合時間序列并模擬分析
R語言多元Copula GARCH 模型時間序列預(yù)測
R語言ARMA-GARCH-COPULA模型和金融時間序列案例R語言多元CopulaGARCH模型時間序列預(yù)測R語言乘法GARCH模型對高頻交易數(shù)據(jù)進(jìn)行波動性預(yù)測
R語言GARCH-DCC模型和DCC(MVT)建模估計
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進(jìn)行股價預(yù)測
R語言時間序列GARCH模型分析股市波動率
R語言ARMA-EGARCH模型、集成預(yù)測算法對SPX實(shí)際波動率進(jìn)行預(yù)測
matlab實(shí)現(xiàn)MCMC的馬爾可夫轉(zhuǎn)換ARMA - GARCH模型估計
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進(jìn)行股價預(yù)測
使用R語言對S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略
R語言用多元ARMA,GARCH ,EWMA, ETS,隨機(jī)波動率SV模型對金融時間序列數(shù)據(jù)建模
R語言股票市場指數(shù):ARMA-GARCH模型和對數(shù)收益率數(shù)據(jù)探索性分析
R語言多元Copula GARCH 模型時間序列預(yù)測
R語言使用多元AR-GARCH模型衡量市場風(fēng)險
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言用Garch模型和回歸模型對股票價格分析
GARCH(1,1),MA以及歷史模擬法的VaR比較
matlab估計arma garch 條件均值和方差模型
R語言ARMA-GARCH-COPULA模型和金融時間序列案例


【視頻】K近鄰KNN算法原理與R語言結(jié)合新冠疫情對股票價格預(yù)測|數(shù)據(jù)分享|附代碼數(shù)據(jù)的評論 (共 條)

分享到微博請遵守國家法律
泉州市| 陆河县| 昌都县| 巴彦县| 汉源县| 珠海市| 历史| 绥阳县| 崇州市| 鹤峰县| 白城市| 手游| 康平县| 嫩江县| 宜春市| 光泽县| 海兴县| 高雄县| 长寿区| 乾安县| 肥城市| 双江| 咸丰县| 大竹县| 大冶市| 兴化市| 商洛市| 永修县| 德阳市| 襄垣县| 水富县| 平山县| 海阳市| 三穗县| 磴口县| 武穴市| 磐安县| 威海市| 福建省| 连州市| 简阳市|