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

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

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

2022-07-23 15:15 作者:拓端tecdat  | 我要投稿

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

本文的目標是使用K-最近鄰(K近鄰)ARIMA和神經(jīng)網(wǎng)絡模型分析Google股票數(shù)據(jù)集查看文末了解數(shù)據(jù)獲取方式預測Google的未來股價,然后分析各種模型。

視頻:K近鄰KNN算法原理與R語言結合新冠疫情對股票價格預測

KNN(K近鄰)算法原理與R語言結合新冠疫情COVID-19對谷歌股票價格時間序列預測

,時長06:09

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

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

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

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

K近鄰?是如何工作的?

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

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

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

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

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

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

  • 步驟6:我們的模型準備好了。

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

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

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

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

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

如何選擇 K 值?

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

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

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

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

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

  • 較大的 K 值更適合分類,因為它可以平滑決策邊界。

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

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

計算距離:

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

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

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

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

1.概要

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

拓端

,贊22

拓端

,贊17

拓端

,贊13

2.簡介

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

3.所需包

library(quantmod)?R的定量金融建模和交易框架 library(forecast)?預測時間序列和時間序列模型 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)?進行KNN回歸預測

4.數(shù)據(jù)準備

4.1導入數(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ù)集上進行,以分析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ù)集預覽

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

table(before_covid)

4.4變量匯總

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

5. ARIMA模型

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

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

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

print(adf.test)

print(adfes(sata\_after\_covid))

通過以上ADF檢驗,我們可以得出以下結論:

  • 對于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測試,我們可以得出以下結論:

  • 對于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)的。

因此,我們可以從以上兩個測試得出結論,時間序列數(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)

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

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

Box.test(moderesiduals)

Box.tst(moeit\_fter\_covidreia,?type?=?"Ljung-Box")

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

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

6. KNN回歸時間序列預測模型

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

第一項任務是確定我們的KNN模型中的k值。選擇k值的一般經(jīng)驗法則是取樣本中數(shù)據(jù)點數(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?)

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

before\_cvid?<-?ll\_ig(pdn\_befr\_vid) afer\_vd<-?rog\_ogn(redkn\_afer\_vd)

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

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

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

其中Ns:訓練樣本數(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)) #擬合nn nn(before\_covid$GOOG.Close,?size?=?hn\_beoe_cid,? #?使用nnetar進行預測。 ?forecast(befe_cvid,?h?61,?I?=UE) forecast(aftr_coid,?h?=?5,?I?=?RE)

plot(nn\_fcst\_afte_cvid)

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

accuracy

accuracy

8.所有模型的比較

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

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?)

COVID-19之前的數(shù)據(jù)模型匯總模型RMSEMAEMAPEARIMA13.08.81.0KNN44.033.73.1神經(jīng)網(wǎng)絡13.08.71.0

kable(sumary\_tbl\_aft_ci fulith?=?F,?fixdtead?=?T?)

COVID-19之后的數(shù)據(jù)模型匯總模型RMSEMAEMAPEARIMA16.610.41.0KNN45.935.73.3神經(jīng)網(wǎng)絡14.79.81.0

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

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

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

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

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

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

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

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

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

數(shù)據(jù)獲取

在下面公眾號后臺回復“股票數(shù)據(jù)”,可獲取完整數(shù)據(jù)。

本文摘選R語言結合新冠疫情COVID-19股票價格預測:ARIMA,KNN和神經(jīng)網(wǎng)絡時間序列分析,點擊“閱讀原文”獲取全文完整資料。

點擊標題查閱往期內(nèi)容

Fama French (FF) 三因子模型和CAPM模型分析股票市場投資組合風險/收益可視化

配對交易策略統(tǒng)計套利量化交易分析股票市場

Copula 算法建模相依性分析股票收益率時間序列案例

用COPULA模型進行蒙特卡洛(MONTE CARLO)模擬和擬合股票收益數(shù)據(jù)分析

R使用LASSO回歸預測股票收益

金融時間序列模型ARIMA 和GARCH 在股票市場預測應用

時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格

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

在R語言中使用航空公司復雜網(wǎng)絡對疫情進行建模

matlab用高斯曲線擬合模型分析疫情數(shù)據(jù)

R語言ARIMA-GARCH波動率模型預測股票市場蘋果公司日收益率時間序列

R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格

R語言用綜合信息準則比較隨機波動率(SV)模型對股票價格時間序列建模

R語言回測交易:根據(jù)歷史信號/交易創(chuàng)建股票收益曲線

Python中TensorFlow的長短期記憶神經(jīng)網(wǎng)絡(LSTM)、指數(shù)移動平均法預測股票市場和可視化

R語言k-Shape時間序列聚類方法對股票價格時間序列聚類

R語言邏輯回歸Logistic回歸分析預測股票漲跌

R語言時變波動率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率時間序列

R語言中的copula GARCH模型擬合時間序列并模擬分析

R語言多元Copula GARCH 模型時間序列預測

R語言ARMA-GARCH-COPULA模型和金融時間序列案例

R語言多元CopulaGARCH模型時間序列預測

R語言乘法GARCH模型對高頻交易數(shù)據(jù)進行波動性預測

R語言GARCH-DCC模型和DCC(MVT)建模估計

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測

R語言時間序列GARCH模型分析股市波動率

R語言ARMA-EGARCH模型、集成預測算法對SPX實際波動率進行預測

matlab實現(xiàn)MCMC的馬爾可夫轉(zhuǎn)換ARMA - GARCH模型估計

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測

使用R語言對S&P500股票指數(shù)進行ARIMA + GARCH交易策略

R語言用多元ARMA,GARCH ,EWMA, ETS,隨機波動率SV模型對金融時間序列數(shù)據(jù)建模

R語言股票市場指數(shù):ARMA-GARCH模型和對數(shù)收益率數(shù)據(jù)探索性分析

R語言多元Copula GARCH 模型時間序列預測

R語言使用多元AR-GARCH模型衡量市場風險

R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格

R語言用Garch模型和回歸模型對股票價格分析

GARCH(1,1),MA以及歷史模擬法的VaR比較

matlab估計arma garch 條件均值和方差模型

R語言ARMA-GARCH-COPULA模型和金融時間序列案例


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

分享到微博請遵守國家法律
墨竹工卡县| 浮梁县| 南华县| 历史| 承德市| 奉化市| 自治县| 囊谦县| 滦平县| 洪雅县| 哈尔滨市| 舒城县| 大冶市| 西宁市| 石城县| 鄂托克前旗| 吴桥县| 永康市| 抚顺县| 明水县| 惠州市| 颍上县| 新干县| 桃园市| 建昌县| 石景山区| 马尔康县| 射阳县| 朝阳市| 麻城市| 利川市| 驻马店市| 温泉县| 正蓝旗| 凤城市| 泉州市| 启东市| 万源市| 民县| 白山市| 石家庄市|