疫情升三級的機率有多少?明天下雨的機率多高?大樂透中獎的機率有多高?
以大樂透的中獎機率為例,我們可以先計算所有號碼的組合,每一組號碼的中獎機率為: \[ P(A)=\frac{n(A)}{n(S)}=\frac{n(A)}{n} \]
其中A代表頭獎的中獎號碼,n(A)代表中獎號碼的次數,例如有三個人買了同樣的號碼,n(A)=3。n(S)代表所有號碼的組合數,例如大樂透是六個01到49的號碼,六個全對得到頭獎,所以一共有\(49\times 48\times\ldots\times 44=10068347510\)組號碼。
機率也可以定義為無數次實驗之後,某事件A出現的相對次數,\(P(A)=\frac{n(A)}{S}\)。隨機實驗是一個過程,在實驗前我們知道所有可能出現的結果,但是不確定是否會出現,也不知道會出現幾次。一個實驗或是隨機變數中所有可能出現的結果 (outcomes) 所形成的集合稱為樣本空間\(S\)。
例如抽出一張撲克牌,有四種結果:\(S=\{\)紅心, 鑽石, 黑桃, 梅花\(\}\),總共有52種結果:\(S=\{\)紅心1, 紅心2,, 梅花K\(\}\)。
又例如政大校長選舉第一階段,有三種人可以投同意票:\(S=\{\)學生,教師,行政人員\(\}\),候選人必須獲得一定比例的同意票才能進入第二階段。
由於每一種可能的結果皆屬於樣本空間,故亦可稱為元素或樣本點。
事件 (event) 為結果所形成的集合,事件為 \(S\) 的子集,以大寫字母 (\(A, B, C, \ldots\)) 表示,可分為以下兩種類型:
1.事件中只有包含一個元素稱作簡單事件 (simple event, 亦稱為樣本點) 例如投擲一顆骰子得點數 3。 2.事件中包含兩個以上的元素稱作複合事件 (compound event),例如投擲兩顆骰子得點數和為 3 或 5 或 7。
若 A, B 兩事件滿足 \(A\cap B=\emptyset\)時, 則稱此A事件與B事件為互斥事件 (disjoint events)。A, B兩個事件不可能同時發生,這兩個事件中的元素不會互相重疊。
例如學生的年級成為一個樣本空間:\(S=\{\)大一,大二,大三,大四\(\}\)。一名學生不可能同時是大一以及大二的學生,所以屬於大一以及屬於大二是互斥事件。但是一個學生可以同時主修政治學以及會計學,所以主修可能不是互斥事件。
Laplace定義的古典機率公設:
☛請問這兩個函數是否符合機率公設? \[f(x)=\frac{x-1}{6}\quad x=1,2,3,4\] \[f(x)=\frac{x^2}{2}\quad x=-1,0,1\]
☛提示:(1)\(f(x)\)是否符合\(0\leq f(x)\leq 1\);(2)代入x到\(f(x)\),求得\(\sum f(x)=1\)。
\[f(x,y)=P(X=x,Y=y)\]
例如: 一張撲克牌,同時為紅色且為4點的機率為\(P(four, red)=2/52=1/26\)。
美國在2022年出現第一位非裔女性的最高法院大法官:Ketanji Brown Jackson,包括她在內,歷史上116位大法官當中,總共有6位女性大法官,3位黑人大法官,也就是P(Black, Female)=1/116=\(0.8\%\)。
台灣在109年有114,606對結婚,我們統計本國民眾各個年齡層以及性別的結婚人數,發現男性且15至19歲佔全體結婚人數有\(1.6\%\),也就是P(15_19, Male)=\(1.6\%\),男性且20至24歲結婚有\(10.6\%\),依此類推。
file <- '/Users/user/Downloads/opendata109m113.csv'
dt <- read.csv(file, header = T)
library(dplyr); library(janitor)
dt <- dt[-1,]
tab1 <- dt %>% group_by(nation, sex, age) %>%
summarise(n = sum(as.numeric(marry_count))) %>%
filter(nation=='本國') %>%
mutate(total=sum(n)) %>%
mutate (per=n/total)
knitr::kable(tab1,format = 'simple',
booktabs=T,caption="109年本國民眾年齡層以及性別的結婚統計")
從52張撲克牌抽到紅色的牌與抽到有臉的牌(J, Q, K)是否為獨立事件?
定義:在兩個或兩個以上的樣本空間中,只考慮某一個條件成立所發生的機率。
例子: 有一個樣本空間 \(S=\{1,2,3,4, 5,6,7,8,9,10\}\). \(P(A)=P(x=\rm {even})=0.5\). \(P(B)=P\{x\geq 7\}=0.4\)
使用councilor這筆資料,交叉分析年度與發包單位,計算邊際機率:
cr<-here::here('data','councilor.csv')
councilor<-read.csv(cr, sep=',',
header=TRUE, fileEncoding = 'BIG5')
tu<-table(councilor$Year, councilor$unit)
tu
##
## 公園處 水利處 新建工程處
## 2015 1 1 0
## 2016 0 0 8
margin.table(tu,1)/sum(tu)
##
## 2015 2016
## 0.2 0.8
計算得知,2015年與2016年的邊際機率分別為0.2及0.8。
\[P(A|B)=\frac{P(A\cap B)}{P(B)}\]
\[P(A\cap B)=P(A|B)\cdot P(B)=P(B\cap A)=P(B|A)\cdot P(A)\]
\[\begin{align} P(A|B)\cdot P(B) = P(B|A)\cdot P(A) \\ P(A|B)=\frac{P(B|A)\cdot P(A)}{P(B)} \end{align}\]
例如當兵抽單位,前一個人抽到輕鬆單位,後面一個人抽到同樣單位的機率一定會變小,所以這兩個事件就是互賴事件,因為機率不相等。
例如台北市服務業集中,新北市有許多製造業,而男生又比較多從事製造業,女生比較多從事服務業,因此性別與職業是互賴事件,也就是男生這個事件的機率,會影響是不是從事製造業或者服務業的機率。
例如:從52張撲克牌中以抽出不放回的方式抽出兩張牌,請問第1張牌是皇后,跟第2張牌是皇后的事件是否為獨立事件?還是互賴事件?
假設\(P(E)\)代表第2張牌是皇后的機率,而\(P(A)\)是第一張牌為皇后的機率,因此\(P(A')\)是第一張牌不是皇后的機率。
已知\(P(A)=\frac{4}{52}\), 且\(P(A')=1-P(A)=\frac{48}{52}\), \(P(E|A)=\frac{3}{51}\), \(P(E|A')=\frac{4}{51}\)。
因此:
\[\begin{align} P(E) & = P(E\cap A)+P(E\cap A')\\ & = P(A)\cdot P(E|A)+P(B)\cdot P(E|B) \\ & = \frac{4}{52}\cdot\frac{3}{51}+\frac{48}{52}\cdot\frac{4}{51}\\ & = \frac{4}{52}\cdot\frac{3+48}{51} \\ & = \frac{4}{52} \end{align}\]
\[\rm{AB}=\frac{Hit}{Hit+Out}\]
\[\frac{4}{(4+6)}=0.4\]
☛課間練習:請問降雨機率是什麼?
☛課間練習:請問你可以用籃球為例想像投籃命中率的變數嗎?
tab<-cbind(結果=c("(T,T)","(H,T)","(T,H)","(H,H)"),
正面次數=c(0,1,1,2),
相對次數=c(0.25,0.25,0.25,0.25))
knitr::kable(tab,format = 'simple',
booktabs=T,caption="兩枚硬幣投擲結果與正面次數")
結果 | 正面次數 | 相對次數 |
---|---|---|
(T,T) | 0 | 0.25 |
(H,T) | 1 | 0.25 |
(T,H) | 1 | 0.25 |
(H,H) | 2 | 0.25 |
以表3.1為例,計算丟擲兩枚硬幣出現正面的期望值。計算結果應為1。也就是說,我們預期出現正面的次數為1。
正面次數 | 相對次數或機率函數 | 相乘 |
---|---|---|
0 | 0.25 | 0 |
1 | 0.5 | 0.5 |
2 | 0.25 | 0.5 |
sum | 1 | 1 |
R
模擬從兩個集合\(\{0,1\}\)各抽樣1000次,然後加總抽樣結果,並且畫成圖 3.1 如下:
a<-c(0,1)
sample.1 <- 0; sample.2 <- 0
Sum <- 0
set.seed(02138)
for (i in 1:1000){
sample.1[i]=sample(a,1)
}
set.seed(02139)
for (i in 1:1000){
sample.2[i]=sample(a,1)
}
Sum <- sample.1 + sample.2
print(mean(Sum))
## [1] 1.031
table(Sum)
## Sum
## 0 1 2
## 232 505 263
hist(Sum)
Figure 3.1: 丟兩枚硬幣1000次的正面次數長條圖一
ggplot2
畫圖一次。
D<-data.frame(Sum)
ggplot(data=D, aes(x=Sum))+
stat_count(geom='bar', fill='#ff22ee')+
geom_text(aes(label=(..prop..)), stat='count', colour='white', vjust=1.6) +
scale_y_continuous("",breaks=c(100,200,300,400,500),
labels = c(0.1,0.2,0.3,0.4,0.5))
Figure 3.2: 擲兩枚硬幣1000次的正面次數長條圖二
im1<-here::here('Fig','IMG_3167.JPG')
knitr::include_graphics(im1)
Figure 3.3: 打珠台
im2<-here::here('Fig','IMG_3168.JPG')
knitr::include_graphics(im2)
Figure 3.4: 打珠台事件與獎品
\[\begin{align} \boxed{V(X)=\sum_{i=1}^n (x_{i}-\mu)^2f(x_{i})} \end{align}\]
\[\begin{align} V(X) & =\sum_{i=1}^n (x_{i}-\mu)^2f(x_{i})\nonumber \\ & = \sum_{i=1}^n x_{i}^2f(x_{i})-\mu^2 \end{align}\]
或者
正面次數 | 相對次數或機率函數 | 平方項相乘 |
---|---|---|
0 | 0.25 | 0 |
1 | 0.5 | 0.5 |
2 | 0.25 | 1 |
sum | 1 | 1.5 |
\[\begin{align*} V(X) & =\sum_{i=1}^n (x_{i}-\mu)^2f(x_{i}) \\ & = \sum_{i=1}^n x_{i}^2f(x_{i})-\mu^2 \\ & = (0+0.5+1)-1 \\ & = 0.5 \end{align*}\]
R
模擬的結果驗證,計算上述抽樣得到的結果為:var(Sum)
[1] 0.4945
\[f(x)=P(X=x)\] \[0\le P(X=x)\le 1\]
而且
\[\sum_{i}f(x_{i})=1\]
★ 二元(白努利)分佈(Bernoulli distribution)
\[\begin{align*} p(X=x)=p^x(1-p)^{1-x} = \begin{cases} p & \text{if}\quad x=1 \\ 1-p & \text{if}\quad x=0 \end{cases} \end{align*}\]
★ 二項分佈(Binomial distribution)
\[p(X=k)= \binom{n}{k}p^k(1-p)^{n-k}=\frac{n!}{k!(n-k)!}p^k(1-p)^{n-k}\]
答:20次當中出現12次酒駕的機率質量函數為\[P(X=12)=\binom{20}{12}0.82^{12}(1-0.82)^{20-12}\]
可用R
的
dbinom(12, 20, 0.82)
## [1] 0.01283
n=20; p=.82; x=12:n; prob=dbinom(x,n,p);
barplot(prob,names.arg = x,main="Binomial Barplot\n(n=20, p=0.82)",col="#ab3210")
Figure 3.5: 二項分配之次數與機率圖
p=0.82
n=20
k=12
choose(n, k)*(p^k)*(1-p)^(n-k)
[1] 0.01283
#or
factorial(n)/(factorial(k)*factorial(n-k))*(p^k)*(1-p)^(n-k)
[1] 0.01283
★ Poisson分佈
Poisson是一段期間內發生事件的次數的機率分佈,事件非同時發生,且發生或者不發生是二元的變數,所以可視作白努利試驗,n個事件的組合,也可以稱做二項式分布。例如從9點到10點到郵局的人數,晚上11點到12點登入PTT的人數。
Poisson分佈的PMF寫成:
\[p(x=k;\lambda)=\frac{e^{-\lambda}\lambda^{k}}{k!}\quad \rm{for}\quad k=0,1,2,\ldots\]
N=1000
d=tibble(lambda=seq(1,18, by=6))
random_poisson=function(lambda,n) {
rpois(n,lambda)
}
d = d %>% mutate(randoms=purrr::map(lambda,random_poisson, N))
#d %>% purrr::unnest(randoms)
d %>% tidyr::unnest(randoms) %>%
ggplot(aes(x=randoms))+
geom_histogram(aes(fill=as.factor(lambda)))+
facet_wrap(~lambda,scales="free") +
theme(legend.position = 'none')
Figure 3.6: 3種平均數的Poisson分佈
平均數\(\lambda\)越大,越接近常態分佈。
lambda=9
dpois(5, lambda)
[1] 0.06073
lambda=9
k=5
p=lambda^{k}*exp(-lambda)/factorial(k)
p
[1] 0.06073
圖 3.7 顯示Poisson的機率分佈,也就是\(P(X=k, \lambda)\)。把k對應的機率累積,就可以得到圖 3.8 顯示的Poisson分佈的累積機率:\(f(X)=P(X>k|\lambda)\)。當\(k\)越大,\(P(X>k|\lambda)\)也越大,然後就接近1。曲線上的每一個點代表當X=k時,函數所累積的機率,例如當\(P(X>10|\lambda=10)=0.583\),也就是\(P(X=0,\lambda=10)+P(X=1,\lambda=10)+\ldots+P(X=10,\lambda=10)\)。
k<-seq(0, 20, by=1)
y <- dpois(k, lambda=10)
plot(k, y, type='l', lwd=1.5, col='#1a00ab',
ylab=expression(paste('P(X=k|', lambda,')')))
Figure 3.7: Poisson機率分佈之機率密度圖
k<-seq(0, 20, by=1)
y <- ppois(k, lambda=10)
plot(k, y, type='l', lwd=1.5, col='#1a00ab',
ylab=expression(paste('P(X>k|', lambda,')')))
abline(v=10, lty=2)
abline(h=0.583, lty=2)
Figure 3.8: Poisson機率分佈之累積機率密度圖
R
計算從曲線另一邊累積的機率。圖3.9顯示當b=8,\(1-P(8;6.25)\)的累積機率小於0.2。當然,咖啡廳可以雇用更多服務人員,\(1-P(8;6.25)\)的累積機率也越小,也就是不太可能出現一位服務人員需要招呼超過8為客人的情況,但是可能會超出雇主的負擔。b <- seq (0, 10, by = 1)
y<-c()
for (i in 1:11){
y[i] <- ppois(b[i], lambda=c(50/b[i]), lower.tail=F)
}
plot(b, y, type='l', lwd=1.5, col='#1a00ab',
ylab=expression(paste('1-P(X>k|', lambda,')')))
abline(h=0.2, lty=2)
abline(v=8, lty=2)
Figure 3.9: Poisson機率分佈之累積機率密度圖
dbinom(40, size =100, p=0.45)
## [1] 0.0488
dpois(40, 45)
## [1] 0.04716
身高、體重、體溫、收入、雨量、時間、距離等等是常見的連續變數,因為這些變數的個數是無限而且不可數。
連續變數常用的機率分配有:常態分佈、標準常態分佈、均等分佈、指數分佈等等。
定義:連續隨機變數\(X\),其值落在\([a, b]\),也就是\(a\leq X\leq b\)。如果此函數非負而且在區間\([a, b]\)連續,而且如果 \(\int_a^b f(x)dx=1\),則稱\(f(x)\)為\(X\)的機率密度函數(probability density function, pdf)。
用\(X\)代表變數,\(X\)可能是某一個整數(\(0,1,2,\ldots,100\)),或者無理數(\(\frac{1}{\sqrt{10}}\)),我們想像每一個變數的值有若干機率,假設有\(101\)個值,機率可以寫成
\[\rm{Pr}(X=i)=\frac{1}{101}\quad for \hspace{0.4em}i=0,1,\ldots,100\]
\[\rm{Pr}(X=x)=0\quad if\hspace{.4em} x\hspace{.4em} is\hspace{.4em} not\hspace{.4em} in\hspace{.4em} \{1,\ldots,n\}\]
如果\(x\in(0,1)\),也就是在0跟1之間,也就是說\(0\le x\le 1\),那麼當\(x>1\),\(Pr(X=x)=0\);當\(x<0\),\(Pr(X=x)=0\)。
不僅如此,我們可以說\(Pr(X=x)=0\),這是因為在連續變數中,我們很難找到\(x\)剛好等於某一個實數,或者說一條直線的面積是0。但是我們可以用積分計算包含一個區間的面積,也就是\(Pr(a\le X\le b)=\int_a^bf(x)dx\)。
\(f(x)\)是一個機率分佈(Probability distribution),而不是固定的數字,\(f(x)\)與\(X\)這兩者之間的關係稱為機率密度(probability density)。進一步假設\(x\)位於一個區間\(I\),這個區間的大小以及密度\(f(x)\)決定變數\(X\)的值落在這個區間的機率,表示成:
\[\rm{Pr}(X\in I)\approx f(x)\times \rm{Length\hspace{.5em} of \hspace{.5em}I}\]
\[f(x)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})\]
\[X\sim N(\mu, \sigma^2)\]
\[\phi(z)=\frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}z^2)\]
R
表示標準常態分佈的機率分佈密度函數為:s=1; mu=0
f <- function(x){
1/sqrt(2*pi*s^2)*exp(-(1/2)*(x-mu)^2/s^2)
}
integrate(f, lower=-Inf, upper=Inf)
## 1 with absolute error < 9.4e-05
integrate(dnorm, 0, 1, lower=-Inf, upper=Inf)
## 1 with absolute error < 9.4e-05
integrate(dnorm, 0, 0.5, lower=-Inf, upper=Inf)
## 1 with absolute error < 3.1e-05
integrate(dnorm, 2, 0.5, lower=-Inf, upper=Inf)
## 1 with absolute error < 2e-06
mu<-0; s=0.5
f <- function(x){
1/sqrt(2*pi*s^2)*exp(-(1/2)*(x-mu)^2/s^2)
}
integrate(f, lower=-Inf, upper=Inf)
## 1 with absolute error < 3.1e-05
mu<-2; s=0.5
integrate(f, lower=-Inf, upper=Inf)
## 1 with absolute error < 2e-06
integrate(dnorm, 0, 1, lower=-Inf, upper=Inf)
## 1 with absolute error < 9.4e-05
integrate(dnorm, 0, 0.5, lower=-Inf, upper=Inf)
## 1 with absolute error < 3.1e-05
integrate(dnorm, 2, 0.5, lower=-Inf, upper=Inf)
## 1 with absolute error < 2e-06
☛如果\(x\in(1,\infty)\),請問以下這個函數是連續函數嗎?
\[h(x)=\frac{3}{x^4}\]
set.seed(2020)
extmp<-rnorm(mean=10, sd=1, 1000)
par(mfrow=c(1,2))
barplot(table(cut(extmp, 15))/1000, ylab="相對次數",main="圖1", family="YouYuan")
hist(extmp, main="圖2", freq = F, ylab="相對次數密度", family="YouYuan")
Figure 4.1: 單位與實數組距的長條圖
\[\rm{Pr}(x \in A) =\int_{A}p(x)dx=\int_{a}^{b}p(x)dx\]
par(family="YouYuan" )
#x <- seq(-3, 3,0.1)
curve( dnorm(x),
xlim = c(-3, 3),
ylab = "Density",
main = "機率密度與區域",
col='red', lwd=2)
cord.1x <- c(0,seq(0,1,0.01),1)
cord.1y <- c(0,dnorm(seq(0,1,0.01)),0)
# Make a curve
#curve(dnorm(x,0,1), xlim=c(-3,3), main='Standard Normal',lwd=2)
# Add the shaded area.
polygon(cord.1x,cord.1y,col='#44aa00ee')
Figure 4.2: 機率分佈曲線下的區域
\[f(x)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})\]
mu<-0; s=1
f <- function(x){
1/sqrt(2*pi*s^2)*exp(-(1/2)*(x-mu)^2/s^2)
}
integrate(f, lower=0, upper=1)
## 0.3413 with absolute error < 3.8e-15
結果約為0.34,也就是說在0與1個標準差之間有\(34\%\)的面積,如果是0左右1個標準差,那麼面積就是\(68\%\)。
累加機率函數(cumulative density function, CDF)代表機率從F(a)\(=0\)一直累加,最後到F(b)\(=1\)。表示為:
\[F(X)=P(X\leq x)=\int_a^xf(t)dt\]
如果c<d,則F(c\(\le\)X\(\le\)d)=F(d)-F(c)
F(x)=P(X\(\le\)x)
對cdf進行微分可得機率密度函數表示為:
\[f(x)=\frac{d}{dx}\int_{-\infty}^xf(x)dx\]
\[E(X)=\int_a^bxf(x)dx=\mu\]
\[\begin{align} V(X) & =\int_a^b(x-\mu)\cdot f(x)dx \\ &=\int_a^bx^2\cdot f(x)dx-\mu^2 \\ &=E(X^2)-[E(X)]^2 \end{align}\]
\[\begin{equation*} f(x)= \begin{cases} \frac{1}{10} & 0\le x\le 10\\ 0 & \text{otherwise} \end{cases} \end{equation*}\]
\[\begin{align} F(X)=P(X\le 3)& =\int_a^xf(x)dx \\ & = \int_a^x \frac{1}{10}dx \\ & = \frac{x}{10} \\ & = \frac{3}{10} \end{align}\]
\[\begin{align} 1-F(X=4) & = 1-P(X\le 4) \\ & = 1 - \frac{4}{10} \\ & = 0.6 \end{align}\]
\[\begin{align} E(X) & = \int_a^bxf(x)dx \\ & = \int_{0}^{10}x\frac{1}{10}dx \\ & = \frac{1}{2}\cdot \frac{1}{10}x^2 \\ & = \frac{100}{20}\\ & = 5 \end{align}\]
\[\begin{align} V(X) & = \int_a^b (x-\mu)^2\cdot f(x)dx \\ & = \int_{0}^{10} (x-5)^2\cdot \frac{1}{10}dx \\ & = \int_{0}^{10} (x^2-10x+25)\cdot \frac{1}{10}dx \\ & = \frac{1}{30}x^3-\frac{1}{2}x^2+2.5x \\ & = \frac{1000}{30} -\frac{100}{2}+25 \\ & = 8.33 \end{align}\]
\[\begin{align} f(x') & = 0+ bx^{1-1} + cx^{2-1} \\ & = b+2cx \end{align}\]
\[\begin{align} \int_{-\infty}^{\infty} (a+bx+cx^2)dx & = ax+\frac{1}{2}bx^2+\frac{1}{3}cx^3 \end{align}\]
\[\boxed{E(X)=\int_{a}^{b}xf(x)dx=\mu} \]
X | 1.0 | 2.0 | 3.0 | 4.0 |
p | 0.1 | 0.3 | 0.4 | 0.2 |
tmp <- c(rep(1,1), rep(2, 3), rep(3,4), rep(4,2))
ttmp <- table(tmp/10)
names(ttmp)<-c(1,2,3,4)
barplot(ttmp, col='#cc002233')
Figure 4.3: 間斷變數之相對次數圖
\[\begin{equation*} \begin{split} p(2\leq t\leq 4) & = \frac{1}{36}\int_2^4(-x^2+6x)\, dx \\ & = \frac{1}{36}(-\frac{4^3}{3}+\frac{1}{2}(6\cdot 4^2)-(-\frac{2^3}{3}+\frac{1}{2}(6\cdot 2^2)))\\ & = \frac{1}{36}(-\frac{64}{3}+48+\frac{8}{3}-12)\\ &=\frac{13}{27} \\ &\approx 0.481 \end{split} \end{equation*}\]
par(mfrow=c(2,2))
x<-seq(from=-2, to=6, length.out = 1000)
y=(1/36)*(-(x^2)+6*x)
plot(x, y, ylim=c(0, 0.3), lwd=1, cex=0.1)
x<-seq(from=0, to=6, length.out = 1000)
y=(1/36)*(-(x^2)+6*x)
plot(x, y, ylim=c(0, 0.3), lwd=1, cex=0.1)
x<-seq(from=1, to=6, length.out = 1000)
y=(1/36)*(-(x^2)+6*x)
plot(x, y, ylim=c(0, 0.3), lwd=1, cex=0.1)
x<-seq(from=3, to=6, length.out = 1000)
y=(1/36)*(-(x^2)+6*x)
plot(x, y, ylim=c(0, 0.3), lwd=1, cex=0.1)
Figure 4.4: 連續變數之機率密度圖
x<-seq(from=-1, to=6, length.out = 1000)
y=(1/36)*(-(x^2)+6*x)
plot(x, y, ylim=c(0, 0.3), lwd=1, cex=0.1)
cord.1x <- c(2, seq(2,4,0.01), 4)
cord.1y <- (1/36)*(-(cord.1x^2)+6*cord.1x)
cord.1y[1]<-0; cord.1y[203]<-0
polygon(cord.1x,cord.1y,col='#aa11cc33')
Figure 4.5: 機率密度圖的區域
R
提供積分以及微分的功能,在此我們用積分計算\(\int_{2}^{4}f(x)dx\),也就是\(F(4)-F(2)\)如下:
F <- function(x) (1/36)*(-(x^2)+6*x)
integrate(F, 2, 4)
## 0.4815 with absolute error < 5.3e-15
\[\boxed{E(X)=\int_{a}^{b}xf(x)dx=\mu} \]
R
計算。
\[\begin{align} V(X)=\int_{a}^{b}(x-\mu)^2\cdot f(x)dx \tag{4.1} \end{align}\]
\[\begin{align*} V(X) & =\int_{a}^{b}(x-\mu)^2\cdot f(x)dx \\ & = \int_{a}^{b}x^2\cdot f(x)dx-\mu^2 \\ & = E(X^2) -[E(X)]^2\tag{4.2} \end{align*}\]
R
內建的變異數公式對照:
set.seed(02138)
x<-rnorm(100, 0, 2)
xbar<-mean(x)
Meansquare<-sum(x^2)/100
squareofmean<-xbar^2
cat("Variance=",Meansquare - squareofmean,"\n")
## Variance= 3.948
cat("Variance of sample=",var(x))
## Variance of sample= 3.988
R
的樣本變異數公式為:\(\frac{\sum (X-\bar{X})^2}{n-1}\),所以跟母體變異數公式\(\frac{\sum (X-\bar{X})^2}{n}\)得到的結果略有差異。
\[E(X^2)=\int x^2f(x)dx\]
\(\blacksquare\)假設有一個連續函數如下:
\[\begin{equation*} f(x) = \begin{cases} 2(1-x) & \text{if}\hspace{1em} 0\le x\le 1\\ 0 & \text{otherwise} \end{cases} \end{equation*}\]
f<-function(x)2*(1-x)
integrate(f, 0, 1)
1 with absolute error < 1.1e-14
\[\boxed{E(X)=\int_{a}^{b}xf(x)dx=\mu} \]
\[\begin{align*} E(X) & =\int_{0}^{1}x[2(1-x)]dx \\ & = 2\int_{0}^{1}(x-x^2)dx \\ & = 2[(\frac{1^2}{2}-\frac{1^3}{3})- (\frac{0^2}{2}-\frac{0^3}{3})] \\ & = 1/3 \end{align*}\]
\[\boxed{V(X) =\int_{-\infty}^{\infty}(x-E(X))^2\cdot f(x)dx}\]
\[\begin{align*} V(X) & = \int_{0}^{1}(x-\frac{1}{3})^2\cdot 2(1-x)dx \\ & = 2\int_{0}^{1}(x^2-\frac{2}{3}x+\frac{1}{9})\cdot (1-x)dx \\ & = 2(-\frac{1}{4}x^4+\frac{5}{9}x^3-\frac{7}{18}x^2+\frac{1}{9}x)\Biggr|_{0}^{1} \\ & = \frac{1}{18} \end{align*}\]
f<-function(x)((x-1/3)^2)*2*(1-x)
integrate(f, lower=0, upper=1)
0.05556 with absolute error < 6.2e-16
☛假設有一個連續函數如下:
\[\begin{equation*} f(Y) = \begin{cases} \frac{3}{Y^4} & \text{if}\hspace{1em} x\ge 1\\ 0 & \text{otherwise} \end{cases} \end{equation*}\]
\[P(\mu-3\sigma<X<\mu+3\sigma)=0.9974\]
\[P(\mu-2\sigma<X<\mu+2\sigma)=0.9544\]
\[P(\mu-\sigma<X<\mu+\sigma)=0.6826\]
x<-seq(from=-3, to=3,length.out=1000)
s=1
y <- (1/sqrt(2*pi)*s)*(exp(-x^2/2*s^2))
ylim<-c(0, 0.85)
plot(x, y ,main=" ", cex=0.1, ylim=ylim)
s=1.4
curve((1/sqrt(2*pi)*s)*(exp(-x^2/2*s^2)), from=-4, to=4, col="#CC2233FF", add=T)
s=2
curve((1/sqrt(2*pi)*s)*(exp(-x^2/2*s^2)), from=-3, to=3, col="blue", add=T)
Figure 4.6: 常態機率分佈
#抽樣然後加總得到2000個數字
set.seed(02138)
ds <-c()
for (i in 1:2000){
ds[i] <- sum(sample(1:6, 1), sample(1:6,1),
sample(1:6,1), sample(1:6, 1))
}
#轉成資料框
gnorm<-data.frame(dice=ds)
#畫長條圖,注意y是機率密度
ggplot2::ggplot(aes(x=dice, y=..density..), data=gnorm) +
geom_histogram(bins=20, fill='lightblue') +
geom_density(aes(y=..density..), col='steelblue') +
theme_bw()
Figure 4.7: 近似常態分佈之長條圖加上常態分佈曲線
x <-seq(from=-3, to=3, 0.01)
y<-c()
f.normal <- function(x) {
y <- 1/(sqrt(2 * pi)) * exp(-0.5 * x^2)
}
plot(x, cumsum(f.normal(x))/100, cex=0.2)
Figure 4.8: 累積機率密度圖
R
提供的函數畫累積密度曲線,如圖 4.9。當\(x=0\),也就是平均數,累積密度等於0.5。
curve(pnorm, from=-3, to=3, col='#EE11CCFF', lwd=1.5)
segments(0, -0.03, 0, 0.5, lty=2, lwd=1.5)
segments(-3.5, 0.5, 0, 0.5, lty=2, lwd=1.5)
Figure 4.9: R函數之累積密度曲線圖
#x <- seq(-3, 3,0.1)
curve( dnorm(x),
xlim = c(-3, 3),
ylab = "Density",
#main = "機率密度與區域",
col='red', lwd=2)
cord.1x <- c(0,seq(-3,0,0.01),0)
cord.1y <- c(0,dnorm(seq(-3,0,0.01)),0)
# Add the shaded area.
polygon(cord.1x,cord.1y,col='#33aacc')
Figure 4.10: 機率分佈曲線下的一半區域
R
的常態分佈函式有sample.range <- seq(70, 150, by=1)
iq.mean <- 110
iq.sd <- 15
iq.dist <- dnorm(sample.range, mean = iq.mean, sd = iq.sd)
iq.df <- data.frame("IQ" = sample.range, "Density" = iq.dist)
ggplot2::ggplot(iq.df, aes(x = IQ, y = Density)) + geom_line(colour="#21ab01")
Figure 4.11: IQ機率密度圖
cdf <- pnorm(sample.range, iq.mean, iq.sd)
iq.df <- cbind(iq.df, "CDF_LowerTail" = cdf)
ggplot(iq.df, aes(x = IQ, y = CDF_LowerTail)) + geom_line(colour="#21ab01")
Figure 4.12: IQ累積機率密度圖
prob.range <- seq(0, 1, 0.001)
icdf.df <- data.frame("Probability" = prob.range, "IQ" = qnorm(prob.range, iq.mean, iq.sd))
ggplot(icdf.df, aes(x = Probability, y = IQ)) + geom_line(color="#bb012e")
Figure 4.13: IQ累積機率密度圖
# the 25th IQ percentile?
print(icdf.df$IQ[icdf.df$Probability == 0.25])
## [1] 99.88
# x=? 25th IQ percentile?
perc <- function (x){
paste0(round(x * 100, 3), "%")
}
perc(iq.df$CDF_LowerTail[iq.df$IQ == 100])
## [1] "25.249%"
可見得智商100大概落在25百分位,只贏25%的全部人。
set.seed(1)
n.samples <- c(100, 1000, 10000)
my.df <- do.call(rbind, lapply(n.samples, function(x) data.frame("SampleSize" = x, "IQ" = rnorm(x, iq.mean, iq.sd))))
# show one facet per random sample of a given size
ggplot(data = my.df, aes(x =IQ)) +
geom_histogram(aes(y =stat(count) / sum(count), fill=as.factor(SampleSize))) +
facet_wrap(.~SampleSize, scales = "free_y")+
scale_fill_discrete(name='')
Figure 4.14: 三種樣本規模的長條圖
\[X\sim U(a, b)\]
\[\begin{equation*} f(x) = \begin{cases} \frac{1}{b-a} & a\le x\le b\\ 0 & \text{otherwise} \end{cases}\tag{4.3} \end{equation*}\]
x<-seq(0,1, by=0.1)
dunif(x, min=0, max=1)
## [1] 1 1 1 1 1 1 1 1 1 1 1
既然\(f(x)=1\),那麼\(\int_{0}^{1}f(x)dx=1\times 1=1\)。證明了\(f(x)=\frac{1}{b-a}\)是一個連續隨機變數。
假設\(X\sim U(0,2),\)圖 4.15 顯示均等機率分佈曲線下的區域:
x<-seq(from=-1,to=3,length.out=1000)
ylim<-c(0,0.6)
plot(x,dunif(x,min=0,max=2),main=" ",
type="l",ylim=ylim, yaxt='n',
ylab=expression(paste('f',(x))))
axis(side=2, at=seq(0.1,0.5,by=0.2),
labels = seq(0.1,0.5,by=0.2))
Figure 4.15: 均等機率分佈曲線下的區域
x=seq(0,2, by=0.1)
dunif(x,min=0,max=2)
[1] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 [20] 0.5 0.5
x<-seq(from=-2,to=32,length.out=1000)
ylim<-c(0,0.045)
plot(x,dunif(x,min=0,max=30),main=" ",type="l",
ylim=ylim)
cord.1x <- c(20,seq(20,30,0.01),30)
cord.1y <- c(0,dunif(seq(20,30,0.01),
min=0, max=30),0)
polygon(cord.1x,cord.1y,col='#ace100')
cord.1x <- c(0,seq(0,20,0.01),20)
cord.1y <- c(0,dunif(seq(0,20,0.01),
min=0, max=30),0)
polygon(cord.1x,cord.1y,col='#ee22cc00')
Figure 4.16: 一致機率分佈曲線下的區域
\[\boxed{E(X)=\frac{a+b}{2}}\]
\[\boxed{V(X)=\frac{(b-a)^2}{12}}\]
\[E(X^2)-E(X)^2\]
\[\begin{align*} E(X^2)&=\int_{a}^{b}X^2f(x)dx \\ & = \int_{a}^{b}\frac{X^2}{b-a}dx \\ & = \frac{1}{b-a}\times\frac{1}{3}\int_{a}^{b}X^3 \\ & = \frac{1}{b-a}\times\frac{1}{3}(a-b)^3 \tag{4.4} \end{align*}\]
\[\begin{equation*} f(x) = \begin{cases} \frac{1}{X} & 0\le x\le 1\\ 0 & \text{otherwise} \end{cases}\tag{4.3} \end{equation*}\]
因為\[\int_{0}^{1}zd(z)\] 所以 \[E(z)=\frac{0+1}{2}=0.5\]
\[E(z)=\frac{(1-0)^2}{12}=0.083\]
\[\begin{align*} E(Z^2)-E(z)^2 & =\frac{1}{1-0}\frac{1}{3}(1-0)^2-0.5^2\\ & = 0.333-0.025 \\ & = 0.083 \end{align*}\]
g<-function(x){x}#f(x)
h<-function(x){x^2}#f(x^2)
eg<-integrate(g, 0, 1)
eh<-integrate(h, 0, 1)
eg; eh
0.5 with absolute error < 5.6e-15 0.3333 with absolute error < 3.7e-15
#variance
as.numeric(eh[1])-as.numeric(eg[1])^2
[1] 0.08333
dunif(1, min=0, max=60)
[1] 0.01667
px <- c(1, 2, 3)
fx <- punif(px, 0, 10)
df <- data.frame(px, fx)
ggplot2::ggplot(df, aes(x=px,y=fx)) +
geom_step() +
geom_point(data=df, mapping=aes(x=px, y=fx),
color="red")
Figure 4.17: 均勻分佈的累積機率圖
prob.range <- seq(0, 1, 0.001)
icdf.df <- data.frame("Probability" = prob.range, y = qunif(prob.range))
ggplot(icdf.df, aes(x = Probability, y = y)) + geom_line(color="#1dd02f")
Figure 4.18: 均勻分佈的百分位圖
set.seed(1000)
rand.unif<-runif(1000, 0, 10)
hist(rand.unif, freq = FALSE, col='#4433ae', density = 40, xlab='x', main='')
Figure 4.19: 均等分配隨機變數的長條圖
punif(1, 0, 10)
[1] 0.1
\[f(x)=\lambda e^{-\lambda x}\quad x\ge 0,\lambda>0\]
\[f(x)=\frac{1}{15}e^{-\frac{x}{15}}\]
\[P(X\leq x_{0})=1-P(X> x_{0})=1-e^{-\lambda x_{0}}\]
\(X\sim \text{Exp}(\lambda)\quad 0\leq X\leq \infty\)
\[E(X)=\frac{1}{\lambda}\]
\[V(X)=\frac{1}{\lambda^2}\]
x = seq(0, 50, by=0.1)
df<-data.table::data.table(x, y = dexp(x, rate=1/15))
ggplot(df, aes(x=x, y=y)) +
geom_line(color="#4013ae")
Figure 4.20: 指數分配機率密度圖
x=30; rate=1/15
pexp(x, rate)
[1] 0.8647
rate=1/15; x=30
1-exp(-rate*x)
[1] 0.8647
x = seq(0,50, by = 0.1)
df<-data.table::data.table(x,
y = pexp(x, rate=1/15))
ggplot(df, aes(x=x, y=y)) +
geom_line(color="#4013ae")
Figure 4.21: 指數分配累積機率密度圖
x = seq(0,60, by = 0.1)
df<-data.table::data.table(x,
y = dexp(x, rate=1/15))
plot(df$y ~ df$x, type='l', xlab='x', ylab=expression(paste(f(x))))
cord.2x <- seq(0, 30, 0.01)
cord.2y <- dexp(cord.2x , 1/15)
polygon(c(0, cord.2x, 30), c(0, cord.2y, 0), border=NA,
col=col2rgb("yellow", 0.3))
Figure 4.22: 指數分配累積機率區域圖
R
計算區域面積如下:lambda=1/15
f <- function(x){
lambda*exp(-lambda*x)
}
integrate(f, 0, 30)
0.8647 with absolute error < 9.6e-15
p = seq(0, 1, by = 0.1)
df<-data.table::data.table(p,
y = qexp(p, rate=1/15))
ggplot(df, aes(x=p, y=y)) +
geom_line(color="#4013ae")
Figure 4.23: 指數分配百分位圖
set.seed(02139)
N=1000
df<-data.table::data.table(expo = rexp(N, rate=15))
ggplot(df, aes(x=expo)) +
geom_histogram(aes(y=..density..), color='black', fill="white",
binwidth = 0.005, stat='bin') +
geom_vline(aes(xintercept=mean(expo)),
color="red", linetype="dashed", size=1) +
geom_density(alpha=.2, fill="#FF6666")
Figure 4.24: 指數分配機率密度圖
mean(df$expo)
[1] 0.06533
☛假設某位外送員,平均每5分鐘接到訂單。請問在未來1小時內,接到至少3張訂單、至多8張訂單的機率有多高?平均5分鐘有一張訂單,也就是1分鐘有0.2張訂單,1小時則有12張訂單。
以最有效率的方式描述人口或是特定群體的量化或類別變數的重要特徵
分析單位可以是個體或是群體。
群體的描述統計,例如:國家的人均所得、房價中位數、收入不均指數(吉尼係數)、生育率\(\ldots\)等等。
個體的描述統計,例如:個人的性別、教育程度、滿意度、收入、政治態度、血糖指數\(\ldots\)等等。
可分為中央趨勢以及離散程度兩個面向。
可以以文字或者是圖形表示。
例如UsingR::alltime.movies
有電影的票房資料。我們可以找出這筆資料的中央趨勢,例如計算2000年(含)前後的票房平均數:
movies<-UsingR::alltime.movies
attach(movies)
dt1 <- movies[which(Release.Year < 2000),]
dt2 <- movies[which(Release.Year >= 2000),]
cat("mean before 2000:", mean(dt1$Gross), "\n")
mean before 2000: 243.5
cat("mean after 2000:", mean(dt2$Gross))
mean after 2000: 234.6
R
的mode()
函數會回傳向量儲藏資料的性質,並不會告訴我們眾數。例如我們讀了一筆以SPSS格式儲存的民調資料:b2<-here::here('data','PP0797B2.sav')
dt <- haven::read_spss(b2)
mode(dt$Q1)
## [1] "numeric"
table(dt$Q1)
##
## 1 2 3 4 95 96 97 98
## 617 684 443 91 10 57 52 104
names()
找出這個表格的首行,進一步篩選首行的元素,條件為該表格的最大值,符合這個條件的就是該變數的眾數: tmp <- table(as.vector(dt$Q1))
tmp
##
## 1 2 3 4 95 96 97 98
## 617 684 443 91 10 57 52 104
names(tmp)
## [1] "1" "2" "3" "4" "95" "96" "97" "98"
names(tmp)[tmp == max(tmp)]
## [1] "2"
☛請練習用ISLR
套件中的Carseats資料,找出
UsingR
的套件中,Boston
這筆資料有房價中位數的變數 library(ggplot2)
ggplot(data=MASS::Boston, aes(y=medv, x=ptratio)) +
geom_point(aes(color=lstat))
Figure 5.1: 波士頓各區的房價中位數與生師比及低社會地位人口比例散佈圖
A<-c(1:10); B<-c(0:10)
median(A); median(B)
[1] 5.5 [1] 5
☛請問studentsfull.txt這筆資料中,學生的中位數成績是多少?
四分位數是數列分成四份之後的三個點:25分位、50分數、75分為其中的25與75分位數。
對於數列的分佈有不同的假設,就有不同計算百分位數的方式。
四分位數是依序排列觀察值,分成四等份的分位數\(Q_{i}\),\(i=\{1,2,3\}\),\(Q_{1}\)代表有\(\frac{1}{4}\)的觀察值小於\(Q_{1}\),\(Q_{3}\)代表有\(\frac{3}{4}\)的觀察值小於\(Q_{3}\)。
例如資料為:\(X=(1, 1001, 1002, 1003)\)
25 百分位所在位置\(=\frac{4\times 25}{100}=1\)。因此 25百分位為 1。
50 百分位所在位置為:\(\frac{4\times 50}{100}=2\)。因此 50百分位為 1001。
75 百分位所在位置為:\(\frac{4\times 75}{100}=3\)。因此 75百分位為 1002。
X <- c(1, 1001, 1002, 1003)
quantile(X, c(.25, .5, .75), type=1)
25% 50% 75% 1 1001 1002
例如:11位大學生的手機資費如下:195,220, 250,250,305,311,350,371,420,473,650。
\(Q_{1}=\frac{11}{4}=2.75\)。進位之後取第3個數,得到250。
\(Q_{2}=\frac{2\times11}{4}=5.5\)。進位之後取第6個數,得到311。
\(Q_{3}=\frac{3\times11}{4}=8.25\)。進位之後取第9個數,得到420。
R
提供9種計算方法,前面3種適用於間斷變數,後面6種則是連續變數。我們以第1種方法計算。
m <- c(195,220, 250,250,305,311,350,371,420,473,650)
quantile(m, c(0.25, 0.5, 0.75), type = 1)
25% 50% 75% 250 311 420
set.seed(1000)
tmp1<-rnorm(100, 40, 10)
quantile(as.integer(tmp1), c(0.25, 0.5, 0.75), type=1)
25% 50% 75% 34 40 45
set.seed(1000)
tmp2<-rnorm(100, 40, 14)
quantile(as.integer(tmp2), c(0.25, 0.5, 0.75), type=1)
25% 50% 75% 31 40 47
\[m_{i}=100\cdot \frac{i}{n}\]
上面的公式中,\(m\)變數的\(i\)百分位數等於\(i\)除以\(m\)變數的觀察值總數\(n\)再乘以100。如果\(m_{i}\)不是整數,則\(k\)為該百分位數,且\(m_{i+1}\ge k\ge m_{i}\)。
換句話說,當\(m_{i}\)不是整數,我們可以將\(m_{i}\)無條件進位加1的數當做\(m_{i}\)。
另一種算法是當\(m_{i}\)是整數,則排在第\(m\)位與\(m+1\)位資料值的算術平均數就是這群資料的第\(k\)百分位數。
我們也可以用另一筆資料驗證手算以及R
的結果:
full<-here::here('data','studentsfull.txt')
dt <- read.csv(full,sep="",header=T)
dt$Score<-sort(dt$Score)
dt$Score
[1] 60 62 66 66 69 70 75 77 78 80 80 81 82 83 85 85 86 87 88 88 88 89 91 92 92 [26] 93
dt$Score[floor(length(dt$Score)*0.25)+1]
[1] 75
dt$Score[floor(length(dt$Score)*0.75)+1]
[1] 88
dt$Score[floor(length(dt$Score)*0.9)+1]
[1] 92
quantile(dt$Score, c(0.25, .75, 0.9), type=1)
25% 75% 90% 75 88 92
quantile(dt$Score, c(0.25, .75, 0.9), type=4)
25% 75% 90% 72.5 88.0 91.4
R
的輸出跟SPSS類似,我們可以加以對照(圖5.2)。SPSS的統計值等於是R
的quantile()的第六種計算方式。scores<-c(15, 22, 26, 32, 33,36, 36, 41, 42, 44,
44, 45, 47, 48, 61,63, 63, 65, 65, 65,
66, 66, 68, 69, 70,71, 74, 74, 76, 77,
78, 78, 80, 85)
quantile(scores, c(.25,.5,.75,.9), type=6)
25% 50% 75% 90% 41.75 64.00 71.75 78.00
v1<-here::here('Fig','v1_quantile.png')
knitr::include_graphics(v1)
Figure 5.2: 四分位統計
trim
刪除若干百分比的數。A<-list(station1=c(25, 33, 44),
station2=c(43, 66, 78, 81),
station3=c(90, 76, 105, 110, 121))
A
$station1 [1] 25 33 44
$station2 [1] 43 66 78 81
$station3 [1] 90 76 105 110 121
groupn=sapply(A, length); groupn
station1 station2 station3 3 4 5
submean=sapply(A, mean); cat("air pollution of each station:", submean,"\n")
air pollution of each station: 34 67 100.4
cat("Sum of air pollution=", sum(groupn*submean),"\n")
Sum of air pollution= 872
totaln=sum(sapply(A, length));
cat("Total number of stations=",totaln,"\n")
Total number of stations= 12
totalair=sum(sapply(A, sum));
cat("Sum of air pollution=",totalair,"\n")
Sum of air pollution= 872
cat("average air pollution=", totalair/totaln)
average air pollution= 72.67
sapply()
函數可套用函數在列表的每一個向量。
以分組平均數計算總平均數:#計算三個組各組平均數
mn=sapply(A, mean); mn
station1 station2 station3 34.0 67.0 100.4
#平均數乘以每一組的個案數
mn*groupn
station1 station2 station3 102 268 502
#總和除以全部個案數
sum(mn*groupn)/totaln
[1] 72.67
spss<-here::here('Fig','week3_skewness.jpg')
knitr::include_graphics(spss)
Figure 5.3: 偏態統計
R
的計算公式1與2分別與Stata以及SPSS得到的結果相同。library(foreign)
hs<-here::here('data','hsb2.dta')
hsb2<-read.dta(hs)
library(e1071)
skewness(hsb2$write, type=1)
[1] -0.4784
skewness(hsb2$write, type=2)
[1] -0.482
stata<-here::here('Fig','write_stata.png')
knitr::include_graphics(stata)
Figure 5.4: Stata的偏態統計
spss<-here::here('Fig','write_spss.png')
knitr::include_graphics(spss)
Figure 5.5: SPSS的偏態統計
R
,可以用e1071
這個套件裡面的kurtosis
,用type
指令選擇2可得到跟SPSS一樣的答案。s4=sum((hsb2$write-mean(hsb2$write))^4)
s4
[1] 3577773
m4=s4/200
s2=sum((hsb2$write-mean(hsb2$write))^2)
m2=s2/200
m4/m2^2
[1] 2.239
R
計算結果:kurtosis(hsb2$write, type=1)
[1] -0.7615
kurtosis(hsb2$write, type=2)
[1] -0.7502
stata<-here::here('Fig','write_stata.png')
knitr::include_graphics(stata)
Figure 5.6: Stata的峰度統計
spss<-here::here('Fig','write_spss.png')
knitr::include_graphics(spss)
Figure 5.7: SPSS的峰度統計
R
的彈性比較大。range(hsb2$write)
[1] 31 67
range(hsb2$math)
[1] 33 75
par(bg="#33110011")
x <- seq(-3, 3, length=100)
hx <- dnorm(x)
plot(x, hx, type="l", lty=2, xlab="x value", lwd=2,
ylab="Density", main="Comparison of t Distributions", ylim=c(0,0.6))
y <- seq(-3, 3, length=600)
curve(dnorm(x, 0, 0.75), type="l", add=T, lwd=2, col="red")
Figure 6.1: 相同全距離散程度不同的機率密度圖
library(ggplot2)
sv<-c(15, 22, 26, 32, 33,36, 36, 41, 42, 44,
44, 45, 47, 48, 61,63, 63, 65, 65, 65,
66, 66, 68, 69, 70,71, 74, 74, 76, 77,
78, 78, 80, 85)
quantile(sv, c(.25,.5,.75), type=6)
## 25% 50% 75%
## 41.75 64.00 71.75
dt <- data.frame(scores=sv)
ggplot(data=dt, aes(y=scores)) +
geom_boxplot(fill="#FF22EE11")
Figure 6.2: 學生成績盒鬚圖
☛請計算MASS::Animals
這筆資料中的腦容量的四分位距。
\[\sigma^2=\frac{\sum (X-\mu)^2}{n}\]
\[S^2=\frac{\sum (X-\bar{X})^2}{n-1}\]
\[\sqrt{\frac{np(1-p)}{n-1}}\] - \(p\) 是事件發生的機率。
如果隨機變數屬於常態分配,大部分的值應該聚集在平均值加減一個標準差的範圍內,因此,樣本標準差的大小特別重要。
當樣本來自於常態分配的母體,利用微積分可求出平均數的加減1個標準差包含約\(68\%\)的樣本。2個標準差包含約\(95\%\)的樣本。3個標準差包含約\(99\%\)的樣本。
先寫程式計算標準差,再用R
的
#hsb2 data
#variance
v.write<-var(hsb2$write); sqrt(v.write)
[1] 9.479
#standard deviation
std = function(x) sqrt(var(x))
std(hsb2$write)
[1] 9.479
#self-defined function
sd<-function(V)sqrt( sum((V - mean(V))^2 /(length(V)-1)))
sd(hsb2$write)
[1] 9.479
H<-c(15000,7000,19000,3000,15000,19000,4000,12000,
17000, 9000)
h<-c(15,7,19,3,15,19, 4,12,17, 9)
sd(H); sd(h)
[1] 5963 [1] 5.963
\[f(Z)=\frac{1}{2\pi}e^{-\frac{Z^2}{2}}\quad Z=\frac{X-\mu}{\sigma}\]
\[Z\sim N(0,1)\]
\[Z=\frac{x-\bar{x}}{s}\]
\[Z=\frac{X-\mu}{\sigma}\] \[\sigma\neq 0\]
pnorm(6, 0, 1)
[1] 1
pnorm(-6, 0, 1)
[1] 9.866e-10
pnorm(-1.96,0,1)-pnorm(-3,0,1)
[1] 0.02365 - 可畫圖如圖7.1:
curve(dnorm(x),
xlim = c(-3, 3),
ylab = "Density",
#main = "機率密度與區域",
col='red', lwd=2, xlab='Z')
cord.1x <- c(-3,seq(-3, -1.96,0.01),-1.96)
cord.1y <- c(0,dnorm(seq(-3, -1.96,0.01)),0)
polygon(cord.1x,cord.1y,col='grey80')
Figure 7.1: 標準常態分佈曲線下的2.5%區域
★請問在
head(alr4::Heights, 4)
mheight dheight 1 59.7 55.1 2 58.2 56.5 3 60.6 56.0 4 60.7 56.8
m.i<-mean(alr4::Heights$mheight)
m.i
[1] 62.45
s.i<-var(alr4::Heights$mheight)
s.i
[1] 5.547
zstar1=(63-m.i)/sqrt(s.i);zstar2=(65-m.i)/sqrt(s.i)
cat("63in=",zstar1,"\n","65in=",zstar2,"\n")
63in= 0.2323 65in= 1.082
pnorm(zstar2, 0, 1)-pnorm(zstar1, 0, 1)
[1] 0.2684
curve(dnorm(x),
xlim = c(-3, 3),
ylab = "Density",
#main = "機率密度與區域",
col='red', lwd=2, xlab='Z')
cord.1x <- c(0.232,seq(0.232, 1.081,0.01), 1.081)
cord.1y <- c(0,dnorm(seq(0.232, 1.081,0.01)),0)
polygon(cord.1x,cord.1y,col='grey80')
Figure 7.2: 標準常態分佈曲線下的特定區域
★ 有一位員工的今年月薪為8.5萬,去年則為8萬。今年的全體薪水標準差為2.3萬,平均值為6.4萬,而去年的全體員工薪水標準差為2萬,平均值為6.2萬。請問該員工月薪相較於全體員工有增加嗎?
\[z_{1}=\frac{8.5-6.4}{2.3}=0.91\] \[z_{2}=\frac{8-6.2}{2}=0.75\] - 因為\(z_{1}\geq z_{2}\),因此該員工月薪相較於全體員工有增加。
2.1 \(f(x)=\frac{x^2-1}{6}\quad x=-2,1,2\) 2.2 \(f(x)=\frac{(x-1)^2}{15}\quad x=-2,-1, 0, 1,2\)
R
的integrate函數)
score
中位數、90百分位數以及男性跟女性的平均數:
score
平均數以及標準差:
UsingR
套件中的faithful
資料,請問要看噴泉最少要等幾分鐘?平均要等幾分鐘?最多跟最少等的時間差距多少分鐘?
airquality
這筆資料的Wind
這個變數,計算前後兩個資料點的差異,以分析兩天之間風速的差異。例如:
A <- c(35, 61, 69)
d.A <- c(26, 8)
airquality
這筆資料的Wind
的偏態為何?峰度是多少?
councilor
這筆資料中,請問平均工程預算是多少?樣本標準差多少?
2008Election
這筆資料,請問馬英九的得票數的25分位數、中位數、75分位數分別是多少?請問25與75分位數之間差別多少?
today <- Sys.Date()
today <- format(today, '%m/%d/%Y')
cat('最後更新日期', today )
最後更新日期 04/15/2022