В линейной регрессии F-статистика является тестовой статистикой для подхода анализа дисперсии (ANOVA) для проверки значимости модели или компонентов в модели.
F-статистика в выводе линейной модели является тестовой статистикой для проверки статистической значимости модели. F-статистические значения в anova для оценки значимости терминов или компонентов в модели.
После получения подогнанной модели, скажем, mdl, использование fitlm или stepwiselm, вы можете:
Найти F-statistic vs. constant model на дисплее вывода или с помощью
disp(mdl)
Отображение ANOVA для модели с помощью
anova(mdl,'summary')
Получение значений F-статистики для компонентов, за исключением постоянного члена с помощью
anova(mdl)
anova способ LinearModel класс.
В этом примере показано, как оценить соответствие модели и значимость коэффициентов регрессии с помощью F-статистики.
Загрузите образцы данных.
load hospital tbl = table(hospital.Age,hospital.Weight,hospital.Smoker,hospital.BloodPressure(:,1), ... 'VariableNames',{'Age','Weight','Smoker','BloodPressure'}); tbl.Smoker = categorical(tbl.Smoker);
Подгонка модели линейной регрессии.
mdl = fitlm(tbl,'BloodPressure ~ Age*Weight + Smoker + Weight^2')mdl =
Linear regression model:
BloodPressure ~ 1 + Smoker + Age*Weight + Weight^2
Estimated Coefficients:
Estimate SE tStat pValue
__________ _________ ________ __________
(Intercept) 168.02 27.694 6.067 2.7149e-08
Age 0.079569 0.39861 0.19962 0.84221
Weight -0.69041 0.3435 -2.0099 0.047305
Smoker_true 9.8027 1.0256 9.5584 1.5969e-15
Age:Weight 0.00021796 0.0025258 0.086294 0.93142
Weight^2 0.0021877 0.0011037 1.9822 0.050375
Number of observations: 100, Error degrees of freedom: 94
Root Mean Squared Error: 4.73
R-squared: 0.528, Adjusted R-Squared: 0.503
F-statistic vs. constant model: 21, p-value = 4.81e-14
F-статистика линейной аппроксимации по сравнению с постоянной моделью равна 21, с p-значением 4,81e-14. Модель значима на уровне значимости 5%. Значение R-квадрата 0,528 означает, что модель объясняет около 53% изменчивости ответа. Могут существовать другие предикторные (пояснительные) переменные, которые не включены в текущую модель.
Отображение таблицы ANOVA для подогнанной модели.
anova(mdl,'summary')ans=5×5 table
SumSq DF MeanSq F pValue
______ __ ______ ______ __________
Total 4461.2 99 45.062
Model 2354.5 5 470.9 21.012 4.8099e-14
. Linear 2263.3 3 754.42 33.663 7.2417e-15
. Nonlinear 91.248 2 45.624 2.0358 0.1363
Residual 2106.6 94 22.411
Этот дисплей разделяет изменчивость модели на линейные и нелинейные члены. Так как существует два нелинейных члена (Weight^2 и взаимодействие между Weight и Age), нелинейные степени свободы в DF столбец равен 2. В модели есть три линейных члена (один Smoker переменная индикатора, Weight, и Age). Соответствующая F-статистика в F колонки предназначены для проверки значимости линейных и нелинейных терминов как отдельных групп.
При повторных наблюдениях остаточный член также разделяется на две части; во-первых, ошибка из-за отсутствия соответствия, а во-вторых, чистая ошибка, независимая от модели, полученная из реплицированных наблюдений. В этом случае F-статистика предназначена для проверки отсутствия подгонки, то есть является ли подгонка адекватной или нет.
Отображение таблицы ANOVA для терминов модели.
anova(mdl)
ans=6×5 table
SumSq DF MeanSq F pValue
________ __ ________ _________ __________
Age 62.991 1 62.991 2.8107 0.096959
Weight 0.064104 1 0.064104 0.0028604 0.95746
Smoker 2047.5 1 2047.5 91.363 1.5969e-15
Age:Weight 0.16689 1 0.16689 0.0074466 0.93142
Weight^2 88.057 1 88.057 3.9292 0.050375
Error 2106.6 94 22.411
Этот дисплей разлагает таблицу ANOVA на термины модели. Соответствующая F-статистика в F колонка оценивает статистическую значимость каждого термина. Например, F-тест для Smoker проверяет, является ли коэффициент переменной индикатора для Smoker отличается от нуля. То есть F-тест определяет, оказывает ли курильщик значительное влияние на BloodPressure. Степени свободы для каждого члена модели - это числительные степени свободы для соответствующего F-теста. Все термины имеют одну степень свободы. В случае категориальной переменной степенями свободы является количество переменных индикатора. Smoker имеет только одну переменную индикатора, поэтому также имеет одну степень свободы.
В линейной регрессии t-статистика полезна для вывода коэффициентов регрессии. Тест гипотезы по коэффициенту i проверяет нулевую гипотезу, что он равен нулю - что означает, что соответствующий термин не является значимым - по сравнению с альтернативной гипотезой, что коэффициент отличается от нуля.
Для проверки гипотез по коэффициенту i, с
H0: βi = 0
H1: βi ≠ 0,
t-статистика является:
bi),
где SE (bi) - стандартная ошибка расчетного коэффициента bi.
После получения подогнанной модели, скажем, mdl, использование fitlm или stepwiselm, вы можете:
Найдите оценки коэффициентов, стандартные ошибки оценок (SE) и t-статистические значения тестов гипотез для соответствующих коэффициентов (tStat) на выходном дисплее.
Вызов для отображения с помощью
display(mdl)
В этом примере показано, как проверить значимость коэффициентов регрессии с помощью t-статистики.
Загрузите данные выборки и подгоните модель линейной регрессии.
load hald
mdl = fitlm(ingredients,heat)mdl =
Linear regression model:
y ~ 1 + x1 + x2 + x3 + x4
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ ________ ________
(Intercept) 62.405 70.071 0.8906 0.39913
x1 1.5511 0.74477 2.0827 0.070822
x2 0.51017 0.72379 0.70486 0.5009
x3 0.10191 0.75471 0.13503 0.89592
x4 -0.14406 0.70905 -0.20317 0.84407
Number of observations: 13, Error degrees of freedom: 8
Root Mean Squared Error: 2.45
R-squared: 0.982, Adjusted R-Squared: 0.974
F-statistic vs. constant model: 111, p-value = 4.76e-07
Вы можете видеть, что для каждого коэффициента, tStat = Estimate/SE. P-значения для тестов гипотез находятся в pValue столбец. Каждая t-статистика проверяет значимость каждого термина, учитывая другие термины в модели. Согласно этим результатам, ни один из коэффициентов не кажется значимым на уровне значимости 5%, хотя значение R-квадрата для модели действительно высокое на уровне 0,97. Это часто указывает на возможную многоколлинеарность среди переменных предиктора.
Используйте пошаговую регрессию, чтобы определить, какие переменные следует включить в модель.
load hald
mdl = stepwiselm(ingredients,heat)1. Adding x4, FStat = 22.7985, pValue = 0.000576232 2. Adding x1, FStat = 108.2239, pValue = 1.105281e-06
mdl =
Linear regression model:
y ~ 1 + x1 + x4
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ _______ __________
(Intercept) 103.1 2.124 48.54 3.3243e-13
x1 1.44 0.13842 10.403 1.1053e-06
x4 -0.61395 0.048645 -12.621 1.8149e-07
Number of observations: 13, Error degrees of freedom: 10
Root Mean Squared Error: 2.73
R-squared: 0.972, Adjusted R-Squared: 0.967
F-statistic vs. constant model: 177, p-value = 1.58e-08
В этом примере: stepwiselm начинается с постоянной модели (по умолчанию) и использует прямой выбор для инкрементного добавления x4 и x1. Каждая предикторная переменная в окончательной модели значима, учитывая, что другая переменная находится в модели. Алгоритм останавливается, когда добавление ни одной из других переменных предиктора значительно улучшается в модели. Дополнительные сведения о пошаговой регрессии см. в разделе stepwiselm.
anova | coefCI | coefTest | fitlm | LinearModel | stepwiselm