연속형 확률분포 (Continuous probability distribution)에는
: norm()
: unif()
- 지수분포 (exponential distribution)
: exp()
: t()
- F-분포 (F-distribution)
: f()
: chisq()
등이 있습니다.
표본분포를 나타낼 때 t-분포, F-분포, 카이제곱 분포 등을 사용하는데요, 이번 포스팅에서는 이중에서 F-분포 (F-distribution)에 대해서 소개하도록 하겠습니다.
F-분포는 F-검정 (F-test)과 두 집단 이상의 분산이 같은지 여부를 비교하는 분산분석(ANOVA, Analysis of Variance)에 사용되며, (카이제곱 분포처럼) 분산을 제곱한 값만을 사용하므로 양(+)의 값만을 가지고 되고, 왼쪽으로 치우치고 오른쪽으로 꼬리가 긴 비대칭형 형태를 띠고 있습니다. (카이제곱 분포와 모양이 유사함)
R에서의 F 분포 함수 및 parameter는 아래와 같습니다.
함수 구분 |
함수 / parameter | |
f() | ||
밀도함수 (density function) |
d |
df(df1, df2) |
누적분포함수 (cumulative distribution function) |
p |
pf(df1, df2, lower.tail=TRUE/FALSE) |
분위수 함수 (quantile function) |
q |
qf(df1, df2, lower.tail=TRUE/FALSE) |
난수 발생 (random number generation) |
r |
rf(n, df1, df2) |
(1) F 분포 그래프 (F-distribution plot) : stat_function(fun=df, args=list(df1=xx, df2=xx)
> library(ggplot2) > ggplot(data.frame(x=c(0,5)), aes(x=x)) + + stat_function(fun=df, args=list(df1=5, df2=10), colour="blue", size=1) + + stat_function(fun=df, args=list(df1=10, df2=30), colour="red", size=2) + + stat_function(fun=df, args=list(df1=50, df2=100), colour="yellow", size=3) + + annotate("segment", x=3, xend=3.5, y=1.4, yend=1.4, colour="blue", size=1) + + annotate("segment", x=3, xend=3.5, y=1.2, yend=1.2, colour="red", size=2) + + annotate("segment", x=3, xend=3.5, y=1.0, yend=1.0, colour="yellow", size=3) + + annotate("text", x=4.3, y=1.4, label="F(df1=5, df2=10)") + + annotate("text", x=4.3, y=1.2, label="F(df1=10, df2=30)") + + annotate("text", x=4.3, y=1.0, label="F(df1=50, df2=100)") + + ggtitle("F Distribution")
|
(2) 누적 F확률분포 그래프 (Cumulative F-distribution plot)
: stat_function(fun=pf, args=list(df1=xx, df2=xx)
|
(3) 누적 F분포 확률 값 계산(F-distribution cumulative probability)
: pf(q, df1, df2, lower.tail=TRUE)
> # (3) 누적 F분포 확률 값 계산 : pf(q, df1, df2, lower.tail=TRUE/FALSE) > pf(q=2, df1=5, df2=10, lower.tail = TRUE) [1] 0.835805
|
(4) F분포 분위수 함수 값 계산 (F-distribution quantile value) : qf(p, df1, df2, lower.tail=TRUE)
> # (4) F분포 분위수 함수 값 계산 : qf(p, df1, df2, lower.tail=TRUE/FALSE) > qf(p=0.835805, df1=5, df2=10, lower.tail = TRUE) [1] 2
|
F분포 분위수 함수 값은 (3)번의 F분포 누적 확률분포 값과는 역의 관계에 있습니다.
(5) F분포 난수 발생 (random number generation) : rf(n, df1, df2)
> rf <- rf(100, df1=5, df2=10) > hist(rf, breaks=20)
|
난수 발생은 매번 할 때마다 바뀌므로 위의 결과와는 다르게 보일 것입니다만, 왼쪽으로 치우쳐있고 오른쪽으로 공룡꼬리처럼 가늘고 길게 늘어선 비대칭 모양이 나타날 것입니다.
많은 도움이 되었기를 바랍니다.
아래의 '공감' 꾸~욱 눌러주시면 글 쓰는데 큰 힘이 됩니다. ^^ (로그인 필요 없어요)
'R 분석과 프로그래밍 > R 통계분석' 카테고리의 다른 글
R 신뢰구간(confidence interval), 신뢰계수(confidence coefficient), 유의수준(significance level) (0) | 2015.09.30 |
---|---|
R 카이제곱 분포 (chi-squared distribution) : chisq() (2) | 2015.09.30 |
R t-분포 (Student’s t-distribution) : t() (0) | 2015.09.24 |
R 지수분포 (exponential distribution) : exp() (6) | 2015.09.22 |
R 균등분포 (uniform distribution) : unif() (5) | 2015.09.19 |