Professional Documents
Culture Documents
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
運動員
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$分數)
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)
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
月生活費支出
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