You are on page 1of 10

第 3 章 用統計量描述資料

3-1 水準的描述
3.1.1 平均數
例 3-1
在一個班級中隨機抽取 9 名學生,得到每名學生的英語考試分數如下,計算 9 名學生的平均考試分
數。
91, 69, 75, 78, 81, 96, 92, 88, 86
> example3_1<-read.csv("C:/Users/user/Desktop/example/ch3/example3_1.
csv")
> save(example3_1,file="C:/Users/user/Desktop/example/ch3/example3_1.
RData")
> load("C:/Users/user/Desktop/example/ch3/example3_1.RData")
# 計算 9 名學生考試分數的平均數
> mean(example3_1$分數)
[1] 84

> mean(c(91,69,75,78,81,96,92,88,86))
[1] 84

3.1.2 中位數和分位數

1. 中位數
例 3-2
在一個班級中隨機抽取 9 名學生,得到每名學生的英語考試分數如下,計算 9 名學生考試分數的中
位數。
91, 69, 75, 78, 81, 96, 92, 88, 86

# 計算 9 名學生考試分數的中位數
> median(example3_1$分數)
[1] 86

# 計算 10 名學生考試分數的中位數
> median(c(91,69,75,78,81,96,92,88,86,85))
[1] 85.5

1
2. 四分位數
例 3-3
在一個班級中隨機抽取 9 名學生,得到每名學生的英語考試分數如下,計算 9 名學生考試分數的四
分位數。
91, 69, 75, 78, 81, 96, 92, 88, 86

# 計算 9 名學生考試分數的四分位數
> quantile(example3_1$分數,probs=c(0.25,0.75),type=6)

25% 75%
76.5 91.5

> quantile(example3_1$分數,probs=c(0.25,0.75),type=7)

25% 75%
78 91

# 用 summary 函數計算描述統計量
> summary(example3_1$分數)

3-2 差異的描述
3.2.1 全距和四分位距

3.2.2 變異數和標準差
例 3-4
在一個班級中隨機抽取 9 名學生,得到每名學生的英語考試分數如下,計算 9 名學生考試分數的變
異數和標準差。
91, 69, 75, 78, 81, 96, 92, 88, 86

# 計算 9 名學生考試分數的變異數
> var(example3_1$分數)
[1] 78.5

# 計算 9 名學生考試分數的標準差
> sd(example3_1$分數)
[1] 8.860023

2
3.2.3 變異係數
例 3-5
在進入 10 公尺空氣手槍決賽的 8 名運動員最後 10 槍的決賽成績如下表所示(單位:環),計算變異
係數,評價運動員發揮的穩定性,並結合盒鬚圖進行分析。

> example3_5<-read.csv("C:/Users/user/Desktop/example/ch3/example3_5.
csv")
> save(example3_5,file="C:/Users/user/Desktop/example/ch3/example3_5.
RData")
> load("C:/Users/user/Desktop/example/ch3/example3_5.RData")
# 計算 8 名運動員決賽成績的平均數、標準差和變異係數
> mean<-apply(example3_5,2,mean)
> sd<-apply(example3_5,2,sd)
> cv<-sd/mean
> x<-data.frame('平均數'=mean,'標準差'=sd,'變異係數'=cv)
> round(x,4)

# 8 名運動員決賽成績的盒鬚圖
> boxplot(example3_5,col='lightblue',ylab='射擊環數', xlab='運動員')

3
10.5
10.0
射擊環數

9.5
9.0
8.5
8.0

A B C D E F G H

運動員

從變異係數可以看出,比較穩定的運動員是 G 和 B,比較不穩定的運動員是 C 和 F。盒鬚圖也可佐證


上述結論。

3.2.4 標準得分
例 3-6
在一個班級中隨機抽取 9 名學生,得到每名學生的英語考試分數如下,計算 9 名學生考試分數的標
準得分。
91, 69, 75, 78, 81, 96, 92, 88, 86

# 9 名學生考試分數的標準得分(按標準得分的定義公式計算)
> (example3_1$分數-mean(example3_1$分數))/sd(example3_1$分數)

# 9 名學生考試分數的標準得分(利用 scale 函數計算)


> scale(example3_1$分數)

4
3-3 分配形狀的描述
# 計算 9 名學生考試分數的偏度係數
> library(agricolae)
> skewness(example3_1$分數)
[1] -0.3909762
# 計算 9 名學生考試分數的峰度係數
> kurtosis(example3_1$分數)
[1] -0.8302742

3-4 資料的綜合描述
# 使用 pastecs 程式套件中的 stat.desc()函數計算描述統計量
> library(pastecs)
> round(stat.desc(example3_5),4)

# 使用 psych 程式套件中的 describe()函數計算描述統計量


> library(psych)
> describe (example3_5)

5
例 3-7
在某大學隨機抽取 60 個大學生,調查得到性別、家庭所在地和月生活費支出(單位:元)的資料,如
下表所示。對調查資料進行描述性分析。

> example3_7<-read.csv("C:/Users/user/Desktop/example/ch3/example3_7.
csv")
> save(example3_7,file="C:/Users/user/Desktop/example/ch3/example3_7.
RData")
> load("C:/Users/user/Desktop/example/ch3/example3_7.RData")
# 帶有盒鬚圖、軸鬚線、核密度估計的直方圖
> attach(example3_7)
> par(fig=c(0,0.8,0,0.8),cex=0.8)
> hist(月生活費支出,xlab='月生活費支出',ylab='密度',freq=FALSE,
col='lightblue',main='')
> rug(jitter(月生活費支出))
> lines(density(月生活費支出),col='red')
> par(fig=c(0,0.8,0.50,1),new=TRUE)
> boxplot(月生活費支出,horizontal=TRUE,axes=FALSE)
5e-04
4e-04
3e-04
密度

2e-04
1e-04
0e+00

3000 4000 5000 6000 7000 8000 9000

月生活費支出

6
# 繪製莖葉圖
> library(aplpack)
> stem.leaf(example3_7$月生活費支出)

從以上兩圖可看出,大學生月生活費支出的分配基本上是對稱的。
# 用 summary 函數對計算描述統計量性別和家庭所在地計數,並對月生活費支出的水準計算描述統
計量
> summary(example3_7)

7
# 按性別和家庭所在地分類描述(編寫函數如下)
> my_summary<-function(x){
library(agricolae)
with(x,data.frame(
N=length(月生活費支出),
'平均數'=mean(月生活費支出),
'中位數'=median(月生活費支出),
'標準差'=sd(月生活費支出),
'全距'=max(月生活費支出)-min(月生活費支出),
'變異係數'=sd(月生活費支出)/mean(月生活費支出),
'偏度係數'=skewness(月生活費支出)
))
}
> library(plyr)
> ddply(example3_7,.(性別),my_summary)

> ddply(example3_7,.(家庭所在地),my_summary)

# 同時按性別和家庭所在地分類描述
> library(reshape)
> library(agricolae)
> mystats<-function(x)(c(n=length(x),mean=mean(x),median=median(x),
sd=sd(x),CV=sd(x)/mean(x),R=(max(x)-min(x)),SK=skewness(x)))
> dfm<-melt(example3_7,measure.vars='月生活費支出',id.vars=c('性別','家庭所在
地'))
> cast(dfm,性別+家庭所在地+variable~.,mystats)

8
# 按性別和家庭所在地分類的月生活費支出的點圖
> attach(example3_7)
> par(mfcol=c(1,2),cex=0.6)
> dotchart(月生活費支出,groups=性別,xlab='月生活費支出',pch=19,main='按性別分類
')
> abline(v=mean(月生活費支出),lty=2,col='red')
> dotchart(月生活費支出,groups=家庭所在地,xlab='月生活費支出',pch=19,main='按家
庭所在地分類')
> abline(v=mean(月生活費支出),lty=2,col='red')

按性別分類 按家庭所在地分類

女 大型城市

中小城市

鄉鎮地區

4000 5000 6000 7000 8000 4000 5000 6000 7000 8000

月生活費支出 月生活費支出

9
# 按性別和家庭所在地分類繪製點圖
> library(lattice)
> stripplot(月生活費支出~家庭所在地+性別,col=c('red','blue'),pch=c(20,1),
cex=0.7)

8000

7000
月生活費支出

6000

5000

4000

大型城市 女 中小城市 男 鄉鎮地區

# 按性別和家庭所在地分類繪製盒鬚圖
> boxplot(月生活費支出~家庭所在地*性別,col=c(2:4),ylab='月生活費支出')
8000
7000
月生活費支出

6000
5000
4000

大型城市.女 中小城市.女 鄉鎮地區.女 大型城市.男 中小城市.男 鄉鎮地區.男

10

You might also like