標籤:產生 parent mit 錯誤 pack 其他 也會 不同 rsa
探索性分析簡稱EDA
一、基本描述性統計量
1.summary函數
可以得到最大值、最小值、中位元和均值
2.四分位元
四分位元可以通過quantile函數得到,diff得到各分位元的之差
> library(RSADBE)
> data("TheWALL")
> quantile(TheWALL$Score)
> diff(quantile(TheWALL$Score))
3.極值
range返回最大值和最小值
4.極差
diff(range())返回極差
5.四分位間距
IQR函數返回四分位間距
二、莖葉圖和長條圖
1.莖葉圖
可以使用base包的stem函數和alpack包的stem.leaf.backback函數實現
2.長條圖
長條圖可以通過hist函數和histogram函數實現,我們使用galton資料作為舉例
> data(galton)
> par(mfrow=c(2,2))
> hist(galton$parent,breaks="FD",xlab="Height of Parent", main="Histogram for Parent Height with Freedman-Diaconis Breaks",xlim=c(60,75))
> hist(galton$parent,xlab="Height of Parent",main= "Histogram for Parent Height with Sturges Breaks",xlim=c(60,75))
> hist(galton$child,breaks="FD",xlab="Height of Child", main="Histogram for Child Height with Freedman-Diaconis Breaks",xlim=c(60,75))
> hist(galton$child,xlab="Height of Child",main="Histogram for Child Height with Sturges Breaks",xlim=c(60,75))
此外,還有一些選項可以對長條圖進行設定,這些選項適用於大多數圖形命令
col:圖形顏色
main:圖形標題
xlab:X軸標題
ylab:Y軸標題
xlim:X軸範圍
ylim:Y軸範圍
break:設定長條圖的分割範圍
freq:邏輯選項,TRUE為產生頻率資料,FALSE為產生機率密度資料
三、密度函數圖
連續隨機變數更多都是通過密度函數圖來描述,通過density()函數,可以得到資料的密度估計,其結果是一系列x和y的座標,可以通過這些座標繪製密度函數圖,該函數的格式如下
density(data,bw="",kernel="",na.rm=FALSE)
其中,data要求為向量類型,bw為資料的密度核心估計,kernel為平滑種類,na.rm為對NA值的處理,預設為不移除NA值,但是如果出現NA,則結果會出現錯誤。
density()函數的結果為清單類型,可以通過$符號選擇結果中的變數。
可以通過plot(density())組合繪製密度函數圖,並通過lines()函數向圖形中添加線。
四、資料匯總
1.向量的匯總統計
max
min
length
sum
mean
median
sd
var
mad:得到中位元絕對偏差
summary:得到最大值、最小值、中位元和均值
quantile:得到分位元,預設是返回四分位元,可以自己修改
fivenum:得到最小值、四分位低值、中位元、四分位高值、最大值
cumsum:累積合計
cummax:累積最大值
cummin:累積最小值
cumprod:累乘
如果向量中存在NA值,那麼最終也會返回NA值,可以使用選項na.rm=TRUE將NA值忽略,其中length函數沒有na.rm選項,可以先使用na.omit()函數進行處理,如length(na.omit(data))
2.資料框的匯總統計
max
min
sum
fivenum
length:返回資料框的列數
summary:返回每一列的描述性數值
rowMeans
rowSums
colMeans
colSums
apply:可以將上述命令合并,格式為apply(X,MARGIN,FUN...)其中MARGIN為1或2,1表示行,2表示列FUN為計算方式,還可以定義na.rm=TRUE進行忽略NA值
prop.table(data,margin=1、2,FUN):返回每個數值的佔比,預設為總數佔比,margin=1為行佔比,margin=2為列佔比,FUN為設定的函數,
addmargins(data,margin=1、2,FUN):返回根據FUN計算的行或列的值,和prop.table類似,只不過這不是佔比,而是實際計算的數值。
3.矩陣的匯總統計
max
min
sum
fivenum
length:返回矩陣的儲存格數
summary:返回每一列的描述性數值
mean(data[,2]):計算第二列的均值
rowMeans
rowSums
colMeans
colSums
apply:
prop.table(data,margin=1、2):返回每個數值的佔比,預設為總數佔比,margin=1為行佔比,margin=2為列佔比。
矩陣和資料框類似,但是不同的是矩陣為一個整體,不能用$選擇單個列,因此sum等函數是對矩陣整體進行計算,可以使用[]進行選擇,其餘函數的基本用法和資料框類似。
4.列表的匯總統計
max(data$var)
min(data$var)
sum(data$var)
fivenum(data$var)
length:返回矩陣的儲存格數
summary:返回每一列的描述性數值
mean(data[,2]):計算第二列的均值
lapply:輸出資料行表類型的結果
sapply:輸出矩陣類型的結果
總的來說,列表的匯總統計函數和其他資料結構類似,但是不同的是每個都要使用$指定變數才行,此外,apply()函數不能使用列表,需要使用其變種lapply和sapply,二者只是輸出結果的資料類型不同而已。
5.表格的匯總統計
max
min
sum
fivenum
length:返回資料框的列數
summary:返回每一列的描述性數值
rowMeans
rowSums
colMeans
colSums
apply
prop.table(data,margin=1、2):返回每個數值的佔比,預設為總數佔比,margin=1為行佔比,margin=2為列佔比。
R語言之描述性和探索性分析