【数据分析 R语言实战】学习笔记 第五章 数据的描述性分析(下)
5.6 多组数据分析及R实现
5.6.1 多组数据的统计分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | > group= read.csv ( "C:/Program Files/RStudio/002582.csv" ) > group= na.omit (group) #忽略缺失样本 > summary (group) 时间 开盘 最高 2013/08/26: 1 Min. :13.6 Min. :13.9 2013/08/27: 1 1st Qu.:18.2 1st Qu.:18.5 2013/08/28: 1 Median :19.6 Median :19.9 2013/08/29: 1 Mean :20.2 Mean :20.6 2013/08/30: 1 3rd Qu.:21.6 3rd Qu.:22.0 2013/09/02: 1 Max. :35.0 Max. :37.0 (Other) :414 最低 收盘 Min. :13.5 Min. :13.6 1st Qu.:18.0 1st Qu.:18.2 Median :19.3 Median :19.6 Mean :19.8 Mean :20.2 3rd Qu.:21.3 3rd Qu.:21.6 Max. :34.0 Max. :34.6 |
函数var()应用在多组数据上,得到的计算结果是一个协方差阵,其每个元素是各个向量之间的协方差。使用指令cor(group)也得到相同结果。
1 2 3 4 5 6 7 8 | > options (digits=3) > var (group) 时间 开盘 最高 最低 收盘 时间 NA NA NA NA NA 开盘 NA 13.2 13.8 12.6 13.3 最高 NA 13.8 14.6 13.2 14.0 最低 NA 12.6 13.2 12.1 12.8 收盘 NA 13.3 14.0 12.8 13.6 |
协方差的大小在一定程度上反映了变量之间的相互关系,但它还受变量本身度量单位的影响,因此我们还要计算相关系数来度量变量之间的线性相关程度。在R中使用函数cor()计算相关系数矩阵。
cor(x, y = NULL, use = "everything",method = c("pearson", "kendall", "spearman"))
其中,x,y是计算的对象,当x是一个数据框或列表时Y可以省略:use指定如何处理缺失样本:method给出计算i哪一种相关系数:默认的皮尔逊(Pearson )系数度量线性相关性,如果数据呈现的不是线性关系,而是单调的,则可以用肯德尔(Kendall )或斯皮尔曼( Spearman)相关系数,它们描述的是秩相关性。
5.6.2多组数据的图形分析
R中的函数lowess()通过加权多项式回归对散点图进行平滑,拟合一条非线性的曲线,但其只能适用于二维情况。与之类似的loess()用于处理多维情况。
lowess(x, y = NULL, f = 2/3, iter = 3, delta = 0.01 * diff(range(x)))
x,y指定两个向量:f是平滑的跨度,值越大,曲线的平滑程度越高;iter控制应执行的迭代数,值越高平滑越精确,但使用较小的值会使程序跑得比较快。
1 2 3 | > attach (group) > plot (最高~最低) > lines ( lowess (最低,最高),col= "red" ,lwd=2) |
(2)等高线图
有时候数据量很大,散点图上的数据点就会非常集中,不容易看出变量的关系或趋势,这就需要借助二维等高线图来描述。首先利用程序包MASS中的函数kde2d()来估计出二维数据的密度函数,再利用函数contour()画出密度的等高线图。如果不想画出图上的数据标签,可以将参数drawlabels=FALSE去掉。函数kde2d()的使用方法:
kde2d(x, y, h, n = 25, lims = c(range(x), range(y)))
其中x,y分别为横轴和纵轴的数据;n指定每个方向上的网格点数量,可以是标量或长度为2的一个正数向量:参数lims表示横纵轴的范围。
1 2 3 4 | > library (MASS) > ?kde2d > a= kde2d (最低,最高) > contour (a,col= "blue" ,main= "contour plot" ) |
(3)矩阵散点图
多组数据的图形也可以用散点图来展示,不同在于这里是矩阵散点图。对于一个数据框,R中可以直接使用plot()命令或pairs()绘制矩阵散点图。
1 | > pairs (group) |
(4)矩阵图
在处理多组数据时,常将各组数据放在一起进行比较,matplot()可将各变量的散点图放在同一个绘图区域中。
1 | > matplot (group,type= "l" ,main= "matplot" ) |
(5)箱线图
1 | > boxplot (group,cex.axis=.6) |
(6)星图(雷达图)
stars(x, full = TRUE, scale = TRUE, radius = TRUE,labels = dimnames(x)[[1]], locations = NULL,nrow = NULL, ncol = NULL, len = 1,key.loc = NULL, key.labels = dimnames(x)[[2]],key.xpd = TRUE,xlim = NULL, ylim = NULL, flip.labels = NULL,draw.segments = FALSE,col.segments = 1:n.seg, col.stars = NA, col.lines = NA,axes = FALSE, frame.plot = axes,main = NULL, sub = NULL, xlab = "", ylab = "",cex = 0.8, lwd = 0.25, lty = par("lty"), xpd = FALSE,mar = pmin(par("mar"),1.1+ c(2*axes+ (xlab != ""),2*axes+ (ylab != ""), 1, 0)),add = FALSE, plot = TRUE, ...)
(7)折线图
需要自定义函数
(8)调和曲线图
需要自定义函数
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· 我干了两个月的大项目,开源了!
· 千万级的大表,如何做性能调优?
· 盘点!HelloGitHub 年度热门开源项目
· Phi小模型开发教程:用C#开发本地部署AI聊天工具,只需CPU,不需要GPU,3G内存就可以运行,
· 你所不知道的 C/C++ 宏知识——基于《C/C++ 宏编程的艺术》