广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python数据分析Numpy中常用相关性函数
  • 104
分享到

Python数据分析Numpy中常用相关性函数

2024-04-02 19:04:59 104人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录摘要:一、股票相关性分析二、多项式三、求极值的知识摘要: NumPy中包含大量的函数,这些函数的设计初衷是能更方便地使用,掌握解这些函数,可以提升自己的工作效率。这些函数包括数组

摘要:

NumPy中包含大量的函数,这些函数的设计初衷是能更方便地使用,掌握解这些函数,可以提升自己的工作效率。这些函数包括数组元素的选取和多项式运算等。下面通过实例进行详细了解。

前述通过对某公司股票的收盘价的分析,了解了某些Numpy的一些函数。通常实际中,某公司的股价被另外一家公司的股价紧紧跟随,它们可能是同领域的竞争对手,也可能是同一公司下的不同的子公司。可能因两家公司经营的业务类型相同,面临同样的挑战,需要相同的原料和资源,并且争夺同类型的客户。

实际中,有很多这样的例子,如果要检验一下它们是否真的存在关联。一种方法就是看看两个公司股票收益率的相关性,强相关性意味着它们之间存在一定的关联性(特别是当所用的数据不够充足时,误差可能更大)

一、股票相关性分析

1、导出两个相关的股票数据():

2、分别从CSV文件中读入相关数据

close = np.loadtxt('data036.csv',delimiter=',', usecols=(5,),converters={1:datestr2num},unpack=True)
new_close = np.loadtxt('data999.csv',delimiter=',', usecols=(5,),converters={1:datestr2num},unpack=True)

3、协方差描述的是两个变量共同变化的趋势,其实就是归一化前的相关系数。使用 cov 函数计算股票收益率的协方差矩阵,完整代码如下:

import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
def datestr2num(s): #定义一个函数
    return datetime.strptime(s.decode('ascii'),"%Y-%m-%d").date().weekday()
close=np.loadtxt('data036.csv',delimiter=',', usecols=(5,),converters={1:datestr2num},unpack=True) #导入data036.csv数据 
new_close=np.loadtxt('data999.csv',delimiter=',', usecols=(5,),converters={1:datestr2num},unpack=True)#导入data999.csv数据
covariance = np.cov(close,new_close) #使用numpy.cov() 函数计算两个数列的协方差矩阵
print(close.mean()) #求close的平均值
print(new_close.mean())#求new_close的平均值
print('covariance:','\n',covariance)

运行结果:

48.40690476190476
18.85157142857143
covariance: 
 [[30.46934553  1.5201865 ]
 [ 1.5201865   8.96031113]]

1)用 diaGonal 函数查看矩阵对角线上的元素

print ("对角元素:", covariance.diagonal()) # diagonal查看对角上的元素

运行结果:

对角元素: [30.46934553  8.96031113]

2)使用 trace 函数计算矩阵的迹,即对角线上元素之和

print("Covariance trace", covariance.trace()) #对角线上元素之和

3)两个向量的相关系数被定义为协方差除以各自标准差的乘积。计算向量 a 和 b 的相关系数的公式:corr(a,b)=cov(a,b)/(std(a)*std(b))

covar = covariance/ (np.std(close) * np.std(new_close))
print("相关系数矩阵:", covar)

运行结果:

相关系数矩阵: [[1.84843969 0.09222295]
 [0.09222295 0.54358223]]

注意:由于covariance是一个矩阵,因而得到的covar也是一个矩阵

相关系数是两只股票的相关程度。相关系数的取值范围在 -1 到 1 之间。根据定义,一组数值与自身的相关系数等于 1 ,numpy中使用 corrcoef 函数计算相关系数

closecorr = np.corrcoef(close,new_close)
print("相关系数:",'\n', closecorr )

运行结果:

相关系数: 
 [[1.         0.09200338]
 [0.09200338 1.        ]]

对角线上的元素即close和new_close与自身的相关系数,因此均为1。相关系数矩阵是关于对角线对称的,因此另外两个元素的值相等,表示close和new_close的相关系数等于new_close和close的相关系数。

判断两只股票的价格走势是否同步的要点是,它们的差值偏离了平均差值2倍于标准差的距离,则认为这两只股票走势不同步。代码如下:

difference = close - new_close
avg = np.mean(difference)
dev = np.std(difference)
print ("Out of sync:", np.abs(difference[-1]-avg)>2*dev)

运行结果:

Out of sync: False

二、多项式

微积分里有泰勒展开,也就是用一个无穷级数来表示一个可微的函数。实际上,任何可微的(从而也是连续的)函数都可以用一个N次多项式来估计,而比N次幂更高阶的部分为无穷小量可忽略不计。

NumPy中的 ployfit 函数可以用多项式去拟合一系列数据点,无论这些数据点是否来自连续函数都适用。

继续使用close和new_close的股票价格数据。用一个三次多项式去拟合两只股票收盘价的差价。

t = np.arange(len(close)) #得到close数列的长度
poly = np.polyfit(t, close - new_close, 3) #利用长度t和两只股票的价差,生成一个三项式,三项式有3个系数和一个常量
print("Polynomial fit", poly)

运行结果:

Polynomial fit: [ 1.61308827e-07 -4.34114354e-04  1.84480028e-01  1.33680483e+01]

用我们刚刚得到的多项式对象以及 polyval 函数,推断下一个差值:

print ("Next value:", np.polyval(poly, t[-1] + 1))  #用生成的多项式拟合求下一个差值
print(difference[-1]) #打印最后一个实际的差值

运行结果:

Next value: 26.222936287829654
26.21

在极限情况下,差值可以在某个点为0。使用 roots 函数找出拟合的多项式函数什么时候到达0值:

print( "Roots", np.roots(poly))#root返回多项式的根

运行结果:

Roots [2138.21411788  615.9134063   -62.92728874]

三、求极值的知识

极值是函数的最大值或最小值。在高等代数微积分中,这些极值点位于函数的导数为0的位置,然后再求导数函数的根,即找出原多项式函数的极值点。

1)使用 polyder 函数对多项式函数求导

der = np.polyder(poly)
print("Derivative", der)

2)求出导数函数的根,即找出原多项式函数的极值点

print( "Extremas", np.roots(der))

运行后即得到如下:

Derivative: [ 4.83926482e-07 -8.68228709e-04  1.84480028e-01]
Extremas [1547.84609151  246.28739879]

3)用 polyval 计算多项式函数的值,并用matplotlib显示

vals = np.polyval(poly, t)
print('vals:',vals)
print('max value:', np.argmax(vals))
print('min value:', np.argmin(vals))
plt.plot(t,difference)
plt.plot(t,vals)
plt.show()

运行结果如下:

以上就是python数据分析Numpy中常用相关性函数的详细内容,更多关于Python数据分析Numpy相关性函数的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python数据分析Numpy中常用相关性函数

本文链接: https://www.lsjlt.com/news/118488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python数据分析Numpy中常用相关性函数
    目录摘要:一、股票相关性分析二、多项式三、求极值的知识摘要: NumPy中包含大量的函数,这些函数的设计初衷是能更方便地使用,掌握解这些函数,可以提升自己的工作效率。这些函数包括数组...
    99+
    2022-11-11
  • Python数据分析Numpy中常用相关性函数是什么
    今天小编给大家分享一下Python数据分析Numpy中常用相关性函数是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。摘要...
    99+
    2023-06-30
  • Python数据分析之NumPy常用函数使用详解
    目录文件读入1、保存或创建新文件 2、读取csv文件的函数loadtxt3、常见的函数4、股票的收益率等5、对数收益与波动率6、日期分析总结本篇我们将以分析历史股价为例,介...
    99+
    2022-11-11
  • 如何用Python对数据进行相关性分析
    这期内容当中小编将会给大家带来有关如何用Python对数据进行相关性分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在进行数据分析时,我们所用到的数据往往都不是一维的,而这些数据在分析时难度就增加了不少...
    99+
    2023-06-16
  • python肯德尔系数相关性数据分析示例
    目录前言一、定义二、使用条件三、计算公式及代码示例1.Tau-a2.Tau-b前言 相关性分析算是很多算法以及建模的基础知识之一了,十分经典。关于许多特征关联关系以及相关趋势都可以...
    99+
    2023-02-15
    python肯德尔系数相关性 python 数据分析
  • python皮尔逊相关性数据分析分析及实例代码
    目录前言数值类型皮尔逊系数使用场景皮尔逊相关系数(Pearson correlation)1.定义2.线性关系判定3.正态检验1.KS检验4.计算代码前言 相关性分析算是很多算法以...
    99+
    2023-02-15
    python皮尔逊相关性 python 数据分析
  • python数据分析Numpy库的常用操作
    numpy库的引入: import numpy as np 1、numpy对象基础属性的查询 lst = [[1, 2, 3], [4, 5, 6]] def numpy_typ...
    99+
    2022-11-12
  • 【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析
    目录 1 描述性统计(Descriptive Statistics) 2 数据分组和聚合 3 数据透视表 4 相关性分析 1 描述性统计(Descriptive Statistics)         描述性统计是一种用于汇总和理解数据集...
    99+
    2023-09-10
    信息可视化 python pandas
  • 详解Python进行数据相关性分析的三种方式
    目录相关性实现NumPy 相关性计算SciPy 相关性计算Pandas 相关性计算线性相关实现线性回归:SciPy 实现等级相关排名:SciPy 实现等级相关性:NumPy 和 Sc...
    99+
    2022-11-10
  • Python进行数据相关性分析的三种方式是什么
    本文小编为大家详细介绍“Python进行数据相关性分析的三种方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python进行数据相关性分析的三种方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。相...
    99+
    2023-06-30
  • Python函数使用的相关练习题分享
    目录1.写函数计算传入数字参数的和(动态传参)2.写函数用户传入修改的文件名3.写函数检查用户传入的对象4.写函数检查传入字典的每一个value的长度5.闭包6.写函数返回一个扑克牌...
    99+
    2022-11-11
  • Pandas数据分析常用函数的使用
    目录一、数据导入导出二、数据加工处理三、列表格式设置Pandas是数据处理和分析过程中常用的Python包,提供了大量能使我们快速便捷地处理数据的函数和方法,在此主要整理数据分析过程...
    99+
    2023-01-16
    Pandas数据分析 Pandas数据分析函数
  • 相关分析——皮尔逊相关系数、t显著性检验及Python实现
    一、相关分析 (1)衡量事物之间或称变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程。 (2)比如家庭收入和支出、一个人所受教育程度与其收入、子女身高和父母身高的相关性。 二、相关系数 (1)衡量变量之间相关程度的一个量值。 (...
    99+
    2023-09-25
    python 数据分析
  • 如何使用Python对NetCDF数据做空间相关分析
    引言:我一直想理解空间相关分析的计算思维,于是今天又拿起Python脚本和数据来做练习。首先需要说明的是,这次实验的数据和Python脚本均来自于[好久不见]大佬,在跟大佬说明之后,...
    99+
    2022-11-12
  • 怎么使用Python对NetCDF数据做空间相关分析
    这篇文章主要介绍了怎么使用Python对NetCDF数据做空间相关分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python有哪些常用库python常用的库:1.requ...
    99+
    2023-06-14
  • pandas数据分析常用函数有哪些
    小编给大家分享一下pandas数据分析常用函数有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 导入模块import pandas as pd   ...
    99+
    2023-06-01
  • Python数据分析 Numpy 的使用方法
    目录简介多维数组创建数组的数据类型数组维度简介 使用 Python 进行数据分析时,比较常用的库有 Numpy、Pandas、Matplotlib,本篇文章就来说一下 Numpy 的...
    99+
    2022-11-11
  • 大数据分析中,Python的常用关键字有哪些?
    大数据分析是当今互联网时代中极为重要的领域,而Python作为一种高效、易学易用的编程语言,也成为了数据分析领域中的热门工具之一。在Python的使用过程中,有一些常用的关键字,下面我们来详细介绍一下。 import 在Python中,...
    99+
    2023-11-06
    leetcode 大数据 关键字
  • Pandas数据分析常用函数如何使用
    本篇内容介绍了“Pandas数据分析常用函数如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Pandas是数据处理和分析过程中常用的P...
    99+
    2023-07-05
  • NumPy中的线性关系与数据修剪压缩实例分析
    这篇文章主要介绍“NumPy中的线性关系与数据修剪压缩实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“NumPy中的线性关系与数据修剪压缩实例分析”文章能帮助大家解决问题。摘要总结股票均线计算...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作