R에서 f 통계의 p 값을 계산하는 방법
F 테스트는 F 통계량을 생성합니다. R에서 F 통계량과 관련된 p-값을 찾으려면 다음 명령을 사용할 수 있습니다.
pf(fstat, df1, df2, lower.tail = FALSE)
- fstat – f 통계의 값
- df1 – 자유도 1
- df2 – 자유도 2
- lower.tail – F 분포의 아래쪽 꼬리와 관련된 확률을 반환할지 여부입니다. 이는 기본적으로 TRUE입니다.
예를 들어, 자유도 1 = 3, 자유도 2 = 14인 F 통계량 5와 연관된 p-값을 찾는 방법은 다음과 같습니다.
pf(5, 3, 14, lower.tail = FALSE) #[1] 0.01457807
F-검정의 가장 일반적인 용도 중 하나는 회귀 모델의 전반적인 유의성을 테스트하는 것입니다. 다음 예에서는 회귀 모델에 대한 F 통계의 p-값을 계산하는 방법을 보여줍니다.
예: F 통계량에서 p-값 계산
12명의 학생에 대한 총 공부 시간, 총 준비 시험 수, 최종 시험 성적을 보여주는 데이터 세트가 있다고 가정해 보겠습니다.
#create dataset data <- data.frame(study_hours = c(3, 7, 16, 14, 12, 7, 4, 19, 4, 8, 8, 3), prep_exams = c(2, 6, 5, 2, 7, 4, 4, 2, 8, 4, 1, 3), final_score = c(76, 88, 96, 90, 98, 80, 86, 89, 68, 75, 72, 76)) #view first six rows of dataset head(data) # study_hours prep_exams final_score #1 3 2 76 #2 7 6 88 #3 16 5 96 #4 14 2 90 #5 12 7 98 #6 7 4 80
그런 다음 학습 시간 과 준비 시험을 예측 변수로, 최종 점수를 응답 변수로 사용하여 이 데이터에 선형 회귀 모델을 적용할 수 있습니다. 그런 다음 모델의 결과를 시각화할 수 있습니다.
#fit regression model model <- lm(final_score ~ study_hours + prep_exams, data = data) #view output of the model summary(model) #Call: #lm(formula = final_score ~ study_hours + prep_exams, data = data) # #Residuals: # Min 1Q Median 3Q Max #-13,128 -5,319 2,168 3,458 9,341 # #Coefficients: #Estimate Std. Error t value Pr(>|t|) #(Intercept) 66,990 6,211 10,785 1.9e-06 *** #study_hours 1.300 0.417 3.117 0.0124 * #prep_exams 1.117 1.025 1.090 0.3041 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 # #Residual standard error: 7.327 on 9 degrees of freedom #Multiple R-squared: 0.5308, Adjusted R-squared: 0.4265 #F-statistic: 5.091 on 2 and 9 DF, p-value: 0.0332
결과의 마지막 행에서 전체 회귀 모델의 F 통계가 5.091 임을 알 수 있습니다. 이 F 통계량은 분자에 대한 자유도가 2이고 분모에 대한 자유도가 9입니다. R은 이 F 통계량의 p-값이 0.0332 라고 자동으로 계산합니다.
이 동등한 p-값을 직접 계산하기 위해 다음 코드를 사용할 수 있습니다.
pf(5.091, 2, 9, lower.tail = FALSE) #[1] 0.0331947
위의 선형 회귀 출력과 동일한 답을 얻습니다(그러나 더 많은 소수 자릿수가 표시됨).