数据分析实战——货币分析与预测

目录

一、比特币分析与预测

1.前置准备

2.比特币价格变化趋势分析

3.稳定性检测与时间序列检测

4.数据变化

5.模型分析

6.残留物分析

7.预测

二、参考资料

总结


梗概

本篇博客主要通过几个实例(不断更新,欢迎关注!)实践各种数据分析与机器学习处理方法(内附数据集与python代码)


一、货币分析与预测

1.前置准备

下载数据库(包含各时段价格、时间等因素),下载地址为Bitcoin Historical Data | Kaggle,本站笔者已上传资源,在主页内资源可找到分析数据集python-统计分析文档类资源-CSDN文库,导入相关包与数据如下:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl
from scipy import stats
import statsmodels.api as sm
import warnings
from itertools import product
from datetime import datetime
warnings.filterwarnings('ignore')
plt.style.use('seaborn-poster')
df = pd.read_csv('../input/workshop1/BTCUSD.csv')

2.货币价格变化趋势分析

通过对数据库中四种因素来分别分析其对货币价格变化的影响并绘图,代码如下:

# 时间戳转化为日常时间格式
df.Timestamp = pd.to_datetime(df.Timestamp, unit='s')# 对样本在不同时间频率上进行采样
df.index = df.Timestamp
df = df.resample('D').mean()df_month = df.resample('M').mean()df_year = df.resample('A-DEC').mean()df_Q = df.resample('Q-DEC').mean()# 中文乱码处理
plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False# 绘图
fig = plt.figure(figsize=[15, 8])
plt.suptitle("比特币价格变化趋势, 单位 美元", fontsize=22)plt.subplot(221)
plt.plot(df.Weighted_Price, '-', label='By Days')
plt.legend()plt.subplot(222)
plt.plot(df_month.Weighted_Price, '-', label='By Months')
plt.legend()plt.subplot(223)
plt.plot(df_Q.Weighted_Price, '-', label='By Quarters')
plt.legend()plt.subplot(224)
plt.plot(df_year.Weighted_Price, '-', label='By Years')
plt.legend()plt.show()

效果如图所示:

3.稳定性检测与时间序列检测

对上述四种影响货币价格走向的四种因素分别进行稳定性与时间序列检测,代码如下:

plt.figure (figsize=[15, 7])
sm.tsa.seasonal_decompose(df_month.Weighted_Price).plot()
print("Dickey–Fuller test: p=%f" % sm.tsa.stattools.adfuller(df_month.Weighted_Price)[1])
plt.show()

效果如图所示:

4.数据变化

由于连续的响应变量不满足正态分布,所以数据需要进行Box-Cox变换,代码如下:

df_month['Weighted_Price_box'], lmbda = stats.boxcox(df_month.Weighted_Price)
print("Dickey–Fuller test: p=%f" % sm.tsa.stattools.adfuller(df_month.Weighted_Price)[1])

由于时间序列季节对数据的影响,所以季节差异化需要考虑,代码如下:

df_month['prices_box_diff'] = df_month.Weighted_Price_box - df_month.Weighted_Price_box.shift(12)
print("Dickey–Fuller test: p=%f" % sm.tsa.stattools.adfuller(df_month.prices_box_diff[12:])[1])

为减少数据的随机性与波动性,需要进行数据规律化分布,代码如下:

# Regular differentiation
df_month['prices_box_diff2'] = df_month.prices_box_diff - df_month.prices_box_diff.shift(1)
plt.figure(figsize=(15,7))# STL-decomposition
sm.tsa.seasonal_decompose(df_month.prices_box_diff2[13:]).plot()   
print("Dickey–Fuller test: p=%f" % sm.tsa.stattools.adfuller(df_month.prices_box_diff2[13:])[1])plt.show()

效果如图:

三种数据变化后的test效果如图12所示。

5.模型分析

将处理完的数据导入对应的模型中,使用自相关和部分自相关图对参数进行初始近似处理代码如下:

# Initial approximation of parameters using Autocorrelation and Partial Autocorrelation Plots
plt.figure(figsize=(15, 7))
ax = plt.subplot(211)
sm.graphics.tsa.plot_acf(df_month.prices_box_diff2[13:].values.squeeze(), lags=28, ax=ax)
ax = plt.subplot(212)
sm.graphics.tsa.plot_pacf(df_month.prices_box_diff2[13:].values.squeeze(), lags=28, ax=ax)
plt.tight_layout()
plt.show()

效果如图:

参数初始化与模型选择代码如下:

# Initial approximation of parameters
Qs = range(0, 2)
qs = range(0, 3)
Ps = range(0, 3)
ps = range(0, 3)
D = 1
d = 1
parameters = product(ps, qs, Ps, Qs)
parameters_list = list(parameters)
len(parameters_list)# Model Selection
results = []
best_aic = float("inf")
warnings.filterwarnings('ignore')
for param in parameters_list:try:model = sm.tsa.statespace.SARIMAX(df_month.Weighted_Price_box, order=(param[0], d, param[1]),seasonal_order=(param[2], D, param[3], 12)).fit(disp=-1)except ValueError:print('wrong parameters:', param)continueaic = model.aicif aic < best_aic:best_model = modelbest_aic = aicbest_param = paramresults.append([param, model.aic])
result_table = pd.DataFrame(results)
result_table.columns = ['parameters', 'aic']
print(result_table.sort_values(by='aic', ascending=True).head())
print(best_model.summary())

参数与建模结果如所示: 

6.残留物分析

使用STL分解法对残留物进行分析,代码如下:

# STL-decomposition
plt.figure(figsize=(15, 7))
plt.subplot(211)
best_model.resid[13:].plot()
plt.ylabel(u'Residuals')
ax = plt.subplot(212)
sm.graphics.tsa.plot_acf(best_model.resid[13:].values.squeeze(), lags=48, ax=ax)print("Dickey–Fuller test:: p=%f" % sm.tsa.stattools.adfuller(best_model.resid[13:])[1])plt.tight_layout()
plt.show()

效果如图所示:

7.预测

根据前六步得到的分析数据与模型结果,基于时间序列与四种因素对比特币价格进行预测,并与实际价格趋势曲线进行拟合对比,代码如下:

def invboxcox(y, lmbda):if lmbda == 0:return np.exp(y)else:return np.exp(np.log(lmbda * y + 1) / lmbda)# 预测
df_month2 = df_month[['Weighted_Price']]
date_list = [datetime(2017, 6, 30), datetime(2017, 7, 31), datetime(2017, 8, 31), datetime(2017, 9, 30),datetime(2017, 10, 31), datetime(2017, 11, 30), datetime(2017, 12, 31), datetime(2018, 1, 31),datetime(2018, 1, 28)]
future = pd.DataFrame(index=date_list, columns=df_month.columns)
df_month2 = pd.concat([df_month2, future])
df_month2['forecast'] = invboxcox(best_model.predict(start=0, end=75), lmbda)
plt.figure(figsize=(15, 7))
df_month2.Weighted_Price.plot()
df_month2.forecast.plot(color='r', ls='--', label='Predicted Weighted_Price')
plt.legend()
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
plt.title('比特币涨势, 月份')
plt.ylabel('mean USD')
plt.show()

效果如图所示:

分析:由图可见,实际曲线与预测曲线拟合较好,说明模型的优越性,预测算法的准确性,有着较好的预测效果。 

二、参考资料

1.Bitcoin Historical Data | Kaggle

2.价格预测 - Heywhale.com

3.十个Kaggle项目带你入门数据分析 - 知乎 (zhihu.com)


总结

一文搞懂数据分析那点事儿!!!实践出真知,跑起来吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32348.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chromeedge好用扩展插件分享

Infinity 楼主使用目前最好用的主题&#xff0c;[下载链接] 让浏览器页面像手机App一样展示&#xff0c;界面清晰&#xff0c;还可以自定义图标和名称。支持移动和PC&#xff08;win/mac等&#xff09; Adblock &Adblock Plus 网页拦截好助手 NeatDownloadManager 页…

Edge的扩展插件在chrome里面使用

国内 edge 浏览器扩展是城市正常访问的&#xff0c;扩展也是特别丰富的&#xff0c;那么使用 Edge 下载扩展安装在 chrome 中使用 打开 edge 浏览器&#xff0c;点击… 点 ----- 扩展 点击扩展观看里 3. 按以下只是操作 打开 edge 浏览器扩展市场&#xff0c;下载想要的插…

如何将egde的拓展(插件迁移到谷歌) (谷歌 edge拓展互用)

首先我们在国内是不能正常的在谷歌浏览器进行下载插件的 呢我们如果想要在谷歌使用插件怎么办呢 这个是edge的插件安装目录 一般情况下都是edge迁移到谷歌吧 谷歌的目录我就懒得找了 需要的直接百度吧 C:\Users\自己的用户名\AppData\Local\Microsoft\Edge\User Data\Default\…

WeTab拓展(整合GPT)——Edge浏览器新建标签页添加和使用教程

目录 1.获取 2.启用/禁用WeTab 3.使用 4.其他 1.获取 1.1找到电脑中的Edge浏览器并打开 1.2在新建的标签页中搜索“WeTab”->找到WeTab官网->点击进入 地址&#xff1a;WeTab 新标签页 1.3点击Edge 1.4点击方框获取&#xff08;我已经获取&#xff0c;此处显示为删除…

产业分析:2023中国保险发展报告

导读&#xff1a; 2023年&#xff0c;受多种因素影响&#xff0c;中国保险市场呈现出一些变化。但总体上看&#xff0c;保险业仍维持着稳步上升的趋势。此外&#xff0c;在未来的发展中&#xff0c;保险业将从服务、营销、产品、渠道等方面进行转型&#xff0c;以适应市场需求&…

2023年中国信创产业研究报告

导读&#xff1a; 目前&#xff0c;信创产业已经从“试点实践期”进入到“规模化推广期”的关键阶段&#xff0c;产业需求正在全面打开&#xff0c;市场订单正在井喷式增长&#xff0c;产业红利预计将会持续到2027年前后。本报告聚焦信创&#xff0c;综合分析产业的发展历程、现…

2023中国半导体投资深度分析

导读&#xff1a; 《报告》旨在从国家经济及产业发展的战略入手&#xff0c;分析半导体器件和集成电路专用设备行业未来的市场走向&#xff0c;挖掘半导体器件和集成电路专用设备行业的发展潜力&#xff0c;预测半导体器件和集成电路专用设备行业的发展前景&#xff0c;助力半导…

2023年抖音生活服务平台通案

导读&#xff1a; 内容包含&#xff1a;内容场景可见、搜索场景可搜、互动场景可聊、交易场景可买、抖音来客一站式助力经营与推广、达人带货、高效经营、商业推广、数字化视角下的经营服务矩阵、抖音生活服务2023年营销日历、商家经营案例解析等内容&#xff01;值得学习&…

2023年世界500强投资趋势分析

导读&#xff1a; 综合世界500强对区域的投资趋势来看&#xff0c;只有在经济中心的城市会拥有更多的投资机会。此外也存在弯道超车的情况&#xff0c;例如苏州杭州的投资数量在2021年开始出乎意外地超越了一线城市广州&#xff0c;这两座城市投资吸引力的不断提升&#xff0c;…

2022年中国创投市场数据报告

导读&#xff1a; 经济增速放缓、国际局势复杂多变、疫情起伏不定等多重因素对 2022 年的创投市场造成了较大的影响。2022 年国内创投市场共计披露12,415起投融资事件&#xff0c;较 2021 年减少了 25.30%&#xff1b;共计融资金额 8,220 亿元&#xff0c;较 2021 年减少 42.55…

中国智能视频编码行业白皮书

导读&#xff1a; 随着互联网内容的迭代丰富&#xff0c;网络视频已经成为人们获取信息的最重要媒介。视频编解码技术作为超高清以及泛音视频产业发展的基础&#xff0c;是未来产业竞争的制高点。全新的智能视频编码技术将在节省存储与传输宽带成本、降低时延、保障视觉质量的基…

2022年中国加油站发展研究报告

导读&#xff1a; 截至2022年底&#xff0c;中国加油站数量约为11.3万座(包含迁建未投产、停业未注消加油站数量&#xff0c;据不完全统计&#xff0c;此类油站约4500座)&#xff0c;同比增加0.4万座。从数量上看&#xff0c;中国近5年数量呈现逐年增加的态势&#xff0c;但实际…

中国“双碳”投资地图2022

导读&#xff1a; 金融在可持续发展目标实现进程中发挥着重要作用。然而&#xff0c;数据缺乏、市场信息有限、关键市场参与者对于可持续投融资机会认知不足等问题阻碍着可持续金融市场的持续壮大。针对这一挑战&#xff0c;联合国开发计划署&#xff08;UNDP&#xff09;开发了…

2023年上海国际车展展中新车报告

导读&#xff1a; 4月18日-27日&#xff0c;第二十届上海国际汽车工业展览会将于上海举办&#xff0c;本届车展共有来自20个国家和地区的1000家整车及零部件公司参展&#xff0c;据盖世汽车研究院统计&#xff0c;新车共达93款&#xff0c;其中SUV车型为53款&#xff0c;轿车30…

2022直播电商白皮书

导读&#xff1a; 《2022直播电商白皮书》数据显示&#xff0c;2022年6月&#xff0c; 我国电商直播用户规模为4.69亿&#xff0c;较2020年3月增长2.04亿&#xff0c;占网民整体的44.6%。估计2022年全网直播电商的GMV为3.5万亿元左右&#xff0c;占全部电商零售额23%左右。 关注…

2023中国社交媒体平台指南

导读&#xff1a; 报告以清晰的信息图对中国主流社交媒体平台微信、微博、抖音、快手、小红书、哔哩哔哩、知乎和大众点评做了全方位分析&#xff0c;包括平台背景、用户规模、用户画像、平台特色、内容形式、适合行业、主要指标等多个维度&#xff0c;帮助品牌和代理商一览中国…

2022中国养老金融调查研究报告

导读&#xff1a; 本次调查通过探究城镇居民对养老金融素养与风险认知、养老金融参与情况及未来意愿、基本养老保险认知及参与情况等&#xff0c;试图描绘出我国养老金融的发展情况和市场现状。该项目主要从需求方的角度&#xff0c;找出当前养老金融发展过程中存在的主要问题&…

产业分析:2023年无锡市产业全景

导读&#xff1a; 无锡市&#xff0c;简称锡&#xff0c;古有梁溪、金匮等称&#xff0c;被誉为“太湖明珠”。无锡地处江南长江三角洲、太湖之滨&#xff0c;位於江苏省南部&#xff0c;下辖江阴市与宜兴市。无锡东邻苏州&#xff0c;距上海128.2公里&#xff1b;南濒太湖&…

2022年中国操作系统行业概览

导读&#xff1a; 2022年全球操作系统市场规模约为4,826亿元&#xff0c;同比下降2.6%。其主要是受到地缘冲突的宏观事件影响&#xff0c;全球消费电子的出货量严重下滑&#xff0c;而到了23年将开始恢复。预计到2026年全球操作系统市场规模将超6000亿元&#xff0c;同比增长6.…

2023产业互联网安全十大趋势

导读&#xff1a; 根据报告披露&#xff0c;目前&#xff0c;网络攻击者已开始使用ChatGPT创建恶意软件、暗网站点和其他实施网络攻击的工具。此外&#xff0c;使用ChatGPT编写用于网络攻击的恶意软件代码&#xff0c;将会大大降低攻击者的编程或技术能力门槛&#xff0c;将导致…