Пошаговая регрессия
b = stepwisefit(X,y)
[b,se,pval,inmodel,stats,nextstep,history] = stepwisefit(...)
[...] = stepwisefit(X,y,param1
,val1
,param2
,val2
,...)
b = stepwisefit(X,y)
использует пошаговый метод, чтобы выполнить полилинейную регрессию значений ответа в n-by-1 векторный y
на p прогнозирующие условия в n-by-p матричный X
. Отличные прогнозирующие условия должны появиться в различных столбцах X
.
b
является p-by-1 вектор предполагаемых коэффициентов для всех условий в X
. Функция stepwisefit
вычисляет содействующие оценочные значения в b
можно следующим образом:
Если термин не находится в итоговой модели, то соответствующая содействующая оценка в результатах b
добавления только того термина к предикторам в итоговой модели.
Если термин находится в итоговой модели, то содействующая оценка в b
для того термина является результатом итоговой модели, которая является stepwise
, не рассматривает условия, которые это исключило из модели при вычислении этих значений.
stepwisefit
автоматически включает постоянный термин во всех моделях. Не вводите столбец 1 с непосредственно в X
.
stepwisefit
обрабатывает значения NaN
или в X
или в y
как отсутствующие значения, и игнорирует их.
[b,se,pval,inmodel,stats,nextstep,history] = stepwisefit(...)
возвращает следующую дополнительную информацию:
se
— Вектор стандартных погрешностей для b
pval
— вектор p - значения для тестирования, являются ли элементы b
0
inmodel
— Логический вектор, с длиной равняются количеству столбцов в X
, задавая, какие условия находятся в итоговой модели
статистика
Структура дополнительной статистики со следующими полями. Все статистические данные принадлежат итоговой модели кроме, где отмечено.
source
— Вектор символов 'stepwisefit'
dfe
— Степени свободы для ошибки
df0
— Степени свободы для регрессии
SStotal
— Полная сумма квадратов ответа
SSresid
— Сумма квадратов невязок
fstat
— F - статистическая величина для тестирования итоговой модели по сравнению ни с какой моделью (означают только),
pval
— значение p F - статистическая величина
rmse
— Среднеквадратичная ошибка
xr
— Невязки для предикторов не в итоговой модели, после удаления части их объясненный предикторами в модели
yr
— Невязки для ответа с помощью предикторов в итоговой модели
B
Коэффициенты для условий в итоговой модели, со значениями для термина не в образцовом наборе к значению, которое было бы получено путем добавления что термин в модель
SE
— Стандартные погрешности для содействующих оценок
TSTAT
— статистика t для содействующих оценок
PVAL
— p - значения для содействующих оценок
intercept
— Предполагаемое прерывание
wasnan
— Указывает, какие строки в данных содержали значения NaN
nextstep
— рекомендуемый следующий шаг — или индекс следующего срока, который приблизится или из модели или 0
, если никакие дальнейшие шаги не рекомендуются
history
— Структура, содержащая информацию о сделанных шагах, со следующими полями:
B
Матрица коэффициентов регрессии, где каждый столбец является одним шагом и каждой строкой, является одним коэффициентом.
rmse
— Среднеквадратичные ошибки для модели на каждом шаге.
df0
— Степени свободы для регрессии на каждом шаге.
\in
Логический массив, указывающий, какие предикторы находятся в модели на каждом шаге, где каждая строка является одним шагом и каждым столбцом, является одним предиктором.
[...] = stepwisefit(X,y,
задает один или несколько пар имя/значение, описанных в следующей таблице.param1
,val1
,param2
,val2
,...)
Параметр | Значение |
---|---|
'inmodel' | Логическое определение вектора называет, чтобы включать в начальную подгонку. Значение по умолчанию не должно задавать условия. |
'penter' | Максимальное значение p для термина, который будет добавлен. Значением по умолчанию является |
'premove' | Минимальное значение p для термина, который будет удален. Значением по умолчанию является максимум значения |
'display' |
|
'maxiter' | Максимальное количество шагов в регрессии. Значением по умолчанию является |
'keep' | Логическое определение вектора называет, чтобы сохранить в их начальном состоянии. Значение по умолчанию не должно задавать условия. |
'scale' |
|
Загрузите данные в hald.mat
, который содержит наблюдения за теплом реакции различных цементных смесей:
load hald whos Name Size Bytes Class Attributes Description 22x58 2552 char hald 13x5 520 double heat 13x1 104 double ingredients 13x4 416 double
Ответ (heat
) зависит от количеств этих четырех предикторов (столбцы ingredients
).
Используйте stepwisefit
, чтобы выполнить пошаговый алгоритм регрессии, начинающийся без членов в модели и использующий допуски входа/выхода 0.05/0.10 на p - значения:
stepwisefit(ingredients,heat,... 'penter',0.05,'premove',0.10); Initial columns included: none Step 1, added column 4, p=0.000576232 Step 2, added column 1, p=1.10528e-006 Final columns included: 1 4 'Coeff' 'Std.Err.' 'Status' 'P' [ 1.4400] [ 0.1384] 'In' [1.1053e-006] [ 0.4161] [ 0.1856] 'Out' [ 0.0517] [-0.4100] [ 0.1992] 'Out' [ 0.0697] [-0.6140] [ 0.0486] 'In' [1.8149e-007]
stepwisefit
автоматически включает член в модели прерывания, таким образом, вы не добавляете его явным образом в ingredients
, как вы были бы для regress
. Для условий не в модели, содействующие оценки и их стандартные погрешности - те, которые заканчиваются путем добавления соответствующего термина в итоговую модель.
Параметр inmodel
используется, чтобы задать условия в первоначальной модели:
initialModel = ... [false true false false]; % Force in 2nd term stepwisefit(ingredients,heat,... 'inmodel',initialModel,... 'penter',.05,'premove',0.10); Initial columns included: 2 Step 1, added column 1, p=2.69221e-007 Final columns included: 1 2 'Coeff' 'Std.Err.' 'Status' 'P' [ 1.4683] [ 0.1213] 'In' [2.6922e-007] [ 0.6623] [ 0.0459] 'In' [5.0290e-008] [ 0.2500] [ 0.1847] 'Out' [ 0.2089] [-0.2365] [ 0.1733] 'Out' [ 0.2054]
Предшествование двум моделям, созданным из различных первоначальных моделей, использует различные подмножества прогнозирующих условий. Условия 2 и 4, загрузил эти две модели, высоко коррелируются:
term2 = ingredients(:,2); term4 = ingredients(:,4); R = corrcoef(term2,term4) R = 1.0000 -0.9730 -0.9730 1.0000
Чтобы сравнить модели, используйте stats
вывод stepwisefit
:
[betahat1,se1,pval1,inmodel1,stats1] = ... stepwisefit(ingredients,heat,... 'penter',.05,'premove',0.10,... 'display','off'); [betahat2,se2,pval2,inmodel2,stats2] = ... stepwisefit(ingredients,heat,... 'inmodel',initialModel,... 'penter',.05,'premove',0.10,... 'display','off'); RMSE1 = stats1.rmse RMSE1 = 2.7343 RMSE2 = stats2.rmse RMSE2 = 2.4063
Вторая модель имеет более низкую Среднеквадратичную ошибку (RMSE).
Stepwise regression является систематическим методом для добавления и удаления условий от полилинейного основанного на модели на их статистическом значении в регрессии. Метод начинается с первоначальной модели и затем сравнивает объяснительную силу инкрементно больших и меньших моделей. На каждом шаге значении p F - статистическая величина вычисляется к тестовым моделям с и без потенциального термина. Если бы термин не находится в настоящее время в модели, нулевая гипотеза - то, что термин имел бы нулевой коэффициент, если добавлено к модели. Если существуют достаточные доказательства, чтобы отклонить нулевую гипотезу, термин добавляется к модели. С другой стороны, если термин находится в настоящее время в модели, нулевая гипотеза - то, что термин имеет нулевой коэффициент. Если существуют недостаточные доказательства, чтобы отклонить нулевую гипотезу, термин удален из модели. Метод продолжает можно следующим образом:
Соответствуйте первоначальной модели.
Если какие-либо условия не в модели имеют p - значения меньше, чем допуск входа (то есть, если бы маловероятно, что у них был бы нулевой коэффициент, если добавлено к модели), добавьте тот с наименьшим значением p и повторите этот шаг; в противном случае перейдите к шагу 3.
Если какие-либо члены в модели имеют p - значения, больше, чем выходной допуск (то есть, если маловероятно, что гипотеза нулевого коэффициента может быть отклонена), удалите тот с самым большим значением p и перейдите к шагу 2; в противном случае, конец.
В зависимости от условий, включенных в первоначальную модель и порядок, в котором условия перемещены в и, метод может создать различные модели от того же набора потенциальных условий. Метод останавливается, когда никакой один шаг не улучшает модель. Нет никакой гарантии, однако, что различная первоначальная модель или различная последовательность шагов не приведут к лучшей подгонке. В этом смысле пошаговые модели локально оптимальны, но не могут быть глобально оптимальными.
[1] Драпировщик, Н. Р., и Х. Смит. Прикладной Регрессионный анализ. Хобокен, NJ: Wiley-межнаука, 1998. стр 307–312.