fitlm

Подходящая модель линейной регрессии

Синтаксис

mdl = fitlm(tbl)
mdl = fitlm(X,y)
mdl = fitlm(___,modelspec)
mdl = fitlm(___,Name,Value)

Описание

пример

mdl = fitlm(tbl) возвращает подгонку модели линейной регрессии к переменным в таблице или массиве набора данных tbl. По умолчанию fitlm берет последнюю переменную в качестве переменной отклика.

пример

mdl = fitlm(X,y) возвращает модель линейной регрессии ответов y, подгонка к матрице данных X.

пример

mdl = fitlm(___,modelspec) задает образцовую спецификацию с помощью любой из комбинаций входных аргументов в предыдущих синтаксисах.

пример

mdl = fitlm(___,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, можно задать, какие переменные являются категориальными, выполняют устойчивую регрессию или используют веса наблюдения.

Примеры

свернуть все

Соответствуйте модели линейной регрессии использование матричного набора входных данных.

Загрузите набор данных carsmall, матричный набор входных данных.

load carsmall
X = [Weight,Horsepower,Acceleration];

Соответствуйте модели линейной регрессии при помощи fitlm.

mdl = fitlm(X,MPG)
mdl = 
Linear regression model:
    y ~ 1 + x1 + x2 + x3

Estimated Coefficients:
                    Estimate        SE          tStat        pValue  
                   __________    _________    _________    __________

    (Intercept)        47.977       3.8785        12.37    4.8957e-21
    x1             -0.0065416    0.0011274      -5.8023    9.8742e-08
    x2              -0.042943     0.024313      -1.7663       0.08078
    x3              -0.011583      0.19333    -0.059913       0.95236


Number of observations: 93, Error degrees of freedom: 89
Root Mean Squared Error: 4.09
R-squared: 0.752,  Adjusted R-Squared: 0.744
F-statistic vs. constant model: 90, p-value = 7.38e-27

Образцовое отображение включает образцовую формулу, оцененные коэффициенты и образцовую итоговую статистику.

Образцовая формула в отображении, y ~ 1 + x1 + x2 + x3, соответствует y=β0+β1X1+β2X2+β3X3+ϵ.

Образцовое отображение также показывает предполагаемую информацию о коэффициенте, которая хранится в свойстве Coefficients. Отобразите свойство Coefficients.

mdl.Coefficients
ans=4×4 table
                    Estimate        SE          tStat        pValue  
                   __________    _________    _________    __________

    (Intercept)        47.977       3.8785        12.37    4.8957e-21
    x1             -0.0065416    0.0011274      -5.8023    9.8742e-08
    x2              -0.042943     0.024313      -1.7663       0.08078
    x3              -0.011583      0.19333    -0.059913       0.95236

Свойство Coefficient включает эти столбцы:

  • Estimate — Коэффициент оценивает для каждого соответствующего члена в модели. Например, оценка для постоянного термина (intercept) 47.977.

  • SE — Стандартная погрешность коэффициентов.

  • tStatt-статистическая-величина для каждого коэффициента, чтобы протестировать нулевую гипотезу, что соответствующий коэффициент является нулем против альтернативы, что это отличается от нуля, учитывая другие предикторы в модели. Обратите внимание на то, что tStat = Estimate/SE. Например, t-статистическая-величина для прерывания является 47.977/3.8785 = 12.37.

  • pValuep-значение для t-статистической-величины теста гипотезы, который соответствующий коэффициент равен нулю или нет. Например, p-значение t-статистической-величины для x2 больше, чем 0,05, таким образом, этот термин не является значительным на 5%-м уровне значения, учитывая другие члены в модели.

Итоговые статистические данные модели:

  • Number of observations — Количество строк без любых значений NaN. Например, Number of observations равняется 93, потому что вектор данных MPG имеет шесть значений NaN, и вектор данных Horsepower имеет одно значение NaN для различного наблюдения, где количество строк в X и MPG равняется 100.

  • Error degrees of freedomn p, где n является количеством наблюдений и p, является количеством коэффициентов в модели, включая прерывание. Например, модель имеет четыре предиктора, таким образом, Error degrees of freedom равняется 93 – 4 = 89.

  • Root mean squared error — Квадратный корень из среднеквадратической ошибки, которая оценивает стандартное отклонение распределения ошибок.

  • R-squared и Adjusted R-squared — Коэффициент детерминации и настроенный коэффициент детерминации, соответственно. Например, значение R-squared предполагает, что модель объясняет приблизительно 75% изменчивости в переменной отклика MPG.

  • F-statistic vs. constant model — Протестируйте статистическую величину на F-тест на модели регрессии, которая тестирует, соответствует ли модель значительно лучше, чем вырожденная модель, состоящая только из постоянного термина.

  • p-valuep-значение для F-теста на модели. Например, модель является значительной с p-значением 7.3816e-27.

Можно найти эти статистические данные в образцовых свойствах (NumObservations, DFE, RMSE и Rsquared) и при помощи функции anova.

anova(mdl,'summary')
ans=3×5 table
                SumSq     DF    MeanSq      F         pValue  
                ______    __    ______    ______    __________

    Total       6004.8    92    65.269                        
    Model         4516     3    1505.3    89.987    7.3816e-27
    Residual    1488.8    89    16.728                        

Загрузите выборочные данные.

load carsmall

Сохраните переменные в таблице.

tbl = table(Weight,Acceleration,MPG,'VariableNames',{'Weight','Acceleration','MPG'});

Отобразите первые пять строк таблицы.

tbl(1:5,:)
ans=5×3 table
    Weight    Acceleration    MPG
    ______    ____________    ___

     3504           12        18 
     3693         11.5        15 
     3436           11        18 
     3433           12        16 
     3449         10.5        17 

Соответствуйте модели линейной регрессии для миль на галлон (MPG). Задайте образцовую формулу при помощи обозначения Уилкинсона.

lm = fitlm(tbl,'MPG~Weight+Acceleration')
lm = 
Linear regression model:
    MPG ~ 1 + Weight + Acceleration

Estimated Coefficients:
                     Estimate         SE         tStat       pValue  
                    __________    __________    _______    __________

    (Intercept)         45.155        3.4659     13.028    1.6266e-22
    Weight          -0.0082475    0.00059836    -13.783    5.3165e-24
    Acceleration       0.19694       0.14743     1.3359       0.18493


Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 4.12
R-squared: 0.743,  Adjusted R-Squared: 0.738
F-statistic vs. constant model: 132, p-value = 1.38e-27

Модель 'MPG~Weight+Acceleration' в этом примере эквивалентна, чтобы установить образцовую спецификацию как 'linear'. Например,

lm2 = fitlm(tbl,'linear');

Если вы используете вектор символов для образцовой спецификации, и вы не задаете переменную отклика, то fitlm принимает последнюю переменную в tbl как переменная отклика и другие переменные как переменные прогноза.

Соответствуйте модели линейной регрессии использование образцовой формулы, заданной обозначением Уилкинсона.

Загрузите выборочные данные.

load carsmall

Сохраните переменные в таблице.

tbl = table(Weight,Acceleration,Model_Year,MPG,'VariableNames',{'Weight','Acceleration','Model_Year','MPG'});

Соответствуйте модели линейной регрессии для миль на галлон (MPG) с весом и ускорением как переменные прогноза.

lm = fitlm(tbl,'MPG~Weight+Acceleration')
lm = 
Linear regression model:
    MPG ~ 1 + Weight + Acceleration

Estimated Coefficients:
                     Estimate         SE         tStat       pValue  
                    __________    __________    _______    __________

    (Intercept)         45.155        3.4659     13.028    1.6266e-22
    Weight          -0.0082475    0.00059836    -13.783    5.3165e-24
    Acceleration       0.19694       0.14743     1.3359       0.18493


Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 4.12
R-squared: 0.743,  Adjusted R-Squared: 0.738
F-statistic vs. constant model: 132, p-value = 1.38e-27

P-значение 0,18493 указывает, что Acceleration не оказывает значительное влияние на MPG.

Удалите Acceleration из модели и попытайтесь улучшить модель путем добавления переменной прогноза Model_Year. Сначала задайте Model_Year как категориальную переменную.

tbl.Model_Year = categorical(tbl.Model_Year);
lm = fitlm(tbl,'MPG~Weight+Model_Year')
lm = 
Linear regression model:
    MPG ~ 1 + Weight + Model_Year

Estimated Coefficients:
                      Estimate         SE         tStat       pValue  
                     __________    __________    _______    __________

    (Intercept)           40.11        1.5418     26.016    1.2024e-43
    Weight           -0.0066475    0.00042802    -15.531    3.3639e-27
    Model_Year_76        1.9291       0.74761     2.5804      0.011488
    Model_Year_82        7.9093       0.84975     9.3078    7.8681e-15


Number of observations: 94, Error degrees of freedom: 90
Root Mean Squared Error: 2.92
R-squared: 0.873,  Adjusted R-Squared: 0.868
F-statistic vs. constant model: 206, p-value = 3.83e-40

Определение modelspec с помощью обозначения Уилкинсона позволяет вам обновить модель, не имея необходимость изменять матрицу проекта. fitlm использует только переменные, которые заданы в формуле. Это также создает необходимые две фиктивных переменные индикатора для категориальной переменной Model_Year.

Соответствуйте модели линейной регрессии использование матрицы условий.

Матрица условий для табличного входа

Если образцовые переменные находятся в таблице, то столбец 0 s в матрице условий представляет положение переменной отклика.

Загрузите набор данных hospital.

load hospital

Сохраните переменные в таблице.

t = table(hospital.Sex,hospital.BloodPressure(:,1),hospital.Age,hospital.Smoker, ...
    'VariableNames',{'Sex','BloodPressure','Age','Smoker'});

Представляйте линейную модель 'BloodPressure ~ 1 + Sex + Age + Smoker' с помощью матрицы условий. Переменная отклика находится во втором столбце таблицы, таким образом, второй столбец матрицы условий должен быть столбцом 0 s для переменной отклика.

T = [0 0 0 0;1 0 0 0;0 0 1 0;0 0 0 1]
T = 4×4

     0     0     0     0
     1     0     0     0
     0     0     1     0
     0     0     0     1

Соответствуйте линейной модели.

mdl1 = fitlm(t,T)
mdl1 = 
Linear regression model:
    BloodPressure ~ 1 + Sex + Age + Smoker

Estimated Coefficients:
                   Estimate       SE        tStat        pValue  
                   ________    ________    ________    __________

    (Intercept)      116.14      2.6107      44.485    7.1287e-66
    Sex_Male       0.050106     0.98364    0.050939       0.95948
    Age            0.085276    0.066945      1.2738        0.2058
    Smoker_1           9.87      1.0346      9.5395    1.4516e-15


Number of observations: 100, Error degrees of freedom: 96
Root Mean Squared Error: 4.78
R-squared: 0.507,  Adjusted R-Squared: 0.492
F-statistic vs. constant model: 33, p-value = 9.91e-15

Матрица условий для матричного входа

Если переменные прогноза и переменные отклика находятся в матрице и вектор-столбце, то необходимо включать 0 для переменной отклика в конце каждой строки в матрице условий.

Загрузите набор данных carsmall и задайте матрицу предикторов.

load carsmall
X = [Acceleration,Weight];

Задайте модель 'MPG ~ Acceleration + Weight + Acceleration:Weight + Weight^2' с помощью матрицы условий. Эта модель включает основной эффект и двухсторонние периоды взаимодействия для переменных Acceleration и Weight и термин второго порядка для переменной Weight.

T = [0 0 0;1 0 0;0 1 0;1 1 0;0 2 0]
T = 5×3

     0     0     0
     1     0     0
     0     1     0
     1     1     0
     0     2     0

Соответствуйте линейной модели.

mdl2 = fitlm(X,MPG,T)
mdl2 = 
Linear regression model:
    y ~ 1 + x1*x2 + x2^2

Estimated Coefficients:
                    Estimate          SE         tStat       pValue  
                   ___________    __________    _______    __________

    (Intercept)         48.906        12.589     3.8847    0.00019665
    x1                 0.54418       0.57125    0.95261       0.34337
    x2               -0.012781     0.0060312    -2.1192      0.036857
    x1:x2          -0.00010892    0.00017925    -0.6076         0.545
    x2^2            9.7518e-07    7.5389e-07     1.2935       0.19917


Number of observations: 94, Error degrees of freedom: 89
Root Mean Squared Error: 4.1
R-squared: 0.751,  Adjusted R-Squared: 0.739
F-statistic vs. constant model: 67, p-value = 4.99e-26

Только прерывание и термин x2, который соответствует переменной Weight, являются значительными на 5%-м уровне значения.

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

Модель с категориальным предиктором

Загрузите набор данных carsmall и создайте модель линейной регрессии MPG как функция Model_Year. Чтобы обработать числовой векторный Model_Year как категориальную переменную, идентифицируйте предиктор с помощью аргумента пары "имя-значение" 'CategoricalVars'.

load carsmall
mdl = fitlm(Model_Year,MPG,'CategoricalVars',1,'VarNames',{'Model_Year','MPG'})
mdl = 
Linear regression model:
    MPG ~ 1 + Model_Year

Estimated Coefficients:
                     Estimate      SE      tStat       pValue  
                     ________    ______    ______    __________

    (Intercept)        17.69     1.0328    17.127    3.2371e-30
    Model_Year_76     3.8839     1.4059    2.7625     0.0069402
    Model_Year_82      14.02     1.4369    9.7571    8.2164e-16


Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
R-squared: 0.531,  Adjusted R-Squared: 0.521
F-statistic vs. constant model: 51.6, p-value = 1.07e-15

Образцовая формула в отображении, MPG ~ 1 + Model_Year, соответствует

MPG=β0+β1ΙГод=76+β2ΙГод=82+ϵ,

где ΙГод=76 и ΙГод=82 переменные индикатора, значение которых является тем, если значение Model_Year равняется 76 и 82, соответственно. Переменная Model_Year включает три отличных значения, которые можно проверять при помощи функции unique.

unique(Model_Year)
ans = 3×1

    70
    76
    82

fitlm выбирает наименьшее значение в Model_Year как контрольный уровень ('70') и создает две переменные индикатора ΙГод=76 и ΙГод=82. Модель включает только две переменные индикатора, потому что матрица проекта становится неполным рангом, если модель включает три переменные индикатора (один для каждого уровня) и термин прерывания.

Модель с полными переменными индикатора

Можно интерпретировать образцовую формулу mdl как модель, которая имеет три переменные индикатора без термина прерывания:

y=β0Ιx1=70+(β0+β1)Ιx1=76+(β0+β2)Ιx2=82+ϵ.

Также можно создать модель, которая имеет три переменные индикатора без термина прерывания путем ручного создания переменных индикатора и определения образцовой формулы.

temp_Year = dummyvar(categorical(Model_Year));
Model_Year_70 = temp_Year(:,1);
Model_Year_76 = temp_Year(:,2);
Model_Year_82 = temp_Year(:,3);
tbl = table(Model_Year_70,Model_Year_76,Model_Year_82,MPG);
mdl = fitlm(tbl,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1')
mdl = 
Linear regression model:
    MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82

Estimated Coefficients:
                     Estimate      SE       tStat       pValue  
                     ________    _______    ______    __________

    Model_Year_70      17.69      1.0328    17.127    3.2371e-30
    Model_Year_76     21.574     0.95387    22.617    4.0156e-39
    Model_Year_82      31.71     0.99896    31.743    5.2234e-51


Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56

Выберите Reference Level in Model

Можно выбрать контрольный уровень путем изменения порядка категорий в категориальной переменной. Во-первых, создайте категориальную переменную Year.

Year = categorical(Model_Year);

Проверяйте порядок категорий при помощи функции categories.

categories(Year)
ans = 3x1 cell array
    {'70'}
    {'76'}
    {'82'}

Если вы используете Year в качестве переменной прогноза, то fitlm выбирает первую категорию '70' в качестве контрольного уровня. Переупорядочьте Year при помощи функции reordercats.

Year_reordered = reordercats(Year,{'76','70','82'});
categories(Year_reordered)
ans = 3x1 cell array
    {'76'}
    {'70'}
    {'82'}

Первой категорией Year_reordered является '76'. Создайте модель линейной регрессии MPG как функция Year_reordered.

mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})
mdl2 = 
Linear regression model:
    MPG ~ 1 + Model_Year

Estimated Coefficients:
                     Estimate      SE        tStat       pValue  
                     ________    _______    _______    __________

    (Intercept)       21.574     0.95387     22.617    4.0156e-39
    Model_Year_70    -3.8839      1.4059    -2.7625     0.0069402
    Model_Year_82     10.136      1.3812     7.3385    8.7634e-11


Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
R-squared: 0.531,  Adjusted R-Squared: 0.521
F-statistic vs. constant model: 51.6, p-value = 1.07e-15

mdl2 использует '76' в качестве контрольного уровня и включает две переменные индикатора ΙГод=70 и ΙГод=82.

Оцените категориальный предиктор

Образцовое отображение mdl2 включает p-значение каждого термина, чтобы протестировать, равен ли соответствующий коэффициент нулю. Каждое p-значение исследует каждую переменную индикатора. Чтобы исследовать категориальную переменную Model_Year как группу переменных индикатора, используйте anova. Задайте 'components', чтобы возвратить компонент таблица АНОВОЙ, которая включает статистику АНОВОЙ для каждой переменной в модели кроме постоянного термина.

anova(mdl2,'components')
ans=2×5 table
                  SumSq     DF    MeanSq      F        pValue  
                  ______    __    ______    _____    __________

    Model_Year    3190.1     2    1595.1    51.56    1.0694e-15
    Error         2815.2    91    30.936                       

Таблица АНОВОЙ компонента включает p-значение переменной Model_Year, которая меньше, чем p-значения переменных индикатора.

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

Загрузка демонстрационных данных.

load hospital

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

mdl = fitlm(hospital,'interactions','ResponseVar','Weight',...
    'PredictorVars',{'Sex','Age','Smoker'},...
    'CategoricalVar',{'Sex','Smoker'})
mdl = 
Linear regression model:
    Weight ~ 1 + Sex*Age + Sex*Smoker + Age*Smoker

Estimated Coefficients:
                         Estimate      SE        tStat        pValue  
                         ________    _______    ________    __________

    (Intercept)             118.7     7.0718      16.785     6.821e-30
    Sex_Male               68.336     9.7153      7.0339    3.3386e-10
    Age                   0.31068    0.18531      1.6765      0.096991
    Smoker_1               3.0425     10.446     0.29127       0.77149
    Sex_Male:Age         -0.49094    0.24764     -1.9825      0.050377
    Sex_Male:Smoker_1      0.9509     3.8031     0.25003       0.80312
    Age:Smoker_1         -0.07288    0.26275    -0.27737       0.78211


Number of observations: 100, Error degrees of freedom: 93
Root Mean Squared Error: 8.75
R-squared: 0.898,  Adjusted R-Squared: 0.892
F-statistic vs. constant model: 137, p-value = 6.91e-44

Вес пациентов, кажется, значительно не отличается согласно возрасту, или состоянию курения или взаимодействию этих факторов с терпеливым полом на 5%-м уровне значения.

Загрузите набор данных hald, который измеряет эффект цементного состава на его стабилизирующем тепле.

load hald

Этот набор данных включает переменные ingredients и heat. Матричный ingredients содержит состав процента четырех химикатов, существующих в цементе. Векторный heat содержит значения для тепла, укрепляющегося после 180 дней для каждой цементной выборки.

Соответствуйте устойчивой модели линейной регрессии к данным.

mdl = fitlm(ingredients,heat,'RobustOpts','on')
mdl = 
Linear regression model (robust fit):
    y ~ 1 + x1 + x2 + x3 + x4

Estimated Coefficients:
                   Estimate      SE        tStat       pValue 
                   ________    _______    ________    ________

    (Intercept)       60.09     75.818     0.79256      0.4509
    x1               1.5753    0.80585      1.9548    0.086346
    x2               0.5322    0.78315     0.67957     0.51596
    x3              0.13346     0.8166     0.16343     0.87424
    x4             -0.12052     0.7672    -0.15709     0.87906


Number of observations: 13, Error degrees of freedom: 8
Root Mean Squared Error: 2.65
R-squared: 0.979,  Adjusted R-Squared: 0.969
F-statistic vs. constant model: 94.6, p-value = 9.03e-07

Для получения дополнительной информации смотрите тему, Устойчивая Регрессия — Уменьшает Эффекты Выброса, который сравнивает результаты устойчивой подгонки к стандартной подгонке наименьших квадратов.

Входные параметры

свернуть все

Входные данные, заданные как таблица или массив набора данных. Когда modelspec является formula, формула задает переменные прогноза и переменные отклика. В противном случае, если вы не задаете переменные прогноза и переменные отклика, последняя переменная в tbl является переменной отклика, и другие - переменные прогноза по умолчанию.

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

Чтобы установить различный столбец как переменную отклика, используйте аргумент пары "имя-значение" ResponseVar. Чтобы использовать подмножество столбцов как предикторы, используйте аргумент пары "имя-значение" PredictorVars.

Переменные прогноза, заданные как n-by-p матрица, где n является количеством наблюдений и p, являются количеством переменных прогноза. Каждый столбец X представляет одну переменную, и каждая строка представляет одно наблюдение.

По умолчанию существует постоянный член в модели, если вы явным образом не удаляете его, не включайте столбец 1 с в X.

Типы данных: single | double

Переменная отклика, заданная как n-by-1 вектор, где n является количеством наблюдений. Каждая запись в y является ответом для соответствующей строки X.

Типы данных: single | double | logical

Образцовая спецификация, заданная как одно из этих значений.

  • Вектор символов или скаляр строки именование модели.

    ЗначениеТип модели
    'constant'Модель содержит только константу (прерывание) термин.
    'linear'Модель содержит прерывание и линейный член для каждого предиктора.
    'interactions'Модель содержит прерывание, линейный член для каждого предиктора и все продукты пар отличных предикторов (никакие условия в квадрате).
    'purequadratic'Модель содержит термин прерывания и линейный и придает условиям квадратную форму для каждого предиктора.
    'quadratic'Модель содержит термин прерывания, линейный, и придает квадратную форму условиям для каждого предиктора и всем продуктам пар отличных предикторов.
    'polyijk'Модель является полиномом со всеми условиями до степени i в первом предикторе, степень j во втором предикторе, и так далее. Задайте максимальную степень для каждого предиктора при помощи цифр 0 хотя 9. Модель содержит периоды взаимодействия, но степень каждого периода взаимодействия не превышает максимальное значение заданных степеней. Например, 'poly13' имеет прерывание и x 1, x 2, x 22, x 23, x 1*x2, и x 1*x22 условия, где x 1 и x 2 является первыми и вторыми предикторами, соответственно.
  • t (p + 1) матрица или Матрица Условий, задавая члены в модели, где t является количеством условий и p, является количеством переменных прогноза и +1 счетом на переменную отклика. Матрица условий удобна, когда количество предикторов является большим, и вы хотите сгенерировать условия программно.

  • Вектор символов или скаляр строки представление Формулы в форме

    'Y ~ terms',

    где terms находится в Обозначении Уилкинсона.

Пример: 'quadratic'

Пример: 'y ~ X1 + X2^2 + X1:X2'

Типы данных: single | double | char | string

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Intercept',false,'PredictorVars',[1,3],'ResponseVar',5,'RobustOpts','logistic' задает устойчивую модель регрессии без постоянного термина, где использование алгоритма, логистическая функция взвешивания со значением по умолчанию, настраивающим постоянные, первые и третьи переменные, является переменными прогноза и пятой переменной, является переменной отклика.

Категориальный список переменных, заданный как пара, разделенная запятой, состоящая из 'CategoricalVars' и или массив строк или массив ячеек из символьных векторов, содержащий категориальные имена переменных в таблице или массиве набора данных tbl или логический или числовой индексный вектор указание, какие столбцы являются категориальными.

  • Если данные находятся в таблице или массиве набора данных tbl, то по умолчанию fitlm обрабатывает все категориальные значения, логические значения, символьные массивы, строковые массивы и массивы ячеек из символьных векторов как категориальные переменные.

  • Если данные находятся в матричном X, то значением по умолчанию 'CategoricalVars' является пустой матричный []. Таким образом, никакая переменная не является категориальной, если вы не задаете его как категориальный.

Например, можно задать наблюдения 2 и 3 из 6 как категориальное использование любого из следующих примеров.

Пример: 'CategoricalVars',[2,3]

Пример: 'CategoricalVars',logical([0 1 1 0 0 0])

Типы данных: single | double | logical | string | cell

Наблюдения, чтобы исключить из подгонки, заданной как пара, разделенная запятой, состоящая из 'Exclude' и логического или числового индексного вектора указание, который наблюдения исключить из подгонки.

Например, можно исключить наблюдения 2 и 3 из 6 использований любого из следующих примеров.

Пример: 'Exclude',[2,3]

Пример: 'Exclude',logical([0 1 1 0 0 0])

Типы данных: single | double | logical

Индикатор для постоянного термина (прерывание) в подгонке, заданной как пара, разделенная запятой, состоящая из 'Intercept' и или true, чтобы включать или false, чтобы удалить постоянный термин из модели.

Используйте 'Intercept' только при определении модели с помощью вектора символов или представьте в виде строки скаляр, не формулу или матрицу.

Пример: 'Intercept',false

Переменные прогноза, чтобы использовать в подгонке, заданной как пара, разделенная запятой, состоящая из 'PredictorVars' и или массив строк или массив ячеек из символьных векторов имен переменных в таблице или массиве набора данных tbl или логический или числовой индексный вектор указание, какие столбцы являются переменными прогноза.

Значения строки или векторы символов должны быть среди имен в tbl или имен, вы задаете использование аргумента пары "имя-значение" 'VarNames'.

Значением по умолчанию являются все переменные в X или все переменные в tbl за исключением ResponseVar.

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

Пример: 'PredictorVars',[2,3]

Пример: 'PredictorVars',logical([0 1 1 0 0 0])

Типы данных: single | double | logical | string | cell

Переменная отклика, чтобы использовать в подгонке, заданной как пара, разделенная запятой, состоящая из 'ResponseVar' и или вектор символов или представить в виде строки скаляр, содержащий имя переменной в таблице или массиве набора данных tbl или логический или числовой индексный вектор указание, какой столбец является переменной отклика. Обычно необходимо использовать 'ResponseVar' при подборе кривой таблице или массиву набора данных tbl.

Например, можно задать четвертую переменную, сказать yield, как ответ из шести переменных, одним из следующих способов.

Пример: 'ResponseVar','yield'

Пример: 'ResponseVar',[4]

Пример: 'ResponseVar',logical([0 0 0 1 0 0])

Типы данных: single | double | logical | char | string

Индикатор устойчивого подходящего типа, чтобы использовать, заданный как пара, разделенная запятой, состоящая из 'RobustOpts' и одно из этих значений.

  • 'off' Никакой устойчивый подбор кривой. fitlm использует обычные наименьшие квадраты.

  • 'on' — Устойчивый подбор кривой с помощью веса 'bisquare' функционирует со значением по умолчанию, настраивающимся постоянный.

  • Вектор символов или скаляр строки — Имя устойчивого подходящего веса функционируют из следующей таблицы. fitlm использует соответствующее значение по умолчанию, настраивающееся постоянный заданный в таблице.

  • Структура с этими двумя полями RobustWgtFun и Tune.

    • Поле RobustWgtFun содержит имя устойчивой подходящей функции веса из следующей таблицы или указателя на функцию пользовательской функции веса.

    • Поле Tune содержит постоянную настройку. Если вы не устанавливаете поле Tune, fitlm использует соответствующее значение по умолчанию, настраивающееся постоянный.

    Функция весаОписаниеЗначение по умолчанию, настраивающееся постоянный
    'andrews'w = (abs(r)<pi) .* sin(r) ./ r1.339
    'bisquare'w = (abs(r)<1) .* (1 - r.^2).^2 (также названный biweight)4.685
    'cauchy'w = 1 ./ (1 + r.^2)2.385
    'fair'w = 1 ./ (1 + abs(r))1.400
    'huber'w = 1 ./ max(1, abs(r))1.345
    'logistic'w = tanh(r) ./ r1.205
    'ols'Обычные наименьшие квадраты (никакая функция взвешивания)'none'
    'talwar'w = 1 * (abs(r)<1)2.795
    'welsch'w = exp(-(r.^2))2.985
    указатель на функциюПользовательская функция веса, которая принимает векторный r масштабированных невязок и возвращает вектор весов тот же размер как r1
    • Настраивающие константы значения по умолчанию встроенных функций веса дают содействующие оценки, которые приблизительно на 95% более статистически эффективны, чем обычные оценки наименьших квадратов, если ответ имеет нормальное распределение без выбросов. Уменьшение настраивающихся постоянных увеличений подавление присвоенного к большим невязкам; увеличение настраивающихся постоянных уменьшений подавление присвоенного к большим невязкам.

    • Значение r в функциях веса

      r = resid/(tune*s*sqrt(1–h)),

      откуда resid является вектором невязок предыдущей итерации, tune является постоянной настройкой, h является вектором значений рычагов от подгонки наименьших квадратов, и s является оценкой стандартного отклонения остаточного члена, данного

      s = MAD/0.6745.

      MAD является средним абсолютным отклонением невязок от их медианы. Постоянные 0.6745 делают оценку несмещенной для нормального распределения. Если X имеет столбцы p, программное обеспечение исключает самый маленький p абсолютные отклонения при вычислении медианы.

Для устойчивого подбора кривой fitlm использует M-оценку, чтобы сформулировать оценку уравнений и решает их использующий метод итеративных перевзвешенных наименьших квадратов (IRLS).

Пример: 'RobustOpts','andrews'

Имена переменных, заданных как пара, разделенная запятой, состоящая из 'VarNames' и массива строк или массива ячеек из символьных векторов включая имена для столбцов X сначала и имя для переменной отклика y в последний раз.

'VarNames' не применим к переменным в таблице или массиве набора данных, потому что те переменные уже имеют имена.

Например, если в ваших данных, лошадиная сила, ускорение, и модельный год автомобилей являются переменными прогноза, и мили на галлон (MPG) являются переменной отклика, то можно назвать переменные можно следующим образом.

Пример: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}

Типы данных: string | cell

Веса наблюдения, заданные как пара, разделенная запятой, состоящая из 'Weights' и n-by-1 вектор неотрицательных скалярных значений, где n является количеством наблюдений.

Типы данных: single | double

Выходные аргументы

свернуть все

Линейная модель, представляющая припадок наименьших квадратов ответа на данные, возвращенные как объект LinearModel.

Если значением пары "имя-значение" 'RobustOpts' не является [] или 'ols', модель не является подгонкой наименьших квадратов, но использует устойчивую подходящую функцию.

Больше о

свернуть все

Матрица условий

Матрица условий T является t (p + 1) матричные условия определения в модели, где t является количеством условий, p, является количеством переменных прогноза и +1 счетом на переменную отклика. Значение T(i,j) является экспонентой переменной j в термине i.

Например, предположите, что вход включает три переменные прогноза A, B, и C и переменная отклика Y в порядке A, B, C и Y. Каждая строка T представляет один термин:

  • [0 0 0 0] — Постоянный термин или прерывание

  • [0 1 0 0]B; эквивалентно, A^0 * B^1 * C^0

  • [1 0 1 0]A*C

  • [2 0 0 0]A^2

  • [0 1 2 0]B*(C^2)

0 в конце каждого термина представляет переменную отклика. В целом вектор-столбец из нулей в матрице условий представляет положение переменной отклика. Если у вас есть переменные прогноза и переменные отклика в матрице и вектор-столбце, то необходимо включать 0 для переменной отклика в последнем столбце каждой строки.

Формула

Формула для образцовой спецификации является вектором символов или скаляром строки формы 'Y ~ terms'.

  • Y является именем ответа.

  • terms представляет условия предиктора в модели с помощью обозначения Уилкинсона.

Например:

  • 'Y ~ A + B + C' задает линейную модель с тремя переменными с прерыванием.

  • 'Y ~ A + B + C – 1' задает линейную модель с тремя переменными без прерывания. Обратите внимание на то, что формулы включают константу (прерывание) термин по умолчанию. Чтобы исключить постоянный термин из модели, необходимо включать –1 в формулу.

Обозначение Уилкинсона

Обозначение Уилкинсона описывает условия, существующие в модели. Обозначение относится к условиям, существующим в модели, не ко множителям (коэффициенты) тех условий.

Обозначение Уилкинсона использует эти символы:

  • Средние значения + включают следующую переменную.

  • Средние значения не включают следующую переменную.

  • : задает взаимодействие, которое является продуктом условий.

  • * задает взаимодействие и все условия более низкоуровневые.

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

  • Условия групп ().

Эта таблица показывает типичные примеры обозначения Уилкинсона.

Обозначение УилкинсонаТермин в стандартном обозначении
1Постоянный (прерывание) термин
A^k, где k является положительным целым числомA, A2..., Ak
A + BA, B
A*BA, B, A*B
A:BA*B только
–BНе включайте B
A*B + CA, B, C, A*B
A + B + C + A:BA, B, C, A*B
A*B*C – A:B:CA, B, C, A*B, A*C, B*C
A*(B + C)A, B, C, A*B, A*C

Обозначение Statistics and Machine Learning Toolbox™ всегда включает постоянный термин, если вы явным образом не удаляете термин с помощью –1.

Для получения дополнительной информации смотрите Обозначение Уилкинсона.

Советы

  • Чтобы получить доступ к образцовым свойствам объекта LinearModel mdl, можно использовать запись через точку. Например, mdl.Residuals возвращает таблицу сырых данных, Пирсона, Studentized, и стандартизировал остаточные значения для модели.

  • После обучения модель можно сгенерировать код C/C++, который предсказывает ответы для новых данных. Генерация кода C/C++ требует MATLAB® Coder™. Для получения дополнительной информации смотрите Введение в Генерацию кода.

Алгоритмы

  • Основной алгоритм подбора является разложением QR. Для устойчивого подбора кривой fitlm использует M-оценку, чтобы сформулировать оценку уравнений и решает их использующий метод итеративных перевзвешенных наименьших квадратов (IRLS).

  • fitlm обрабатывает категориальный предиктор можно следующим образом:

    • Модель с категориальным предиктором, который имеет уровни L (категории), включает   переменные индикатора L - 1. Модель использует первую категорию в качестве контрольного уровня, таким образом, это не включает переменную индикатора для контрольного уровня. Если типом данных категориального предиктора является categorical, то можно проверять порядок категорий при помощи categories и переупорядочить категории при помощи reordercats, чтобы настроить контрольный уровень.

    • fitlm обрабатывает группу   переменных индикатора L - 1 как одна переменная. Если вы хотите обработать переменные индикатора как отличные переменные прогноза, создайте переменные индикатора вручную при помощи dummyvar. Затем используйте переменные индикатора, кроме той, соответствующей контрольному уровню категориальной переменной, когда вы подберете модель. Для категориального предиктора X, если вы задаете все столбцы dummyvar(X) и термина прерывания в качестве предикторов, затем матрица проекта, становится неполным рангом.

    • Периоды взаимодействия между непрерывным предиктором и категориальным предиктором с уровнями L состоят из поэлементного произведения   переменных индикатора L - 1 с непрерывным предиктором.

    • Периоды взаимодействия между двумя категориальными предикторами с L и уровнями M состоят из (L – 1) *   переменные индикатора (M - 1), чтобы включать все возможные комбинации двух категориальных уровней предиктора.

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

  • fitlm полагает, что NaN, '' (пустой символьный вектор), "" (пустая строка), <missing> и значения <undefined> в tbl, X и Y отсутствующие значения. fitlm не использует наблюдения с отсутствующими значениями в подгонке. Свойство ObservationInfo подобранной модели указывает, использует ли fitlm каждое наблюдение в подгонке.

Альтернативная функциональность

  • В течение уменьшаемого времени вычисления на высоко-размерных наборах данных соответствуйте модели линейной регрессии использование функции fitrlinear.

  • Чтобы упорядочить регрессию, используйте fitrlinear, lasso, ridge или plsregress.

    • fitrlinear упорядочивает регрессию для высоко-размерных наборов данных с помощью лассо или гребенчатой регрессии.

    • lasso удаляет избыточные предикторы в линейной регрессии с помощью лассо или эластичной сети.

    • ridge упорядочивает регрессию с коррелироваными условиями с помощью гребенчатой регрессии.

    • plsregress упорядочивает регрессию с коррелироваными условиями с помощью частичных наименьших квадратов.

Ссылки

[1] DuMouchel, W. H. и Ф. Л. О'Брайен. “Интегрируя Устойчивую Опцию в Вычислительную среду Регрессии кратного”. Информатика и Статистика: Продолжения 21-го Симпозиума по Интерфейсу. Александрия, ВА: американская Статистическая Ассоциация, 1989.

[2] Голландия, P. W. и Р. Э. Велш. “Устойчивая Регрессия Используя Итеративно Перевзвешенные Наименьшие квадраты”. Коммуникации в Статистике: Теория и Методы, A6, 1977, стр 813–827.

[3] Хубер, P. J. Устойчивая статистика. Хобокен, NJ: John Wiley & Sons, Inc., 1981.

[4] Улица, J. O. Р. Дж. Кэрролл и Д. Рапперт. “Примечание по Вычислению Устойчивых Оценок Регрессии через Итеративно Перевзвешенные Наименьшие квадраты”. Американский Статистик. Издание 42, 1988, стр 152–154.

Расширенные возможности

Введенный в R2013b