【數據分析 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)調和曲線圖

需要自定義函數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM