Как рассчитать значение p статистики f в r
F-тест дает F-статистику. Чтобы найти значение p, связанное со статистикой F в R, вы можете использовать следующую команду:
pf(fstat, df1, df2, low.tail = ЛОЖЬ)
- fstat – значение статистики f
- df1 – степени свободы 1
- df2 – степени свободы 2
- low.tail – возвращать или нет вероятность, связанную с нижним хвостом распределения F. По умолчанию это ИСТИНА.
Например, вот как найти значение p, связанное со статистикой F, равной 5, со степенями свободы 1 = 3 и степенями свободы 2 = 14:
pf(5, 3, 14, lower.tail = FALSE) #[1] 0.01457807
Одним из наиболее распространенных применений F-теста является проверка общей значимости регрессионной модели . В следующем примере мы покажем, как вычислить p-значение статистики F для регрессионной модели.
Пример: вычисление значения p на основе статистики F.
Допустим, у нас есть набор данных, который показывает общее количество изученных часов, общее количество сданных подготовительных экзаменов и оценку за выпускной экзамен для 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 автоматически вычисляет, что значение p для этой статистики F равно 0,0332 .
Чтобы самостоятельно вычислить эквивалентное значение p, мы могли бы использовать следующий код:
pf(5.091, 2, 9, lower.tail = FALSE) #[1] 0.0331947
Обратите внимание, что мы получаем тот же ответ (но с большим количеством десятичных знаков), что и результат линейной регрессии выше.