R語言資料分析系列之六

來源:互聯網
上載者:User

標籤:r語言   資料分析   

R語言資料分析系列之六—— by comaple.zhang

上一節講了R語言作圖,本節來講講當你拿到一個資料集的時候如何下手分析,資料分析的第一步,探索性資料分析。

統計量,即統計學裡面關注的資料集的幾個指標,常用的如下:最小值,最大值,四分位元,均值,中位元,眾數,方差,標準差,極差,偏度,峰度

先來解釋一下各個量得含義,淺顯就不說了,這裡主要說一下不常見的

眾數:出現次數最多的

方差:每個樣本值與均值的差得平方和的平均數

標準差:又稱均方差,是方差的二次方根,用來衡量一個資料集的集中性

極差:最大值與最小值只差

偏度:相對於常態分佈而言如果波峰出現在左邊,就表明長尾出現在右邊,成為右偏態(正偏態)偏度值>0,分布反之為左偏太(負偏態)偏度值<0

峰度:也是相對於正太分布的,常態分佈的峰度為3,如果峰度>3圖形越胖,越矮,稱為厚尾,峰度<3 圖形越瘦,越高,稱為瘦尾

 

本節資料集:

我們採用MASS包的Insurance資料集,該資料集為某保險公司的車險資料。

"District"  "Group"    "Age"      "Holders"  "Claims" 

按列一次表示:家庭住址地區,投保汽車排量,投保人年齡,投保人數量,要求索賠的數量

安裝包與載入資料集:

install.pacakges('MASS') # 安裝包library(MASS) #載入包data(Insurance) # 載入資料集ins <- Insurance #拷貝一份資料


 

探索行資料分析

 R包內建的函數summary可以給出資料的概括:

summary(ins)

District   Group       Age        Holders            Claims     

 1:16    <1l   :16   <25 :16   Min.   :  3.00   Min.   : 0.00 

 2:16    1-1.5l:16   25-29:16   1st Qu.: 46.75   1st Qu.:  9.50 

 3:16    1.5-2l:16   30-35:16   Median : 136.00   Median : 22.00 

 4:16    >2l   :16   >35 :16   Mean   : 364.98  Mean   : 49.23 

                                 3rd Qu.:327.50   3rd Qu.: 55.50 

                                 Max.   :3582.00  Max.   :400.00

 

我們發現對於因子類型向量該方法給出了頻度分布,對於連續型變數該方法給出了,最小值,第一四分位元,中位元,均值,第三四分位元,最大值

從結果中我們可以看到Holders列的資料中位元明顯遠小於均值,這說明這個資料集是個偏資料集,整體資料集中在3——327.5之間,我們可以通過點圖來繼續查看:

 

plot(ins$Holders)


 

點圖看的可能不是很直觀,我們期望直觀的看到資料的變化,可以通過長條圖來展示:

col <- c(brewer.pal(9,'YlOrRd')[1:9])h<-hist(ins$Holders,breaks=12,col=col)xfit <-seq(min(ins$Holders),max(ins$Holders),length=40)yfit <-dnorm(xfit,mean=mean(ins$Holders),sd=sd(ins$Holders))yfit <- yfit*diff(h$mids[1:2]) *length(ins$Holders)lines(xfit,yfit,col='red',lwd=2)


 

 

方差與標準差

來計算Holders列的方差和標準差:

var(ins$Holders)sd(ins$Holders)


其實單變數的方差和標準差是沒有太大意義的,對比才可以看出資料集的異同。

如果我們要分析使用者按照年齡分組後的統計值該如何計算呢,aggregate函數為我們提供了很好的方法如下:

agg<-aggregate(ins[4:5],by=list(age=ins$Age),sd)pie(agg$Claims,labels=agg$age)agg


 

   age   Holders    Claims

1  <25  80.41797  16.55181

2 25-29 141.11414  22.63184

3 30-35 177.34353  24.23694

4  >35 941.66603 103.52228

 

相當於按照age列 group by 後的分組統計量。


偏度和峰度:

為了計算偏度和峰度我們可以自己實現函數stat如下:

 

stat <- function(x,na.omit=F){ if(na.omit)  x <- x[!is.na(x)]  m<- mean(x)  n<- length(x)  s<- sd(x) skew <- sum((x-m)^3/s^3)/n kurt <- sum((x-m)^4/s^4)/n - 3 return(c(n=round(n),mean=m,stdev=s,skew=skew,kurtosis=kurt))} sapply(ins[4:5],stat)


 

 

 

           Holders    Claims

n        64.000000 64.000000

mean    364.984375 49.234375

stdev   622.770601 71.162399

skew      3.127833  2.877292

kurtosis 10.999610  9.377258

 

我們可以看到,Holders和Claims的偏度都是大於零的,那麼就是說明,這兩個變數都是正偏態分布也就是說資料偏向左邊,而峰度值都很高,那麼說明這兩個變數都存在離群點。

同理我們可以利用箱型圖來觀察,上節已經介紹過了這裡不再贅述。

R語言資料分析系列之六

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.