当前位置: 首页 > news >正文

用python使用主成分分析数据

import pandas as pd  #导入处理二维表格的库
import numpy as np   #导入数值计算的库
from sklearn.preprocessing import StandardScaler  #导入数据标准化模块
import matplotlib.pyplot as plt         #导入画图的包
from sklearn.decomposition import PCA    #导入主成分分析的类

# 导入数据
data_FI=pd.read_excel(r"C:\Users\a2044\Desktop\Subject document\大数据\投资学\FI.xlsx")
data_FI.head(5)#展示数据前5行

# 数据预处理
scaler=StandardScaler()  #实例化标准处理的类
standard_FI=pd.DataFrame(scaler.fit_transform(data_FI))#标准化数据:Standard_FI=(data_FI-μ)/σ

# 确认重要的变量M:变量方差大(因为方差小的变量去掉了,不会有什么影响,方差小的变量之间的相关性大,可以相互替代)
pca=PCA(n_components=13)#百分百,先不去掉指标,即13个指标都要
reduced_x=pca.fit_transform(standard_FI)#对标准化后的数据进行主成分分析
covper=pca.explained_variance_           #把主成分分析指标的方差存储
covper=pd.DataFrame(np.round(covper,3))   #处理数据,保留方差三位有效数字

plt.plot(covper,'b*--')#画出碎石图
plt.xlabel('Component')#指标
plt.ylabel('Variance')#方差
plt.show()

pca=PCA(n_components=5)#重新实例化PCA,只取5个方差比较大的指标,对平均值影响大
reduced_x=pca.fit_transform(standard_FI)#对标准化后的数据进行主成分分析
covper=pca.explained_variance_           #把主成分分析指标的方差存储
covper=pd.DataFrame(np.round(covper,3))   #处理数据,保留方差三位有效数字

plt.plot(covper,'rx-')
plt.xlabel('Component')#指标
plt.ylabel('Variance')#方差
plt.show()

result=pd.DataFrame(np.round(reduced_x,3))
result.head(10)

# 新生成的5个指标与13个指标的权重关系
coefficient=pd.DataFrame(np.round(pca.components_,3),columns=data_FI.columns)
coefficient.head(10)#行名为主成分,列名为指标名,里面的数据为系数(载荷因子);主成分为指标的线性组合

http://www.lryc.cn/news/353483.html

相关文章:

  • 用WPS将多张图片生成一个pdf文档,注意参数设置
  • virtual box ubuntu20 全屏展示
  • react中的数据驱动视图,useState()的使用
  • 金融数据库,实时行情,股票财务数据在线查询
  • 开源模型应用落地-LangSmith试炼-入门初体验-数据集评估(三)
  • 设计模式 15 Decorator Pattern 装饰器模式
  • cuda11.8安装torch2.0.1
  • 新手困 ViewModel与Activting的databinding2个对象 区别
  • Cocos Creator 声音播放与管理详解
  • 今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 5月26日,星期日
  • IDEA快速生成类注释和方法注释的方法
  • [集群聊天服务器]----(七)业务模块之一对一聊天、添加好友函数、好友类以及离线消息类
  • java中使用jedis连接redis
  • 【多线程开发 2】从代码到实战TransmittableThreadLocal
  • 【车载以太网测试从入门到精通】——SOME/IP协议测试
  • 作业39 sqrt应用
  • springboot 实现跨域的几种方式
  • springmvc Web上下文初始化
  • Verilog实战学习到RiscV - 2 : wire 和 reg 的区别
  • OpenGL给定直线起点和终点不同的颜色,使用中点Bresenham画线
  • IT行业的现状与未来发展趋势:从云计算到量子计算的技术变革
  • 电脑远程控制另一台电脑怎么弄?
  • 软件设计师备考 | 案例专题之面向对象设计 概念与例题
  • UniApp 2.0可视化开发工具:引领前端开发新纪元
  • 前端调用浏览器录音功能且生成文件(vue)
  • 「大数据」Kappa架构
  • 详细分析Element Plus中的ElMessageBox弹窗用法(附Demo及模版)
  • Python自动化工具(桌面自动化、Web自动化、游戏辅助)
  • opencv进阶 ——(五)图像处理之马赛克
  • 电机控制系列模块解析(22)—— 零矢量刹车