stepwisefit

Пошаговая регрессия

Синтаксис

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 — Сумма квадратов невязок

    • fstatF - статистическая величина для тестирования итоговой модели по сравнению ни с какой моделью (означают только),

    • pval — значение p F - статистическая величина

    • rmse — Среднеквадратичная ошибка

    • xr — Невязки для предикторов не в итоговой модели, после удаления части их объясненный предикторами в модели

    • yr — Невязки для ответа с помощью предикторов в итоговой модели

    • B Коэффициенты для условий в итоговой модели, со значениями для термина не в образцовом наборе к значению, которое было бы получено путем добавления что термин в модель

    • SE — Стандартные погрешности для содействующих оценок

    • TSTAT — статистика t для содействующих оценок

    • PVALp - значения для содействующих оценок

    • intercept — Предполагаемое прерывание

    • wasnan — Указывает, какие строки в данных содержали значения NaN

  • nextstep — рекомендуемый следующий шаг — или индекс следующего срока, который приблизится или из модели или 0, если никакие дальнейшие шаги не рекомендуются

  • history — Структура, содержащая информацию о сделанных шагах, со следующими полями:

    • B Матрица коэффициентов регрессии, где каждый столбец является одним шагом и каждой строкой, является одним коэффициентом.

    • rmse — Среднеквадратичные ошибки для модели на каждом шаге.

    • df0 — Степени свободы для регрессии на каждом шаге.

    • \in Логический массив, указывающий, какие предикторы находятся в модели на каждом шаге, где каждая строка является одним шагом и каждым столбцом, является одним предиктором.

[...] = stepwisefit(X,y,param1,val1,param2,val2,...) задает один или несколько пар имя/значение, описанных в следующей таблице.

ПараметрЗначение
'inmodel'

Логическое определение вектора называет, чтобы включать в начальную подгонку. Значение по умолчанию не должно задавать условия.

'penter'

Максимальное значение p для термина, который будет добавлен. Значением по умолчанию является 0.05.

'premove'

Минимальное значение p для термина, который будет удален. Значением по умолчанию является максимум значения 'penter' и 0.10.

'display'

'on' отображает информацию о каждом шаге в командном окне. Это значение по умолчанию.

'off' не использует отображение.

'maxiter'

Максимальное количество шагов в регрессии. Значением по умолчанию является Inf.

'keep'

Логическое определение вектора называет, чтобы сохранить в их начальном состоянии. Значение по умолчанию не должно задавать условия.

'scale'

'on' центрируется и масштабируется, каждый столбец X (вычисляет z - очки) перед подбором кривой.

'off' не масштабирует условия. Это значение по умолчанию.

Примеры

Загрузите данные в 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 - статистическая величина вычисляется к тестовым моделям с и без потенциального термина. Если бы термин не находится в настоящее время в модели, нулевая гипотеза - то, что термин имел бы нулевой коэффициент, если добавлено к модели. Если существуют достаточные доказательства, чтобы отклонить нулевую гипотезу, термин добавляется к модели. С другой стороны, если термин находится в настоящее время в модели, нулевая гипотеза - то, что термин имеет нулевой коэффициент. Если существуют недостаточные доказательства, чтобы отклонить нулевую гипотезу, термин удален из модели. Метод продолжает можно следующим образом:

  1. Соответствуйте первоначальной модели.

  2. Если какие-либо условия не в модели имеют p - значения меньше, чем допуск входа (то есть, если бы маловероятно, что у них был бы нулевой коэффициент, если добавлено к модели), добавьте тот с наименьшим значением p и повторите этот шаг; в противном случае перейдите к шагу 3.

  3. Если какие-либо члены в модели имеют p - значения, больше, чем выходной допуск (то есть, если маловероятно, что гипотеза нулевого коэффициента может быть отклонена), удалите тот с самым большим значением p и перейдите к шагу 2; в противном случае, конец.

В зависимости от условий, включенных в первоначальную модель и порядок, в котором условия перемещены в и, метод может создать различные модели от того же набора потенциальных условий. Метод останавливается, когда никакой один шаг не улучшает модель. Нет никакой гарантии, однако, что различная первоначальная модель или различная последовательность шагов не приведут к лучшей подгонке. В этом смысле пошаговые модели локально оптимальны, но не могут быть глобально оптимальными.

Ссылки

[1] Драпировщик, Н. Р., и Х. Смит. Прикладной Регрессионный анализ. Хобокен, NJ: Wiley-межнаука, 1998. стр 307–312.

Смотрите также

| |

Представлено до R2006a