일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 인공지능
- r
- 경제학
- 변량효과모형
- 고정효과모형
- 회귀분석
- version 1
- 추정
- 티스토리챌린지
- 통계학
- 반복있음
- 변동분해
- 분산분석
- 산점도
- 이원배치 분산분석
- JavaScript
- 이항분포
- 에세이
- 오블완
- 확률
- 반복없음
- 정규분포
- 혼합효과모형
- 모평균에 대한 통계적추론
- 글쓰기
- css
- 두 평균의 비교
- 데이터 과학
- 가설검정
- html
- Today
- Total
생각 작업실 The atelier of thinking
79. R 을 이용한 F분포 및 등분산성 검정 본문
Chapter 79. R을 이용한 F 분포 및 등분산성 검정
1. R 에서의 확률분포
R에서는 이산확률분포와 연속확률분포 모두 다 제공합니다.분포별 확률질량(밀도)함수와 누적함수,분위수 및 랜덤 작업 등을 실행할 수 있습니다.
각 분포의 코드는 아래와 같습니다.
이산확률분포 | 연속확률분포 | ||
이항분포 | binom | 정규분포 | norm |
초기하분포 | hyper | T분포 | t |
포아송분포 | pois | F분포 | f |
기하분포 | geom | 카이분포 | chisq |
음이항분포 | nbionom | 균등분포 | unif |
다항분포 | multinom | 지수분포 | exp |
구하고자 하는 함수에 따라 아래의 접두사를 붙여 사용하면 됩니다.
- d : probability mass/density function - 확률 질량/밀도 함수
- p : cumulative distribution function - 누적함수
- q : quantile function - 분위수
- r : random number generator - 램덤 생성 작업
2. F 분포 (F-distribution)
F-분포는 두 개의 분산을 비교하는 데 사용되는 확률분포입니다.
F-분포의 모양은 자유도에 따라 달라지며, 일반적으로 오른쪽으로 꼬리가 긴 모양을 가집니다. F-분포는 두 개의 카이제곱분포를 이용하여 정의되는 확률분포입니다.
카이제곱분포가 단일 모집단의 분산을 나타내고 F분포는 두 집단의 분산을 나타냅니다.
자유도는 분자에 해당하는 카이제곱분포의 자유도와 분모에 해당하는 카이제곱분포의 자유도에 의해 결정됩니다.
F-분포는 ANOVA,회귀분석 등에서 사용되며, 변수가 여러 그룹으로 나뉘어 있는 경우에 사용됩니다. 반면 카이제곱분포는 주로 독립성 검정, 적합도 검정, 분할표 검정 등에서 사용됩니다.
(1) 확률밀도함수
R에서 F분포의 확률밀도함수 코드는 df( ) 입니다.
df(x, df1, df2)
x: 계산하려는 확률 변수 값
df1: 분자 자유도 (positive integer)
df2: 분모 자유도 (positive integer)
분자의 자유도 3, 분모의 자유도가 10인 경우 F-분포 확률밀도함수 그래프는 아래와 같습니다.
x <- seq(0, 5, 0.01) # x 값 범위 설정
df1 <- 3 # 분자 자유도
df2 <- 10 # 분모 자유도
y <- df(x, df1, df2) # F 분포의 밀도함수 값 계산
plot(x, y, type = "l", lwd = 2, xlab = "F", ylab = "Density",
main = "F-Distribution")
(2) 누적분포함수
누적분포함수 코드는 pf( ) 입니다.
pf(q, df1, df2, lower.tail = TRUE)
q : 계산하려는 F 분포 값 (quantile)
df1 : 분자 자유도 (positive integer)
df2 : 분모 자유도 (positive integer)
lower.tail: TRUE이면 왼쪽 꼬리 확률 값을 계산,
FALSE이면 오른쪽 꼬리 확률 값을 계산 (default = TRUE)
분자의 자유도 3, 분모의 자유도가 10인 경우 F-분포 누적분포함수 그래프는 아래와 같습니다.
x <- seq(0, 5, 0.01) # x 값 범위 설정
df1 <- 3 # 분자 자유도
df2 <- 10 # 분모 자유도
y1 <- pf(x, df1, df2) # F 분포의 밀도함수 값 계산
plot(x, y1, type = "l", lwd = 2, xlab = "X", ylab = "Porbability",
main = "F-Distribution",col="blue")
(3) 분위수
분위수를 찾는 코드는 qf( ) 입니다.
qf(p, df1, df2)
p : 확률값
df1 : 분자 자유도 (positive integer)
df2 : 분모 자유도 (positive integer)
분자의 자유도 3, 분모의 자유도가 10인 경우 0.95를 나타내는 분위수는 아래와 같습니다.
x <- seq(0, 5, 0.01) # x 값 범위 설정
df1 <- 3 # 분자 자유도
df2 <- 10 # 분모 자유도
qf(0.95, df1, df2)
[1] 3.708265
위 분위수를 확률밀도함수 위에 표시하면,
plot(x, y, type = "l", lwd = 2, xlab = "X", ylab = "Density",
main = "F-Distribution",col="blue")
vline <- qf(0.95, df1, df2) # 95% 분위수 계산
abline(v = vline, h = 0, col = "red", lty = 2) # 수직선과 높이 설정
분위수 3.708265 위로 수직선이 나타냅니다.
4. 등분산성 검정
등분산성 검정은 주로 두 개 이상의 그룹 또는 처리 간에 동일한 분산을 가지고 있는지를 확인하기 위해 사용됩니다. 등분산성이 만족되지 않으면 적합한 통계 분석 기법을 선택하는 데 도움이 됩니다.
var.test( ) 함수는 등분산성, 두 개의 수치형 벡터의 분산이 같은지 다른지를 검정하는 데 사용됩니다.
var.test(x,y, alternative = )
x, y: 비교하려는 두 개의 수치형 벡터입니다.
alternative: 귀무가설 대립가설의 유형을 지정합니다.
기본값은 "two.sided"로, 두 분산이 같지 않다는 것을 검정합니다.
"less" 또는 "greater"를 선택하여 한쪽 방향의 대립가설을 검정할 수도 있습니다.
◈ 예제 : 신체검사 자료
지난 두 그룹의 평균비교시 사용했던 자료입니다.
2024.06.19 - [통계학 이야기] - 77. R을 이용한 두 그룹의 평균 비교
health <- read.csv("신체검사.csv",header = TRUE, fileEncoding = "CP949",
encoding = "UTF-8")
head(health)
ID 나이 성별 수축혈압 이완혈압 콜레스테롤1 콜레스테롤2
1 1 42 F 120 95 196 220
2 2 53 M 122 72 230 232
3 3 53 M 132 88 242 223
4 4 48 F 128 79 239 209
5 5 53 F 118 74 204 198
6 6 58 F 130 72 210 245
성인 50명의 신체검사 자료 입니다.
혈압과 운동전후의 콜레스테롤 수치를 나타내는 자료입니다.
남녀별로 수축혈압과 이완혈합의 분산에 대한 등분산성을 검정해보겠습니다.
var.test(타겟변수~범주형변수, data= )
남녀별 수축혈압의 등분산성 검정하는 코드 입니다.
var.test(수축혈압~성별, data = health)
F test to compare two variances
data: 수축혈압 by 성별
F = 0.42481, num df = 21, denom df = 27, p-value = 0.04791
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.1899214 0.9918562
sample estimates:
ratio of variances
0.4248052
p-value 는 귀무 가설이 참일 때 이 통계량이 현재 표본에서 관찰 될 확률입니다. 이 경우 0.04791입니다. 따라서 이 결과는 두 성별 그룹의 수축혈압의 분산이 서로 다르다는 것을 나타내며,유의수준을 0.05로 한다면, p-value가 이보다 작으므로 이 차이가 통계적으로 유의하다고 할 수 있습니다.
남녀별 이완혈합의 등분산성 검정하는 코드 입니다.
var.test(이완혈압~성별, data = health)
F test to compare two variances
data: 이완혈압 by 성별
F = 1.0585, num df = 21, denom df = 27, p-value = 0.8774
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.4732517 2.4715359
sample estimates:
ratio of variances
1.058542
"sample estimates" , 표본 추정치는 분산의 비율을 나타내며, 이 경우 1.058542입니다.
분산의 비율이 1에 가깝고, p-value는 0.8774로 유의수준인 0.05보다 크므로 남녀별 이완혈압의 분산이 서로 다르다고 할 수 없습니다. 따라서 이 결과에 따르면 두 그룹의 이완혈압의 분산은 유의하게 다르지 않습니다.
등분산성 검정의 결과에 따라 적합한 통계 분석 기법을 선택하여 진행할 수 있습니다.
'통계학 이야기' 카테고리의 다른 글
81. R 을 이용한 두 그룹의 비율 비교 (0) | 2024.06.24 |
---|---|
80. 두 그룹의 비율 비교 (0) | 2024.06.23 |
78. 두 그룹간 분산 비교 - F 분포 (1) | 2024.06.20 |
77. R을 이용한 두 그룹의 평균 비교 (0) | 2024.06.19 |
76. 두 그룹간 평균 비교 - 대응표본 (1) | 2024.06.18 |