pandas plot label_Python+Pandas | 分析比特币与股票市场的关系
我們通過使用Python和Pandas技術(shù)進行分析,我們將能夠在本文中回答該問題。首先,我們將使用免費的API檢索過去幾年的比特幣和股票價格。然后我們將計算股市與比特幣價格之間的相關(guān)性。最后,我們將結(jié)束通過相關(guān)矩陣圖繪制相關(guān)關(guān)系的分析。
自從比特幣出現(xiàn)以來,我一直想知道比特幣在我們的經(jīng)濟中扮演什么角色。以下是三個潛在角色的猜想:
比特幣在投資界一直扮演著避風港的角色
比特幣跟金融市場一樣遵循同樣的趨勢
比特幣價格與股市根本沒有關(guān)系
讓我們使用Python看看!
使用Python檢索股票市場價格和比特幣價格為了獲取數(shù)據(jù)進行我們的分析,我將使用financialmodelingprep API檢索比特幣價格。他們還提供免費的庫存數(shù)據(jù),但是為了向您展示兩種不同的獲取數(shù)據(jù)的方法,我將使用Pandas DataReader來檢索庫存數(shù)據(jù)。
作為我們市場數(shù)據(jù)的代理,我們將使用標準普爾500指數(shù)。標準普爾500指數(shù)是衡量在美國上市的500家最大公司的股票表現(xiàn)的指數(shù)。我們將使用Pandas DataReader下載SP500價格和美聯(lián)儲經(jīng)濟數(shù)據(jù)(FRED)作為源。
如果您以前從未使用過Pandas DataReader和Pandas,則需要安裝軟件包。您可以使用pip命令來做到這一點。
太好了,現(xiàn)在我們可以使用Python檢索數(shù)據(jù)了。首先,我們將提取過去十年中的S&P500股票價格。請注意,通過使用web.DataReader并指定系列名稱(即sp500)和提供程序(即fred),我們可以輕松獲取稱為SP500的Pandas系列數(shù)據(jù)。
pd.core.common.is_list_like = pd.api.types.is_list_likeimport pandas_datareader.data as webimport datetimestart = datetime.datetime(2010, 1, 1)end = datetime.datetime(2020, 2, 10)SP500 = web.DataReader(['sp500'], 'fred', start, end)print(SP500)
以上代碼行將返回低于標普500普爾系列,其中包含過去10年的標普價格:
我們將使用financialmodelingprep API。我們將向API端點發(fā)出一個http get請求,該請求將返回包含歷史BTC價格的字典:
import requests#BTCUSD contains a dictionaryBTCUSD = requests.get('https://financialmodelingprep.com/api/v3/historical-price-full/crypto/BTCUSD')BTCUSD = BTCUSD.json()BTCUSD = BTCUSD['historical']
我們分析包含在鍵名historical中的字典。
現(xiàn)在通過查看BTCUSD變量的內(nèi)容,我們可以看到BTCUSD是詞典列表,并且列表中的每個元素都是包含比特幣價格的不同日期。BTC價格存儲在關(guān)鍵收盤價下。
例如我們看到在2月15日,比特幣的價格為10,244美元。我們需要將字典列表轉(zhuǎn)換為Pandas DataFrame。 我們可以使用pd.DataFrame.from_dict()輕松地做到這一點:
最后,我們在兩個Pandas DataFrame中獲得BTC和S&P 500的價格。現(xiàn)在我們只需要將它們合并在一起。對我們來說幸運的是,使用Python和Pandas可以很容易地做到這一點。
我們可以使用pd.merge在索引上連接兩個DataFrame,因為index包含日期。因此,我們想加入標普500指數(shù)和BTC在匹配日的價格。
我們可以將等于True的right_index和left_index傳遞為參數(shù),讓Pandas知道我們要使用該索引進行合并。
太好了,我們已準備好數(shù)據(jù)進行分析。現(xiàn)在我們可以繼續(xù)查找股票和比特幣價格之間的關(guān)系。
為此,我們可以使用pandas dataframe.corr()查找Pandas DataFrame列的相關(guān)性:
相關(guān)矩陣的值范圍從-1到1。接近+1意味著兩個變量在同一方向上緊密地移動。值為0表示變量之間沒有關(guān)系。負相關(guān)表明變量向不同方向移動。越接近-1,逆關(guān)系越強。
通過研究我們的結(jié)果,我們發(fā)現(xiàn)比特幣價格與標準普爾500指數(shù)之間存在0.83的強正相關(guān)關(guān)系。這意味著,當股市價格上漲時,我們可以預期比特幣也會跟風上漲。
圖的紅色意味著這種關(guān)系是強而正的。我們還可以使用linregression和scipy.stats檢查這種關(guān)系是否具有統(tǒng)計學意義:
#statistically significant?from scipy.stats import linregresslinregress(SP500BTC['sp500'],SP500BTC['BTC'])#H0: BTC and Stock prices are not related#Results:LinregressResult(slope=8.956910705798713, intercept=-18068.59091142212, rvalue=0.8341059841835341, pvalue=0.0, stderr=0.1673358700767462)
因為我們的p值小于0.05,所以我們可以拒絕H0,因此,我們可以從統(tǒng)計學上說比特幣和股票價格一起移動。
使用Python和Pandas,我們分析了股市與比特幣價格之間的關(guān)系。根據(jù)我們的分析結(jié)果,可以說BTC和S&P500的價格朝著同一方向移動。
知道這種關(guān)系在衰退的經(jīng)濟周期中是否也很有趣。為了進行這種分析,我們可能需要等待一段時間,因為在過去的幾年中,我們一直生活在擴張型經(jīng)濟中。請參閱下面的完整腳本:
End.
作者:區(qū)塊鏈研究實驗室
來源:區(qū)塊網(wǎng)
·?零基礎(chǔ)入職數(shù)據(jù)分析就業(yè)班 ·
課程形式主為“直播+錄播”
課程專享:月考測試通關(guān)+課程項目作業(yè)+1v1職場生涯規(guī)劃+班主任輔導學習+資深講師答疑
課程結(jié)束后能熟練掌握SQL、Python、Excel、PPT等數(shù)據(jù)分析工具
金3銀4招聘季,愛數(shù)據(jù)帶你成功入職數(shù)據(jù)分析!
點擊“閱讀原文”入職數(shù)據(jù)分析總結(jié)
以上是生活随笔為你收集整理的pandas plot label_Python+Pandas | 分析比特币与股票市场的关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php str_replice_详解PH
- 下一篇: STM32H743+CubeMX-低功耗