替代数据分析 – RS Metrics MetalSignals

Thumb1

替代数据现在被誉为新石油。这些数据集提供了独特和及时的市场和各个行业的视图。他们提供有价值的见解,帮助我们在传统新闻媒体出版之前就预测事件。处于数据革命前沿的两家公司是Quandl和RS Metrics。

这些公司使用卫星图像和地理空间分析来提供一种新颖的替代数据形式。RS Metrics使用先进的计算机视觉和机器学习,提供与地面活动相关的即用型数据。他们最受欢迎的数据集之一是MetalSignals集,现在可以通过Quandl API使用。

在本文中,我将解释如何派生MetalSignals数据集,清理它们,对它们进行一些探索性数据分析,并使用Python从它们获得一些有见地的可视化。

您可以从RS Metrics MetalSignals数据源获得什么?

RS Metrics的MetalSignals数据集提供了与全球铝,铜,锌,铁矿石和钢的浓缩物相关的卫星数据。这包括金属成品,冶炼厂和储存设施中的金属以及装载在自卸车上并在卡车上运输的金属的数据。该数据涵盖6大洲的40多个国家。这可以为数据爱好者和对冲基金提供丰富的信息。您可以在此处获得有关数据中心化可用字段的更详细信息。

替代数据

这些数据的一些用例包括:

  • 预测股票,外汇和指数的股票价格变动,主要是那些与金属有关或与金属有关的股票价格变动。
  • 分析或预测金属市场的趋势
  • 获取有关金属行业竞争对手的信息。

API提供了两个表,表示RS Metrics MetalSignals产品 – 基本表和插入数据表。基础数据包括每日特定的冶炼厂/存储级别统计数据,每天更新数据。Imputed数据表具有更多聚合的信息,并按月组织。它提供与整个国家和地区的金属有关的数据,而不是单个冶炼厂/储存。该表每周更新一次,并使用卡尔曼平滑进行清理。这与基表形成对比,基表主要包含原始形式的数据。

从Quandl API获取RS MetalSignals数据集

要从API获取数据,您需要先在此处注册Quandl帐户。之后,您将登录到您的帐户/个人资料,在那里您将获得API密钥。您将需要此API密钥才能访问Quandl数据集。

Quandl API KEY

Quandl还提供了一些可以在JSON格式中播放的免费样本数据。您可以通过API调用访问此数据:

https://www.quandl.com/api/v3/datatables/RSM/MSB/delta.json?api_key=”YOUR API KEY“

要么:

https://www.quandl.com/api/v3/datatables/RSM/MSI/delta.json?api_key=”YOUR API KEY“

pip install quandl import quandl quandl.ApiConfig.api_key =“你的API密钥”

请注意,您必须在Quandl API密钥中粘贴“YOUR API KEY”。接下来获取基准表,标识为“RSM / MSB”并将其放入称为“数据”的数据框中。

data = quandl.get_table('RSM / MSB',paginate = True)

这就是访问RSM MetalSignals基表所需的全部内容。

描述和清理数据

获得数据后,就可以进行一些探索性数据分析(EDA)了。这涉及对数据进行的初步调查,以了解数据,发现异常情况(如果有的话)并进行清理,以便您只拥有实际需要的数据。

替代数据,

1.在此之前,导入所需的库。在我们的EDA中,我们需要pandas,matplotlib,plotly express和cufflinks。如果您还没有安装这些,可以先使用pip install命令安装它们。

导入pandas作为pd导入matplotlib.pyplot作为plt导入袖扣作为cf import plotly_express作为px

接下来,让我们仔细看看数据。我们不希望一次看到所有数据,只是一瞥前几条记录或最后几条记录就​​足够了。这可以使用pandas .head()函数完成。此函数返回数据集的前五个记录。

data.head()

数据头功能

您还可以使用.tail()函数查看最后五条记录。

  1. 您想知道的另一件事是数据集有多少行和列。这可以通过使用.shape获得:
data.shape

所以现在我们知道我们的数据由27,872行和44列组成。这是很多专栏它可能有一些不是真正必要的列。

  1. 如果你看看我们的.head()命令的结果,你会发现我们可以使用一些列。例如,“ticker”列在整个数据中心化包含相同的值。向右滚动,你会看到列’totalareametalstocksunit’,’areapilesunit’,’areaconcentratebagsunit’,’areacathodesunit’和’areaanodesunit’没有提供太多的见解。

可以使用drop命令删除所有这些列:

data.drop(('ticker','totalareametalstocksunit','areapilesunit','areaconcentratebagsunit','areacathodesunit','areaanodesunit'),axis = 1,inplace = True)

我们设法将列数减少到38。

  1. 查看每列中存在哪些数据类型也是一个好主意,因此我们知道数据中是否存在异常。为此,我们使用info()函数。此函数还告诉我们是否有任何列具有空值。
data.info()

我们可以看到我们的数据集有10个浮点数,4个整数和23个对象值,并且某些字段(如“country”,“areaanodes”等)缺少某些值,因为它们中的记录总数是对于国家/地区,我们只需添加以下行即可解决此问题:

data = data.fillna(value = {'country':'NA'})

这将在没有提到国家/地区名称的地方添加首字母“NA”。

  1. 最后,在熊市猫中有一个非常方便的功能,可以在重要统计数据摘要中总结整个数据。它是描述功能。
data.describe()

使用此函数,您可以获得计数,平均值,标准差,最小值和最大值,以及数据的不同百分位数。标准差(std)提供了查看数据分布的有用方法。高偏差表示值更加去中心化(更平坦)……

替代数据

通过观察平均值和第50百分位数(中位数),我们可以衡量分布的偏度。与中位数相比非常高的平均值意味着有一些记录具有非常高的值。

第75百分位数和最大值之间的差异也可以告诉我们,我们的大多数列都是偏斜的。这意味着数据中心化存在一些极值或异常值。

如果需要正态分布,我们可能需要在将来对某些极端值进行优化或修整。

现在让我们尝试可视化数据以进一步探索。

可视化数据

为了可视化我们的数据,我们将使用Plotly express库。当与袖扣合作使用时,它可以让我们通过一些真实的花哨可视化来探索我们的数据。

替代数据

  1. 让我们首先创建一个相关K线走势图来检查数据中心化要素之间的相关性。Pandas允许您使用.corr()函数执行此操作
data.corr()

虽然这可以完成工作,但如果将其与cufflink的iplot命令结合使用,您可以获得更直观,更有用的方式来查看相关性。这是一个更多的工作,但谁不喜欢一些光滑的可视化?

data.corr()。iplot(kind ='heatmap',colorscale =“Blues”,title =“Feature Correlation Matrix”)

此命令为您提供相关热图,有助于更好地可视化数据。较暗的阴影表示较高的正相关,较浅的阴影表示较低的相关性。

从上面的热图,我们可以看到阴极和阳极的总面积之间存在强烈的正相关性,这是有道理的,因为它是被净化以制造阴极的阳极。金属股票总面积与阳极面积之间似乎也存在强烈的正相关关系。阳极和阴极沉积物的值仅适用于铜。所以热图告诉我们大多数铜金属股票是未经过净化处理的。

我们还注意到,现场袋装浓缩物的总面积与阳极面积之间几乎没有相关性,一天的员工车数量并不真正取决于是否是周末。

  1. 接下来,让我们看一下使用箱形图的数据分布。箱形图或盒须图有助于我们以五个数字摘要的形式看到定量数据的分布:
  • 最低限度
  • 第一个四分位数
  • 中位数
  • 第三个四分位数
  • 最大值

该框表示第一个四分位数(1),中位数(2)和第三个四分位数(3),换句话说,四分位数范围(IQR)。晶须延伸以显示最小(5)和最大(4)值。

让我们制作卫星拾取的员工汽车的国家方块图。

fig = px.box(data,x =“countryname”,y =“employeecars”)fig.show()

箱形图也是快速查找数据中异常值的好方法。例如,如果您放大法国,日本和英国的箱形图,您会发现:

法国收集的数据没有异常值,英国数据中只有少数异常值,日本数据中有很多异常值。

您还可以绘制数据透视表中的聚合值。例如,假设您希望看到金属股票总面积的国家/地区分布。然后,您可以获得它的区块图,如下所示:

data(('countryname','totalareametalstocks')。pivot(columns ='countryname',values ='totalareametalstocks')。iplot(kind ='box')
  1. 我们可以使用箱形图和核密度估计(KDE)来检查数据分布中的偏度。但是,KDE有助于更好地理解箱图,并可以很好地显示分布的形状。

要获取变量的KDE图,我们使用matplotlib.pyplot的plot.density()函数。让我们用它来显示金属股票总面积的KDE。

数据( 'totalareametalstocks')。plot.density()

这表明变量是右倾的。换句话说,在分布中发现较大金属区域的概率小于较小区域的概率。

  1. 最后,让我们使用气泡图来显示不同国家金属矿床的数量/面积以及这种情况随着时间的推移如何发展。

Plotly express允许我们使用具有指定参数的去中心化函数来执行此操作。让我们绘制铜矿床的气泡图。为此,我们首先需要选择铜的记录。我们可以将结果记录分配给名为“df”的数据帧。

df = data.loc(data.metal type =='copper')

我们现在将使用此数据框并绘制沿x轴的观察日期。

我们将绘制沿y轴的金属股票总面积,并根据国家显示颜色编码的气泡。为确保气泡尺寸不会过大,我们将最大尺寸限制为30.气泡的大小将根据铜股票的面积而变化。

px.scatter(df,x ='observationdate',y ='totalareametalstocks',color ='countryname',size ='totalareametalstocks',size_max = 30)

这使我们可以看到不同国家的年度铜矿。有一个“缩放”按钮,用于表示提供,允许我们放大K线走势图上的某些点。让我们放大2018-2019这一年,看看过去3个月的数字是多少。

我们可以看到,在过去3个月中,中国的铜储量一直在增加。这可能意味着全球对铜的需求正在上涨,因此铜价上涨。

我们可视化此数据的另一种方法是根据端口/区域绘制K线走势图:

px.scatter(df,x ='observationdate',y ='totalareametalstocks',color ='fullname',size ='totalareametalstocks',size_max = 30)

这使我们可以确定单个冶炼厂的储备水平。结合全球供应链关系数据,我们可以预测依赖铜作为原材料的上市公司的生产活动。一个潜在的用例是监控特斯拉铜(EV电池的关键部件)供应商的生产情况,以预测汽车制造商达到生产目标的能力。

这总结了我们的EDA指南。在本系列的下几部分中,我们将形成更多假设,并在与其他替代数据结合时探索数据集的潜在用例。

您对如何使用数据集有独特的想法或疑问吗?请在下面的评测部分告诉我们

 

资讯来源:由0x资讯编译自DATADRIVENINVESTOR,版权归作者Jinghao Ke所有,未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢