Подходящая модель линейной регрессии
mdl = fitlm(tbl)
mdl = fitlm(X,y)
mdl = fitlm(___,modelspec)
mdl = fitlm(___,Name,Value)
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, можно задать, какие переменные являются категориальными, выполняют устойчивую регрессию или используют веса наблюдения.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
, соответствует .
Образцовое отображение также показывает предполагаемую информацию о коэффициенте, которая хранится в свойстве 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
— Стандартная погрешность коэффициентов.
tStat
— t-статистическая-величина для каждого коэффициента, чтобы протестировать нулевую гипотезу, что соответствующий коэффициент является нулем против альтернативы, что это отличается от нуля, учитывая другие предикторы в модели. Обратите внимание на то, что tStat = Estimate/SE
. Например, t-статистическая-величина для прерывания является 47.977/3.8785 = 12.37.
pValue
— p-значение для 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 freedom
— n – 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-value
— p-значение для 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
, соответствует
,
где и переменные индикатора, значение которых является тем, если значение Model_Year
равняется 76 и 82, соответственно. Переменная Model_Year
включает три отличных значения, которые можно проверять при помощи функции unique
.
unique(Model_Year)
ans = 3×1
70
76
82
fitlm
выбирает наименьшее значение в Model_Year
как контрольный уровень ('70'
) и создает две переменные индикатора и . Модель включает только две переменные индикатора, потому что матрица проекта становится неполным рангом, если модель включает три переменные индикатора (один для каждого уровня) и термин прерывания.
Модель с полными переменными индикатора
Можно интерпретировать образцовую формулу mdl
как модель, которая имеет три переменные индикатора без термина прерывания:
.
Также можно создать модель, которая имеет три переменные индикатора без термина прерывания путем ручного создания переменных индикатора и определения образцовой формулы.
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'
в качестве контрольного уровня и включает две переменные индикатора и .
Оцените категориальный предиктор
Образцовое отображение 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
Для получения дополнительной информации смотрите тему, Устойчивая Регрессия — Уменьшает Эффекты Выброса, который сравнивает результаты устойчивой подгонки к стандартной подгонке наименьших квадратов.
tbl
Входные данныеВходные данные, заданные как таблица или массив набора данных. Когда modelspec
является formula
, формула задает переменные прогноза и переменные отклика. В противном случае, если вы не задаете переменные прогноза и переменные отклика, последняя переменная в tbl
является переменной отклика, и другие - переменные прогноза по умолчанию.
Переменные прогноза могут быть числовыми, логическими, категориальными, символ или строка. Переменная отклика должна быть числовой или логической.
Чтобы установить различный столбец как переменную отклика, используйте аргумент пары "имя-значение" ResponseVar
. Чтобы использовать подмножество столбцов как предикторы, используйте аргумент пары "имя-значение" PredictorVars
.
X
Переменные прогнозаПеременные прогноза, заданные как n-by-p матрица, где n является количеством наблюдений и p, являются количеством переменных прогноза. Каждый столбец X
представляет одну переменную, и каждая строка представляет одно наблюдение.
По умолчанию существует постоянный член в модели, если вы явным образом не удаляете его, не включайте столбец 1 с в X
.
Типы данных: single | double
y
Переменная откликаПеременная отклика, заданная как n-by-1 вектор, где n является количеством наблюдений. Каждая запись в y
является ответом для соответствующей строки X
.
Типы данных: single
| double
| logical
modelspec
— Образцовая спецификация'linear'
(значение по умолчанию) | 'constant'
| 'interactions'
| t (p + 1) называет матрицу | вектор символов или скаляр строки формы 'Y ~ terms'
|...Образцовая спецификация, заданная как одно из этих значений.
Вектор символов или скаляр строки именование модели.
Значение | Тип модели |
---|---|
'constant' | Модель содержит только константу (прерывание) термин. |
'linear' | Модель содержит прерывание и линейный член для каждого предиктора. |
'interactions' | Модель содержит прерывание, линейный член для каждого предиктора и все продукты пар отличных предикторов (никакие условия в квадрате). |
'purequadratic' | Модель содержит термин прерывания и линейный и придает условиям квадратную форму для каждого предиктора. |
'quadratic' | Модель содержит термин прерывания, линейный, и придает квадратную форму условиям для каждого предиктора и всем продуктам пар отличных предикторов. |
| Модель является полиномом со всеми условиями до степени 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'
— Категориальный список переменныхКатегориальный список переменных, заданный как пара, разделенная запятой, состоящая из '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'
— Наблюдения, чтобы исключитьНаблюдения, чтобы исключить из подгонки, заданной как пара, разделенная запятой, состоящая из 'Exclude'
и логического или числового индексного вектора указание, который наблюдения исключить из подгонки.
Например, можно исключить наблюдения 2 и 3 из 6 использований любого из следующих примеров.
Пример: 'Exclude',[2,3]
Пример: 'Exclude',logical([0 1 1 0 0 0])
Типы данных: single
| double
| logical
'Intercept'
— Индикатор для постоянного терминаtrue
(значение по умолчанию) | false
Индикатор для постоянного термина (прерывание) в подгонке, заданной как пара, разделенная запятой, состоящая из 'Intercept'
и или true
, чтобы включать или false
, чтобы удалить постоянный термин из модели.
Используйте 'Intercept'
только при определении модели с помощью вектора символов или представьте в виде строки скаляр, не формулу или матрицу.
Пример: 'Intercept',false
'PredictorVars'
— Переменные прогнозаПеременные прогноза, чтобы использовать в подгонке, заданной как пара, разделенная запятой, состоящая из '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
или логический или числовой индексный вектор указание, какой столбец является переменной отклика. Обычно необходимо использовать 'ResponseVar'
при подборе кривой таблице или массиву набора данных tbl
.
Например, можно задать четвертую переменную, сказать yield
, как ответ из шести переменных, одним из следующих способов.
Пример: 'ResponseVar','yield'
Пример: 'ResponseVar',[4]
Пример: 'ResponseVar',logical([0 0 0 1 0 0])
Типы данных: single
| double
| logical
| char
| string
'RobustOpts'
— Индикатор устойчивого подходящего типа'off'
(значение по умолчанию) | 'on'
| вектор символов | представляет скаляр в виде строки | структураИндикатор устойчивого подходящего типа, чтобы использовать, заданный как пара, разделенная запятой, состоящая из 'RobustOpts'
и одно из этих значений.
'off'
Никакой устойчивый подбор кривой. fitlm
использует обычные наименьшие квадраты.
'on'
— Устойчивый подбор кривой с помощью веса 'bisquare'
функционирует со значением по умолчанию, настраивающимся постоянный.
Вектор символов или скаляр строки — Имя устойчивого подходящего веса функционируют из следующей таблицы. fitlm
использует соответствующее значение по умолчанию, настраивающееся постоянный заданный в таблице.
Структура с этими двумя полями RobustWgtFun
и Tune
.
Поле RobustWgtFun
содержит имя устойчивой подходящей функции веса из следующей таблицы или указателя на функцию пользовательской функции веса.
Поле Tune
содержит постоянную настройку. Если вы не устанавливаете поле Tune
, fitlm
использует соответствующее значение по умолчанию, настраивающееся постоянный.
Функция веса | Описание | Значение по умолчанию, настраивающееся постоянный |
---|---|---|
'andrews' | w = (abs(r)<pi) .* sin(r) ./ r | 1.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) ./ r | 1.205 |
'ols' | Обычные наименьшие квадраты (никакая функция взвешивания) | 'none' |
'talwar' | w = 1 * (abs(r)<1) | 2.795 |
'welsch' | w = exp(-(r.^2)) | 2.985 |
указатель на функцию | Пользовательская функция веса, которая принимает векторный r масштабированных невязок и возвращает вектор весов тот же размер как r | 1 |
Настраивающие константы значения по умолчанию встроенных функций веса дают содействующие оценки, которые приблизительно на 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
Имена переменных{'x1','x2',...,'xn','y'}
(значение по умолчанию) | массив строк | массив ячеек из символьных векторовИмена переменных, заданных как пара, разделенная запятой, состоящая из 'VarNames'
и массива строк или массива ячеек из символьных векторов включая имена для столбцов X
сначала и имя для переменной отклика y
в последний раз.
'VarNames'
не применим к переменным в таблице или массиве набора данных, потому что те переменные уже имеют имена.
Например, если в ваших данных, лошадиная сила, ускорение, и модельный год автомобилей являются переменными прогноза, и мили на галлон (MPG) являются переменной отклика, то можно назвать переменные можно следующим образом.
Пример: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}
Типы данных: string
| cell
'Weights'
— Веса наблюденияones(n,1)
(значение по умолчанию) | n-by-1 вектор неотрицательных скалярных значенийВеса наблюдения, заданные как пара, разделенная запятой, состоящая из 'Weights'
и n-by-1 вектор неотрицательных скалярных значений, где n является количеством наблюдений.
Типы данных: single | double
mdl
— LinearLinearModel
Линейная модель, представляющая припадок наименьших квадратов ответа на данные, возвращенные как объект 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 + B | A, B
|
A*B | A , B , A*B |
A:B | A*B только |
–B | Не включайте B |
A*B + C | A , B , C , A*B |
A + B + C + A:B | A , B , C , A*B |
A*B*C – A:B:C | A , 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.
Эта функция поддерживает длинные массивы для данных, которые не помещаются в память, с некоторыми ограничениями.
Если какой-либо входной параметр к fitlm
является длинным массивом, то все другие входные параметры должны быть длинными массивами также. Это включает непустые переменные, предоставленные парами "имя-значение" 'Exclude'
и 'Weights'
.
Пара "имя-значение" 'RobustOpts'
не поддержана с длинными массивами.
Для высоких данных fitlm
возвращает объект CompactLinearModel
, который содержит большинство тех же свойств как объект LinearModel
. Основное различие - то, что компактный объект чувствителен к требованиям к памяти. Компактный объект не включает свойства, которые включают данные, или которые включают массив, одного размера как данные. Компактный объект не содержит эти свойства LinearModel
:
Diagnostics
Fitted
ObservationInfo
ObservationNames
Residuals
Steps
Variables
Можно вычислить невязки непосредственно из компактного объекта, возвращенного использованием LM = fitlm(X,Y)
RES = Y - predict(LM,X); S = LM.RMSE; histogram(RES,linspace(-3*S,3*S,51))
Если объект CompactLinearModel
пропускает условия более низкоуровневые, которые включают категориальные факторы:
plotEffects
и методы plotInteraction
не поддержаны.
Метод anova
с опцией 'components'
не поддержан.
Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.