R语言主成分分析

2023-10-31

head(swiss)#查看数据

cor(swiss)#查看相关性矩阵


方阵中绝对值最小的是0.06085861,比0.05大,因此swiss中变量相互之间均有或强或弱的相关关系,这份数据适合做主成份分析。

由于变量的量纲不同会使主成份得分系数的可解释性变差,使结果受到量纲大的变量影响,而忽略量纲较小的变量,所以对数据进行标准化,使每个变量都服从均值为0,方差为1的正态分布

std.swiss<-scale(swiss[1:6])

head(std.swiss)


p<-princomp(std.swiss,cor=TRUE)#构建主成份分析模型,cor为true表示用样本的相关矩阵做主成分分析,默认false则使用样本的协方差矩阵做主成分分析

summary(p,loadings=TRUE)


其中importance of components中的standard deviation行给出了6个主成分的标准差;proportion of variance行给出了主成份的方差贡献率;cumulative proportion行给出了方差累计贡献率。

方差贡献率用于体现每个主成分对原始数据中信息的解释能力。第一个主成分的方差贡献率是0.5332928,即第一个主成分能够解释原数据中53.32%的信息,第二个主成分能解释原数据19.8%的信息,....,六个加起来解释能力为百分之百

由于loadings设置为真,所以R同时返回各个主成分对应的系数,根据给出的系数,列出两个主成分的表达式:

Y2=0.300*fer-0.412*agr+0.125*exa+0.179*rdu+0.146*cat+0.811*inf

Y1=-0.457*fer-0.424*agr+0.51*exa+0.454*edu-0.35*cat-0.15*inf


screeplot(p,type='lines')#画出碎石图


从图中可以看出,从第四个变量之后,斜率开始趋于0,所以,主成分取2~4个是比较合适的


pre<-predict(p)#计算主成分得分
head(pre)

y<-eigen(cor(std.swiss))#计算特征值和特征向量
y
y1<-y$values[1]
y2<-y$values[2]
y3<-y$values[3]
y4<-y$values[4]
scores<-(y1*pre[,1]+y2*pre[,2]+y3*pre[,3]+y4*pre[,4])/(y1+y2+y3+y4)
head(scores)#将主成分得分与样本数据的特征向量做内积可得综合得分,由于前四个变量可解释数据的大部分信息,故选前四个为主成分计算


courtelary城市得分最高,franches-mnt得分最低,故前者发展的最好,后者最差


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R语言主成分分析 的相关文章

  • R中的一元加/减是什么?

    来自 R 的详细信息部分Syntax http stat ethz ch R manual R patched library base html Syntax html帮助页面 定义了以下一元和二元运算符 他们被列出 在优先级组中 从最高
  • R foreach问题(某些进程返回NULL)

    我遇到了问题foreach我正在 R 中使用的程序的一部分 该程序用于运行不同参数的模拟 然后将结果返回到单个列表 然后用于生成报告 当并非所有分配的模拟运行都在报告上实际可见时 就会出现问题 从各方面来看 似乎只有分配的运行的一个子集实际
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • API 请求和curl::curl_fetch_memory(url, handle = handle) 中的错误:SSL 证书问题:证书已过期

    几天前 我运行了代码几个月 没有任何问题 GET url myurl query 今天我遇到一个错误 Error in curl curl fetch memory url handle handle SSL certificate pro
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 将数据框中重叠的范围合并到唯一的组中

    我有一个 n 行 3 的数据框 df lt data frame start c 178 400 983 1932 33653 end c 5025 5025 5535 6918 38197 group c 1 1 2 2 3 df sta
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 使用 ggmap 截断密度多边形

    我在使用 R ggmap 绘制密度图时遇到问题 我的数据如下所示 gt head W date lat lon dist 1 2010 01 01 31 942 86 659 292 415 2 2010 01 10 32 970 84 1
  • read_html(url) 和 read_html(content(GET(url), "text")) 之间的区别

    我正在看这个很棒的答案 https stackoverflow com a 58211397 3502164 https stackoverflow com a 58211397 3502164 解决方案的开头包括 library httr
  • R“错误:“}”中出现意外的“}”[重复]

    这个问题在这里已经有答案了 我有一个字符串变量 对于缺少数据的情况 它具有 空值 我想将 空值 重新编码为缺失 而不是说 空值 我正在尝试编写一个循环来删除这些 空值 条目 但我不断收到错误 错误 中出现意外的 for row in dat
  • applyStrategy 错误

    我是R新手 最近运行后遇到以下错误applyStrategy函数来自quantstrat包裹 Error in eval expr envir enclos object signal not found Error in colnames
  • 条件字体颜色 R Markdown

    我无法找到一种方法来根据变量的值 gt 0 0 或 r setup include FALSE x lt 4 This is an R Markdown document r if x gt 0 textcolor red Markdown
  • 使用 template.docx 从 Shiny App 编织 Word 文档

    我正在尝试使用 template docx 文件从闪亮的应用程序编写一个 Word 文档 我收到以下错误消息 pandoc exe template docx openBinaryFile 不存在 没有这样的文件或目录 以下 3 个文件当前
  • 如何修复 R 中 Kaplan Meier 图的风险表计算错误

    以下是一个数据帧 其中 6 个参与者中的每一个都有唯一的 record ID 我想绘制一个生存分析图 其中包含感兴趣事件的复发以及在时间间隔 tstart 到 tstop 内 暴露 药物剂量 数值变量 的时间依赖性协变量 每个参与者的最大
  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对
  • 线性判别分析图

    如何将样本 ID 行号 作为标签添加到此 LDA 图中的每个点 library MASS ldaobject lt lda Species data iris plot ldaobject panel function x y points

随机推荐

  • qt实现简单的聊天页面(纯页面)

    我是模仿qq页面来做的 这是效果图 很简陋 基础的一些部分都比较简单 写一些对我来讲是难点或者有意思的东西吧 记录一些 1 这里的 开心 是使用painter画上去的 因为右边已经有图标了 所以不太好使用QLabel来进行绘制 QPaint
  • MacBook外接显示器设置方法(新手入门贴)

    小屏幕的MacBook MacBook Pro放在桌上长时间使用 眼睛比较累 而且 长时间低头看屏幕 易得颈椎病 绝对有损健康 配一台大屏幕的外置显示器不失为两全其美的好办法 首先 得买一台中意的大屏幕LED显示器 废话undefined
  • steam植物大战僵尸汉化补丁使用教程

    植物大战僵尸作为小时候印象最深的游戏之一 上线便收获了一大波人的喜爱与好评 仍至今日 还有许多小伙本们沉浸其中 不过steam版本并不支持简体中文语言 网络上面虽然一大堆但都是很久之前的 会出现一些黑屏的问题 所以小编此次带来了steam植
  • ILSVRC竞赛详细介绍(ImageNet Large Scale Visual Recognition Challenge)

    ILSVRC ImageNet Large Scale Visual Recognition Challenge 是近年来机器视觉领域最受追捧也是最具权威的学术竞赛之一 代表了图像领域的最高水平 ImageNet数据集是ILSVRC竞赛使用
  • QT使用ODBC连接MySQL

    本文主要讲述QT使用ODBC连接MySQL数据库的过程 第一步 下载连接工具 链接如下 https cdn mysql com Downloads Connector ODBC 8 0 mysql connector odbc 8 0 28
  • vmware17:下载安装

    1 访问vm官网下载vm17安装包 下载 VMware Workstation Pro CN 选择windows下载 下载成功后 双击装包安装 直接下一步安装 勾选接受许可条款下一步 更改安装路径 继续下一步 最后点击安装 最后等待完成输入
  • 线程的属性 —— 分离的状态(detached state)、栈地址(stack address)、栈大小(stack size)

    参考 四十二 线程 线程属性 作者 FadeFarAway 发布时间 2017 01 17 14 09 55 网址 https blog csdn net FadeFarAway article details 54576771 目录 引入
  • 科技云报道:生成式AI已成为企业新兴风险,但我们不应该因噎废食

    科技云报道原创 2023年 生成式AI技术破茧成蝶 引发了一场全球范围的数字革命 从最初的聊天 下棋开始 到医疗 金融 制造 教育 科研等 生成式AI表现出了强大的创造力和无限潜力 据不完全统计 截至今年8月底 全国已经发布了逾百个行业AI
  • cccccc

    Source code recreated from a class file by IntelliJ IDEA powered by FernFlower decompiler package com gb soa omp ccommon
  • idea找不到版本的可能性总结

    当spring boot starter parent下面的版本报红时并不是这个版本不存在 而是因为idea会默认缓存Maven本地仓库已存在的中的依赖项 只是我们引入的的父依赖版本 本地仓库中不存在 所以就报错了 解决方案就是我们清除一下
  • 【Pytorch with fastai】第 3 章 :数据伦理

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Linux 篇:Linux定时任务

    什么是crond crond是linux用来定期执行命令或指定程序任务的一种服务 安装完操作系统后 默认会启动crond任务调度服务 crond服务会定期检查系统中是否有要执行的任务 如果有要执行的任务便会自动执行该任务 crond定时任务
  • Oracle数据库DBA权限回收操作参考

    1 基本操作指令 查看当前系统 ORACLE SID linux su oracle cat etc oratab orcl oracle app oracle product 11 2 0 dbhome 1 N crm oracle ap
  • 网络层协议介绍

    网络层的功能 1 定义了基于IP协议的逻辑地址 2 链接不同的媒介类型 3 选择数据通过网络的最佳路径 IP数据包格式 数据封装的时候在网络层会封装ip地址的头部 形成ip数据包 IP数据包格式 分为20字节的固定部分 表示每个ip数 据包
  • python压缩文件夹下的文件及子文件夹

    压缩某一文件夹下的所有文件 python import os import zipfile def is child dir dir1 dir2 if dir1 dir2 return True return dir1 startswith
  • stat函数详解

    Linux系统函数之文件系统管理 二 stat函数 作用 获取文件信息 头文件 include
  • 【Matlab】基于SVM支持向量机的时间序列预测(Excel可直接替换数据)

    Matlab 基于SVM支持向量机的时间序列预测 Excel可直接替换数据 1 模型原理 2 文件结构 3 Excel数据 4 分块代码 5 完整代码 6 运行结果 1 模型原理 基于支持向量机 Support Vector Machine
  • HCIPR&S223-V2.5一些总结

    1 下列关于DHCP Server仿冒者攻击说法正确的是 多选 AC A DHCP Server仿冒者攻击通过仿冒DHCP服务器向终端下发错误的IP地址和网络参数 导致用户无法上网 B 华为交换机接口下开启DHCP snooping功能后默
  • elementui的轮播图

    需求是需要把左右切换分页的大小于号放在轮播图外面 涉及到了一些问题 1 实现思路 2 绝对定位垂直居中 3 需要覆盖一些组件里的样式 直接给设置样式无法覆盖 解决1 实现思路 没有找到插件原生的方法 于是看了一遍文章 制作两个div装着图片
  • R语言主成分分析

    head swiss 查看数据 cor swiss 查看相关性矩阵 方阵中绝对值最小的是0 06085861 比0 05大 因此swiss中变量相互之间均有或强或弱的相关关系 这份数据适合做主成份分析 由于变量的量纲不同会使主成份得分系数的