Professional Documents
Culture Documents
( )
( )
통상통계분석_20220502
2.2 Covariance 공분산
- 공분산은 두 확률변수의 선형 관계를 측정하는 것이다. X가 증가할 때 Y도 증가하면 공분산이 커지게
되고, positive라고 말할 수 있다. 반비례하게 되면 공분산이 마이너스이다.
- 공분산을 계산하는 방법은 다음과 같다.
# 평균을 계산한다.
- 확률변수의 값에다 그 값의 확률을 곱한 다음에 더해주기!
EU<-sum(S$U*S$probs)
EU
Var_V<-sum(S$V^2*S$probs) - EV^2
Var_V
#공분산
- S$U*S$V*S$probs을 곱한 다음에 다 더하고, 2개의 평균을 빼주면 된다.
Cov_UV<- sum(S$U*S$V*S$probs)- EU*EV
Cov_UV
EK<- sum(S$K*S$probs) : K의 평균 구한 것
EK
- 그런데 E(K)= E(X)+E(Y)로 각각 구해서 더해줘도 된다는 것이다.
EX1<-sum(S$X1*S$probs)
EX2<-sum(S$X2*S$probs)
EX1+EX2
Q4) Given the information probability distributions for variables X and Y – 이거 해보기! (10페
이지)
통상금융통계분석 LN7: Discrete Distributions (2)
- 평균 구하기
- 분산 구하기
Q1) Roll a die and let X be the upward face showing. Then µ and σ2?
- 왜 주사위를 던져서 나오는 눈의 수를 확률변수 X로 정의하면 이산 균등 분포가 되냐고 물어본다면,
확률변수가 1~6까지 나올 수 있는데 각각의 값이 모두 확률이 같기 때문이다.
- 평균은 m+1/2 공식을 사용해서 3.5가 나옴, 분산은 m^2-1/12하면 35/12가 된다.
Q2) A random variable X following the discrete uniform distribution can takes the integer
from 3 to 10. Then µ and σ2?
- X는 3~10까지 취할 수 있고, 각각의 확률은 1/8이 된다. 그랬을 때 평균은?
# discrete uniform ~ (3, 10) : 얘는 1부터가 아니므로 위의 식 적용 x
X<-3:10
X
EX<-(1/8)*sum(X)
EX
Var_X <- (1/8)*sum(X^2)-EX^2
Var_X
통상금융통계분석_20220509_Part1
# 이산균등분포의 예
d1<-sample(1:6, size=3000, replace=T)
table(d1)
mean(d1)
35/12 : 분산 구하는 공식 (m^2-1/12)
var(d1)
- 1~6까지 주사위를 던져서 나오는 숫자를 3천개를 나열하면 거의 1/6 확률로 나온다.
rdunif : dunif는 discrete uniform이라는 뜻이다. 여기에 r를 붙이면 뭐냐면 random number라는
뜻이다. random number는 난수를 generate하는 것이다.
d3<-rdunif(1000,1,10) : 1000개를 찾고 최솟값은 1, 최댓값은 10까지 찾는다.
table(d3)
pdunif(2,1,10)
1-pdunif(2,1,10) # Pr(X>=3)
# p는 누적확률을 계산한다. 확률변수가 취할 수 있는 값은 1~10까지이고, 2까지의 누적확률을 계산하
라는 의미이다. 따라서 pr(x=1)+pr(x=2)여서 각각은 1/10이므로 답은 2/10가 된다.
2 Bernoulli Distribution
X takes two values, X = 0 and X = 1
- 베르누이 확률 분포는 확률변수 x가 0 또는 1이 나온다. 1이 성공이고 0은 실패이다.
Q4) Suppose the probability of purchasing a defective computer is 0.02. What is the
probability of purchasing two defective computers in agroup of 10?
답 : 1.5%
- 성공 확률이 0.02이다. 10개를 샀을 때 불량품이 2개일 확률은?
- n=10, 파이는 0.02, x는 2가 된다.
- 공식으로 계산하면 아래와 같이 하면 된다.
Q5) A four-child family. Each child may be either a boy (B) or a girl (G). For simplicity, we
suppose that Pr(B) = Pr(G) = 0.5 and the genders of the children are determined
independently. If we let X count the number of B’s, then X ∼ binom(size = 4, prob = 0.5).
choose(4,2)*0.5^2*0.5^2 : 이렇게 해서 구하면 된다. 아이가 4명 있으면 남자 아이와 여자 아이가 각
각 2명일 확률은 37.5%가 된다.
choose(4,0)*0.5^0*0.5^4+choose(4,1)*0.5^1*0.5^3+choose(4,2)*0.5^2*0.5^2
- 값이 동일하게 나온다.
rownames(binomCoinToss)<-x
binomCoinToss
binomPr<-dbinom(x,size=10, prob=0.5)
plot(binomPr~ x , type="h")
#CDF : 누적확률
pbinom(1, size=10, prob=0.5) # Pr(X <=1 )
pbinom(5, size=10, prob=0.5) # Pr(X <=5)
diff(pbinom(c(6,9),size=12, prob=1/6))
- diff는 빼주는 함수, 9에서 6를 빼주는 것이다. 뒤에서 앞의것을 빼주는 것, 그러면 pbinom을 6에 한
번 적용하고 pbinom을 9에 한 번 적용해서 9에 적용한 거에서 6에 적용한 걸 빼주게 된다.
pbinom(9, size=12, prob=1/6)-pbinom(6, size=12, prob=1/6) : 이것도 동일함
library(distrEx)
X<-Binom(size=3, prob=0.5) # n=3, prob=0.5
E(X) # 1.5
var(X) # 0.75
sd(X)
통상금융통계분석_20220516_Part1
- 확률은 반드시 0~1 사이의 값이 나와야 한다. PDF는 무조건 0~1 사이!!!
- 그리고 모든 확률을 더하면 1이 나와야 한다.
- 포아송 분포의 분산도 람다가 나온다. 포아송 분포는 평균과 분산이 같다.
- 0에서 t 사이에서 일어나는 사건의 횟수는 람다*t이다. 구간이 2배가 늘어나면 평균의 2배가 발생하는
것이고, 구간이 t배가 늘어나면 평균적으로 일어나는 사건의 횟수는 람다 *t가 된다.
● What is the probability that no car arrives during this period? 0.67%
lambda<-5
x<-0
exp(-lambda)*lambda^x/factorial(x)
● Suppose the car wash above is in operation from 8AM to 6PM, and let Y be the number
of customers that appear in this period. Sincethis period covers a total of 10 hours, Y ∼
pois(lambda=5*10=50).What is the probability that there are between 48 and 50 customers,
inclusive?
- 한 시간 평균이 5명이니까 10시간을 하면 50명이다. 그러면 하루에 48~50명 사이의 고객이 올 확률은
얼마인가? 아래와 같이 48+49+50을 하면 된다.
lambda<-50
x<-c(48,49,50)
pr1<-exp(-lambda)*lambda^x/factorial(x)
sum(pr1)
Q6) Generate 100,000 random numbers chosen from the Poisson distribution of (Y ) above.
Then find the mean and variance using therandom numbers. Compare them with the
theoretical values. ( 그런데 theoretical values 이론적 값은 50이 나와야 하는데 조금만 실험을 하게
되면 50하고는 거리게 있게 된다. 그런데 무한히 많이 실행하게 되면 50이 나오게 된다.)
fx1<-function(x) {
x^2+2
}
fx1(2)
integrate(fx1, lower=-3, upper=3
integrate(fx1, lower=-3, upper=3) : 적분할 때 사용하는 함수, 함수 이름 쓰고, -3에서 3까지 적분해
라
fx2<-function(x) {
0.5*x
}
integrate(fx2, lower=0, upper=2)
- a ≤ X ≤ b까지에서 (≤) 같냐는 표시는 전혀 중요하지 않다. 왜냐면 특정한 값에서의 확률은 0이기
때문이다.
Q1) How to describe a cumulative probability : Pr(X ≤ a) =? 그렇다면 누적확률은 어떻게 정의할
수 있는가? 누적확률은 F(x) - 라지 에프엑스라고 쓴다.
fx2<-function(x) {
0.5*x^2 - 왜 여기서 제곱 붙였는지 알아야함!
}
integrate(fx2, lower=0, upper=2) # mean 평균은 1.3이 나온다.
# 분산은 1/2^3에 대해서 적분하고 아까 구한 평균의 제곱을 빼주면 된다.
fx3<-function(x) {
0.5*x^3
}
integrate(fx3, lower=0, upper=2) # variance : 이 줄까지 해서 나온 값이 2이다. 그리고 나서
1.33^2을 빼줘야 한다.
2-1.33^2
통상금융통계분석_20220523_Part1
The area under the curve is 1 by multiplying its base (b − a) by itsheight 1/(b − a)
- 전체 면적이 1이 되어야 하기 때문에 아래 길이는 b-a이고, 높이는 1/b-a이다. 이 높이가 바로 pdf
가 된다.
# cdf는 일차함수 식이다. 따라서 기울기는 (1/b-a)*x에 해당하고, 상수항은 –a/b-a에 해당한다. 따라
서 cdf 함수가 직선이 되는 이유는 일차함수이기 때문이다.
● 균등 분포에서 pdf가 뭔지 알아야 하고, cdf는 어떻게 해서 pdf가 cdf가 되는지 알아야 한다.
Domain: a ≤ x ≤ b
Domain은 확률 변수 x가 취할 수 있는 값을 의미한다.
Example) An oral surgeon injects a painkiller prior to extracting a tooth. Given the varying
characteristics of patients, the dentist views the time for anesthesia effectiveness as a
uniform random variable that takes between 15 and 30 min. In short notation, we could say
that X is U(15, 30). Setting a = 15 and b = 30, we obtain the mean and standard deviation (
시간은 연속확률변수이다)
예) 구강외과 의사는 이를 뽑기 전에 진통제를 주사합니다. 환자의 다양한 특성을 고려할 때, 치과의사는
마취 효과를 위한 시간을 15분에서 30분 사이의 균일한 무작위 변수로 봅니다. 짧은 표기법으로, 우리는
X가 U(15, 30)라고 말할 수 있습니다. a = 15 및 b = 30을 설정하면 평균 및 표준 편차를 얻을 수 있
습니다.
For example, the probability that the anesthetic takes between 20 and25 min is : 1/3이 된다.
dunif는 pdf의 식을 의미한다. 즉 높이를 계산하는 것이다.
dunif(20, min=15, max=30) # pdf 식을 계산한다.
통상금융통계분석_20220523_Part2
# X ~ Uniform(-3, 5.5)
# Pr(X>=4)
1.5*(1/8.5)
1-punif(4, min=-3, max=5.5)
punif(4, min=-3, max=5.5, lower.tail = F) # theoretical probability
3 Normal Distribution 정규 분포
- 가운데를 중심으로 좌우가 대칭인 분포이다. Mean, Median, Mode가 모두 같다.
- 정규분포는 2가지 패러미터인 뮤하고 시그마에 의해서 정의된다.
- 시그마에 따라서 분포가 어떤 모양인지 예상할 수 있다. 분포가 퍼져 있는 정도는 표준편차로 정의된
다.
• Almost all (99.7%)of the area under the normal curve is included in the range
- 확률변수 x는 평균에서 3배의 표준편차를 빼준 값과 평균에서 3배의 표준편차를 더해준 범위 안에 대
부분 있다.
# normal distribution
x<-seq(-15, 15, by=0.1) : seq는 어떤 범위를 주고 어떤 간격으로 숫자를 만드는 것
set.seed(1234)
x<-rnorm(10000, mean=90, sd=5)
x
hist(x)
- 정규분포에서 랜덤 넘버를 찾아서 히스토그램을 그려보면 우리가 알고 있던 정규분포의 pdf 그래프와
유사한 형태가 나온다.
# theoretical probability Pr(X<=90)=0.5
pnorm(90, mean=90, sd=5) : pnorm이 누적확률이니까 이것도 당연히 0.5가 나옴
# 1) empirical probability : Pr(X<= 90)=???
# 2) theoretical pr: Pr(75<=x <=85)
# 3) empirical pr: Pr(75 <= x <= 85)
통상금융통계분석_20220530_Part1
# Pr(Z<=2) = 0.9772
pnorm(2, mean=0, sd=1) # 정규분포의 누적확률을 계산해준다.
pnorm(2) : 그냥 pnorm(2)만 써도 같은 값이 나오게 되는데 디폴트 값이 표준정규분포에서 누적확률
을 계산해주기 때문이다.
Q3) Show that almost all Z values are between -3 and 3. In other words, show that
# 위에것을 증명하기 위해서는 3까지의 누적확률을 구해서 –3까지의 누적확률을 빼주면 된다.
pnorm(3, mean=0, sd=1)- pnorm(-3, mean=0, sd=1)
diff(pnorm(c(-3,3), mean=0, sd=1))
• Example) Let X represent the time it takes (in seconds) to download an image file from
the internet.
• Suppose X is normal with a mean of 18.0 seconds and a standarddeviation of 5.0 seconds.
Find Pr(X < 18.6 )
답 : pnorm(18.6, mean=18, sd=5), 54.7%
#표준정규분포를 이용하려면
0.6/5
pnorm(0.12, mean=0, sd=1)
pnorm(18, mean=18, sd=5)-pnorm(17.4, mean=18, sd=5)
• Find Pr(17.4<X<18 )
pnorm(18, mean=18, sd=5)-pnorm(17.4, mean=18, sd=5)
• Empirical Rules 경험 법칙
- 어떤 정규확률변수든지 상관없이 평균에서 +-3시그마 만큼 떨어진 구간에 있을 확률이 거의 대부분이
다. 이게 정규확률 변수의 경험 법칙이 된다.
- 만약 평균을 중심으로 +-1시그마 떨어져 있다면 그 구간에 있을 확률이 68.26%가 된다.
통상금융통계분석_20220530_Part2
- pnorm은 값을 주고 확률을 찾는거고, qnorm은 면적을 주고 거기에 해당하는 값을 찾는 것이다.
# qnorm(quantile function)
qnorm(0.95, mean=0, sd=1)
qnorm(0.05, mean=0, sd=1, lower.tail = F)
- lower.tail = F는 누적확률이 아니고 오른쪽 꼬리 확률을 뜻한다.
Q1) Why do we divide by n−1 when we compute the sample variance? why do we not divide
by n? 왜 표본의 분산을 계산할 때 전체 표본의 크기는 n인데 n-1로 나누는거야? 왜냐면 n-1로 나눠
야 모분산과 동일해지기 때문이다. 불편성을 만족하기 위해서 n-1로 나누는 것이다.
- r에서는 어떤 데이터를 불러오면 표본이라고 간주한다. 표본이라고 간주하고 평균과 분산을 계산한다.
그래서 분산을 계산할 때 n으로 나눠주는 것이 아니고 n-1로 나눠서 계산하게 된다.
plantgrowth <-read.csv(file="plantgrowth.csv")
m<-mean(plantgrowth$weight)# 표본평균을 계산한다.
var(plantgrowth$weight) ## 표본분산을 계산한다. (n-1)로 나누어 준다.
(1/29)*sum((plantgrowth$weight-m)^2)
- 그니까 30으로 나눈 게 아니다. 29로 나눈 것이다.
모집단으로 구하고 싶으면 n-1/n을 해주면 된다.
# plantgrowth 변수의 데이터가 표본이 아니고 모집단이라고 가정하면 분산을 어떻게 계산할 것인가?
var(plantgrowth$weight)*(29/30) # 모집단으로 생각했을 때 분산이 된다.
통상금융통계분석_20220613_Part1
- 만약 20과 15의 그래프를 하나에 그리고 싶다면 add=T 옵션을 주면 한꺼번에 그릴 수 있다! 표본의
크기가 클수록 폭이 좁아진다.
* xbar <- c()는 xbar라는 이름에다가 그냥 비어있는 벡터를 정의하는 것이다. 그리고 이 공간에다가
값을 1000개를 채우는 것이다.
* xbar[i] <- mean(rnorm(20, mean=5.3, sd=9))
}는 i라는 값을 1번부터 내가 1000번 돌릴거야 라는 의미이다. 그리고 매번 할 때마다 첫 번째 표본을
뽑아서 평균을 계산하는 것이 첫 번째 값이 되는 거고, 두 번째 표본을 뽑아서 평균을 계산하는 것이 두
번째 엑스바가 된다.
- sum은 xbar가 100개의 값이 있는데 6.0보다 작으면 1이라는 값을 주고, 작지 않으면 0이라는 값을
준다. 근데 모두 합하는 거니까 6.0보다 작은 값의 숫자가 나온다. 그래서 그 숫자를 전체 숫자로 나
누면 확률이 나온다.
- 모집단이 노말이면 표본을 몇 개 뽑든지 상관없이 엑스바의 분포는 노말이 되고, 모집단이 노말이 아
니면 표본을 많이 뽑아서 평균을 계산할 때에만 노말 분포를 따른다.
- 평균과 표준편차는 모집단이 노말이든 아니든지 상관없이 평균은 뮤고, 표준편차는 시그마/루트엔이
다. 그런데 엑스바의 분포의 모양에는 차이가 있을 수 있다.
● 그런데 만약 모집단의 분포가 상당히 대칭 분포에 가깝다면 표본이 30까지 클 필요도 없다. 15 이상
만 되면 충분히 엑스바의 분포는 노말이 된다.
- For normal population distributions, the sampling distribution of the mean is always
normally distributed. 모집단이 노말이면 샘플의 크기와 상관없이 항상 엑스바의 분포는 노말이다.
note) The population distribution is unknown and thus it may not be a normal distribution.
모집단의 분포를 알 수 없으므로 노말이 아닐 수도 있다. 그런데 n이 충분히 크므로 엑스바의 분포는 여
전히 노말이라는 것을 중심극한정리에 의해 알 수 있다.
통상금융통계분석_20220613_Part2
# csv 파일을 불러온다.
data<-read.csv(file="Clt-data.csv")
dim(data) : 몇 개의 데이터를 가지고 있는지 알려준다.
nrow(data) : 이렇게 써도 몇 개의 데이터인지 알 수 있다.
for (i in 1:m) {
s20[i]<-mean(sample(data$Wall.Thickness, size=20, replace=T))
s50[i]<-mean(sample(data$Wall.Thickness, size=50, replace=T))
}
# sampling distribution of Xbar with n=20
# xbar의 theoretical 평균은 mu(12.8), empirical 평균
hist(s20)
mean(s20) # empirical mean
- 이론적 평균은 12.8이고, s20을 계산하고 평균을 다시 계산해봤더니 이론적 확률하고 비슷하게 나온
다. 그니까 우리 이론이 맞다는거야.
hist(s20)
abline(v=mu, col="red") # vertical , theoretical mean
abline(v=mean(s20), col="blue") # empirical mean
- 그런데 히스토그램 그린 것에다 추가적으로 평균을 나타내는 선을 그리고 싶다면 abline을 쓰면 된다.
hist(s20)
abline(h=100, col="red") : 수평으로 그리고 싶으면 h로 쓰면 된다.
# 그래프를 그릴 때 위, 아래 한 번에 그릴 수 없어?
par(mfrow=c(2,1))
hist(s20)
hist(s50)
- c(2,1)은 로우가 2고, 칼럼이 1개이다. 그래서 위에 그래프를 하나 넣고 아래 그래프를 한 개 넣겠다
는 의미이다.
par(mfrow=c(1,2))
hist(s20)
hist(s50)
- 만약 그래프를 옆으로 그리고 싶으면 c(1,2)라고 쓰면 된다.
- 그러면 그래프를 옆으로 3개 그리고 싶어. 그러면 c(1,3)이라고 쓰고 그래프 명령어를 3개 쓰겠지
dev.off()
hist(s20)