• 【数据分析 R语言实战】学习笔记 第五章 数据的描述性分析(下)


    5.6 多组数据分析及R实现

    5.6.1 多组数据的统计分析

    > 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)也得到相同结果。

    > 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控制应执行的迭代数,值越高平滑越精确,但使用较小的值会使程序跑得比较快。

    > 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表示横纵轴的范围。

    > library(MASS)
    > ?kde2d
    > a=kde2d(最低,最高)
    > contour(a,col="blue",main="contour plot")

     

    (3)矩阵散点图

    多组数据的图形也可以用散点图来展示,不同在于这里是矩阵散点图。对于一个数据框,R中可以直接使用plot()命令或pairs()绘制矩阵散点图。

    > pairs(group)

    (4)矩阵图

    在处理多组数据时,常将各组数据放在一起进行比较,matplot()可将各变量的散点图放在同一个绘图区域中。

    > matplot(group,type="l",main="matplot")

    (5)箱线图

    > 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)调和曲线图

    需要自定义函数

     

  • 相关阅读:
    主机连接虚拟机redis 服务器
    在dockers中调试dump的dotnet程序
    我的devops实践经验分享一二
    【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--请求处理结果适配篇(7/8)
    【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--参数自动映射篇(6/8)
    【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--请求处理函数装饰器注册篇(5/8)【controller+action】
    【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--控制器和处理函数的注册篇(4/8)【controller+action】
    【nodejs】让nodejs像后端mvc框架(asp.net mvc )一样处理请求--控制器的声明定义和发现篇(3/8)
    【nodejs】让nodejs像后端mvc框架(asp.net mvc )一样处理请求--路由限制及选择篇(2/8)【route】
    【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--目录(8/8 完结)
  • 原文地址:https://www.cnblogs.com/jpld/p/4514214.html
Copyright © 2020-2023  润新知