R語言系列----數據描述


 

簡單來說,R語言是一種主要用於統計分析、繪圖的語言和操作環境。的源代碼可自由下載使用,亦有已編譯的執行檔版本可以下載,可在多種平台下運行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同時有人開發了幾種圖形用戶界面。

       為什么我會使用R語言呢?畢竟我們還有SPSS,SAS,S等其他工具。就我個人而言(其實對很多人也是這樣)有兩個原因----R的開源與其極高的自由度。

       R是開源的,是屬於GNU系統的一個自由、免費、源代碼開放的軟件因此在使用它時我們不用擔心使用的資格問題。(當然對人一般人來說其他軟件也可以使用盜版…起碼國內是這樣)另外作為一種語言,R擁有極高的自由度----對於,很多新的統計學模型,也許SPSS等軟件根本無法處理---你只能使用系統提供的有限選項。但是在R語言中,你可以自己去實現它。這也是學術界對R如此關注的原因。

       敲了這么多廢話,進入正題。

       這一篇的內容是數據描述,就沖R中內嵌的一些簡單分布開始吧。

R語言中提供了四類有關統計分布的函數(密度函數,累計分布函數,分位函數,隨機數函數)。分別在代表該分布的R函數前加上相應前綴獲得(d,p,q,r)。如正態分布的函數是norm,命令dnorm(0)就可以獲得正態分布的密度函數在0處的值(0.3989)(默認為標准正態分布)。同理pnorm(0)是0.5就是正態分布的累計密度函數在0處的值。而qnorm(0.5)則得到的是0,即標准正態分布在0.5處的分位數是0(在來個比較常用的:qnorm(0.975)就是那個估計中經常用到的1.96了)。最后一個rnorm(n)則是按正態分布隨機產生n個數據。上面正態分布的參數平均值和方差都是默認的0和1,你可以通過在函數里顯示指定這些參數對其進行更改。如dnorm(0,1,2)則得出的是均值為1,標准差為2的正態分布在0處的概率值。要注意的是()內的順序不能顛倒。

       接下來我們用R來生成一個二項分布分布的圖形吧。

       binom是二項分布。

n<-20

p<-0.2

k<-seq(0,n)

plot(k,dbinom(k,n,p))

       R語言中用<-給變量賦值,我們先讓n=20,p=0.2然后用函數seq生成一個向量(1,2,3...20)並將其賦於k。然后用polt函數畫圖。

       在這里,我們用dbinom(k,n,p)生成了參數為n,p的二項分布在1….20處的概率值,然后以k的各個值為橫坐標,dbinom(k,n,p)的各個值為縱坐標,繪圖。

然后我們來看一些R對數據性質的描述。

繪制直方圖:hist(x),橫軸表示變量取值,縱軸表示頻率。

       如x<-c(1,2,3,4,5)

 hist(x)

       (R語言中的向量前要求加c進行說明,故第一步是讓x為一個值為(1,2,3,4,5)的向量,當然也可以看成一個值為1,2,3,4,5的樣本)

       我們來畫二項分布的直方圖吧

       N<-10000

n<-100

p<-0.9

x<-rbinom(x,n,p)

hist(x)

       思考一下,上面的代碼是怎樣運作的?

 

繪制莖葉圖: stem(x)

如:x<-c(11,12,13,21,22,23)

stem(x)

結果如下:

The decimal point is 1 digit(s) to the right of the |

 

  1 | 123

  1 |

2 | 123

 

另外還有

盒圖:boxplot(x)

 

在各種圖形之后,就是對數據的數值型描述了,包括

最大值max(x),最小值min(x),中位數median(x),五個分位數fivenum(x),平均數mean(x),樣本方差var(x),樣本標准差sd(x),樣本偏度系數skewness(x),峰度系數kurtosis(x)等等。

如:N<-10000

n<-100

p<-0.9

x<-rbinom(x,n,p)

       max(x)

min(x)

median(x)

fivenum(x)

mean(x)

var(x)

sd(x)

library(fBasics)

skewness(x)

kurtosis(x)

就可以得到生成的隨機數據的各種描述。

注意:skewness函數和kurtosis函數屬於一個並非默認的fBasics的包,所以需要先用library(fBasics)引入該包才能使用這兩個函數。

 

基本的就是這些了,當然還可以更加復雜,比如多組數據的圖形與數值描述等等。即使是我們在上面使用的函數其實也是非常強大的,只是我們在上面使用了很多的默認的參數而簡化了它們的調用而以。


免責聲明!

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



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