Python进行数据相关性分析实战

简介: 平时在做数据分析的时候,会要对特征进行相关性分析,分析某些特征之间是否存在相关性。本文将通过一个实例来对数据进行相关性分析与展示。

平时在做数据分析的时候,会要对特征进行相关性分析,分析某些特征之间是否存在相关性。本文将通过一个实例来对数据进行相关性分析与展示。

一、数据集介绍

本次分析的是企业合作研发模式效果分析,企业的合作研发大致分为 企企合作、企学合作、企研合作、企学研合作,也就是企业与企业合作研发、企业与大学合作研发、企业与研究所合作研法、企业联合学校、研究所共同合作研发。现在就是想通过数据分析来看看那种合作研发模式的效果最好,产出最佳。

数据集是从公开网站获取的公开的专利信息,包括专利的公告日期、专利评分、专利估值,这些指标说明了专利的价值。
专利数据集

二、数据整理和探索

有了数据后先对数据进行整理,在这里我们用II表示企企合作、IU表示企学合作、IR表示企研合作、IUR表示企学研合作。
先导入python数据分析三大件numpy、pandas、matplotlib

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题

对数据进行整理,将“有效”的数据检索出来,将合作研发的模式标识出来

II_data_original=pd.read_excel(r'./data/绿色低碳专利企企合作申报总数据_21578_2023-03-11.xlsx') #企企合作
IU_data_original=pd.read_excel(r'./data/绿色低碳专利企学合作申报总数据_6451_2023-03-11.xlsx')  #企学合作
IR_data_original=pd.read_excel(r'./data/绿色低碳专利企研合作申报总数据_1706_2023-03-11.xlsx')  #企研合作
IUR_data_original=pd.read_excel(r'./data/绿色低碳专利企学研合作申报总数据_241_2023-03-11.xlsx')  #企学研合作
II_data_original['class_type']='II'
IU_data_original['class_type']='IU'
IR_data_original['class_type']='IR'
IUR_data_original['class_type']='IUR'
data_original=II_data_original.append([IU_data_original,IR_data_original,IUR_data_original])
data_original=data_original[(data_original.法律有效性=='有效')]
data_original

合作研发的模式标识
对日期进行处理,我们以年度为单位来分析每年各企业合作研发模式的数据,所以将日期处理成“年”为单位。

#处理日期
data_original['date']=pd.to_datetime(data_original['公开(公告)日'],format="%Y%m%d")
data_original['year']=data_original['date'].dt.strftime('%Y')
data_original

年份标签

我们只需要分析相应的专利质量的指标,这里与专利质量相关的指标大致为引文数量、专利估值、专利评分。然后以年度为单位来看看数据。

data_group=data_original.groupby(['year','class_type']).size()
df_data_group=data_group.unstack()
data_group_count=data_original.groupby(['year']).size()
data_group_quotecount=data_original[['year','引文数量总计']].groupby(['year']).sum()  #引文数量
data_group_value=data_original[['year','专利估值']].groupby(['year']).mean() #专利估值
data_group_grade=data_original[['year','专利评分']].groupby(['year']).mean() #专利评分grade
df_data_group['count']=data_group_count
df_data_group['quotecount']=data_group_quotecount
df_data_group['value']=data_group_value
df_data_group['grade']=data_group_grade
df_data_group

合作研发数据

历年(2004-2022年)专利的合作模式的专利数量增长趋势

df_data_group.plot.bar(y=['II','IR','IU','IUR'],figsize=(32,4),stacked=True)

合作模式的专利数量增长趋势

历年(2015-2022年)的合作模式的专利数量对比情况

df_data_group['2015':'2022'].plot.bar(y=['II', 'IR', 'IU', 'IUR'], figsize=(32, 4))

合作模式的专利数量对比情况

从数据上可以看出,从2004年-2021年前些年,企业的研发模式是比较单一的,2004-2008年大部分都是企企合作的研发模式,其他研发模式先对比较少。从2004年-2021年,随着我国企业对研发的投入力度也来越大,专利的数量是逐年递增的,研发模式也逐步的多样化起来,但还是以企企合作和企学合作为主。

三、数据相关性分析与展示

因为从数据上看,从2015年以后各种研发模式逐步的多样化起来,所以我们来看一下2015年以后研发模式与研发质量各项指标的相关性。
通过numpyde的corrcoef()方法可以很方便的计算出各个特征之间的相关性系数,得出相关性矩阵。

ruslut=np.corrcoef(df_data_group['2015':'2022'],rowvar=False)
ruslut

相关性矩阵

看数据肯定没有看图形直观,所以我们将这个相关性矩阵进行可视化的展示。这里用seaborn来做数据的图形化展示。

import seaborn as sns
figure, ax = plt.subplots(figsize=(12, 12))
df=df_data_group['2015':'2022']
sns.heatmap(df.corr(), square=True, annot=True, ax=ax)

相关性矩阵图形化展示

这里可以看出企企合作和企学合作的数量相关性比较高,而企研合作value和grade具有相关性,说明企研合作模式的研发质量相对来说比较好。

最后,我们来看一下专利TOP20的单位研发类型分布、估值TOP20的专利的研发类型分布、评分TOP20的专利、研发类型的分布。

data_countbyComp=data_original[['第一申请人-原文','class_type']].groupby(['第一申请人-原文']).size()
df_data_countbyComp=pd.DataFrame(data_countbyComp,columns=['counts'])
df_data_countbyCompTOP=df_data_countbyComp.sort_values('counts',ascending=False)[0:10]
count_top=data_original[(data_original['第一申请人-原文'].isin(df_data_countbyCompTOP.index.values))]
value_top=data_original.sort_values('专利估值',ascending=False)[0:10]
grade_top=data_original.sort_values('专利评分',ascending=False)[0:10]
count_top_show=count_top.groupby(['class_type']).size()
value_top_show=value_top.groupby(['class_type']).size()
grade_top_show=grade_top.groupby(['class_type']).size()
grade_top_show.index.values
fig, axs = plt.subplots(1, 3,figsize=(18, 18))
axs[0].pie(count_top_show,labels=count_top_show.index.values,autopct='%.2f%%',explode=(0.05,0, 0, 0))
axs[0].set(title='数量TOP20的单位,研发类型分布')
axs[1].pie(value_top_show,labels=value_top_show.index.values,autopct='%.2f%%',explode=(0, 0, 0.05))
axs[1].set(title='估值TOP20的专利,研发类型分布')
axs[2].pie(grade_top_show,labels=grade_top_show.index.values,autopct='%.2f%%',explode=(0.05, 0, 0))
axs[2].set(title='评分TOP20的专利,研发类型分布')

分布图

这里可以看出数量上还是以企企合作研发的模式最多,但是从专利的估值评分来看企学的专利估值占比最高。说明从 企企合作、企学合作、企研合作、企学研合作的这些企业合作研发模式看,企企合作研发数量最多,企学合作研发的质量相对较高。

至此,本文通过一个实例介绍了用python通过数据分析三件套numpy、pandas、matplotlib进行数据相关性分析的过程。


作者博客:http://xiejava.ishareread.com/

目录
相关文章
|
1天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
22 12
|
4天前
|
存储 数据采集 数据库
Python爬虫实战:股票分时数据抓取与存储
Python爬虫实战:股票分时数据抓取与存储
|
6天前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
从零开始:用Python爬取网站的汽车品牌和价格数据
|
18天前
|
并行计算 安全 Java
Python GIL(全局解释器锁)机制对多线程性能影响的深度分析
在Python开发中,GIL(全局解释器锁)一直备受关注。本文基于CPython解释器,探讨GIL的技术本质及其对程序性能的影响。GIL确保同一时刻只有一个线程执行代码,以保护内存管理的安全性,但也限制了多线程并行计算的效率。文章分析了GIL的必要性、局限性,并介绍了多进程、异步编程等替代方案。尽管Python 3.13计划移除GIL,但该特性至少要到2028年才会默认禁用,因此理解GIL仍至关重要。
97 16
Python GIL(全局解释器锁)机制对多线程性能影响的深度分析
|
27天前
|
缓存 Rust 算法
从混沌到秩序:Python的依赖管理工具分析
Python 的依赖管理工具一直没有标准化,主要原因包括历史发展的随意性、社区的分散性、多样化的使用场景、向后兼容性的挑战、缺乏统一治理以及生态系统的快速变化。依赖管理工具用于处理项目中的依赖关系,确保不同环境下的依赖项一致性,避免软件故障和兼容性问题。常用的 Python 依赖管理工具如 pip、venv、pip-tools、Pipenv、Poetry 等各有优缺点,选择时需根据项目需求权衡。新工具如 uv 和 Pixi 在性能和功能上有所改进,值得考虑。
84 35
|
28天前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
251 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
28天前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
56 20
|
1月前
|
数据采集 缓存 API
python爬取Boss直聘,分析北京招聘市场
本文介绍了如何使用Python爬虫技术从Boss直聘平台上获取深圳地区的招聘数据,并进行数据分析,以帮助求职者更好地了解市场动态和职位需求。
|
1月前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
106 61
Python装饰器实战:打造高效性能计时工具
|
1月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
75 16
Python时间序列分析:使用TSFresh进行自动化特征提取

热门文章

最新文章

推荐镜像

更多