主要内容

fitlm

适合线性回归模型

描述

例子

mdl= fitlm (TBL.返回适合表或数据集数组中的变量的线性回归模型TBL..默认情况下,fitlm将最后一个变量作为响应变量占用。

例子

mdl= fitlm (Xy返回响应的线性回归模型y,适合数据矩阵X

例子

mdl= fitlm (___模型规格使用先前语法中的任何输入参数组合定义模型规范。

例子

mdl= fitlm (___名称,价值使用一个或多个名称值对参数指定其他选项。例如,您可以指定哪些变量是分类的,执行鲁棒回归或使用观察权重。

例子

全部折叠

使用矩阵输入数据集拟合线性回归模型。

加载Carsmall.数据集,矩阵输入数据集。

负载Carsmall.x = [重量,马力,加速];

使用线性回归模型fitlm

mdl = fitlm(x,mpg)
MDL =线性回归模型:Y〜1 + X1 + X2 + X3估计系数:估计系数PVALUE __________ ___________________________0.8957e-217.8785 12.37 0.8957E-21 7.8785 12.37 4.8957E-21 7.8785116 0.874416 0.8784-21 0. 0.024313 0.024313-1.7663 0.08078 x3 -0.111583 0.1111583 0.19333 -0.059913 0.95236观测数量:93,误差自由度:89根均匀误差:4.09 r断层:0.752,调整R线:0.744 F统计与常数型号:90,p值= 7.38e-27

模型显示包括模型公式、估计系数和模型汇总统计。

显示屏中的型号公式,Y ~ 1 + x1 + x2 + x3,对应于 y = β 0. + β 1 X 1 + β 2 X 2 + β 3. X 3. + ε.

模型显示还显示了存储在中的估计系数信息系数财产。显示系数财产。

mdl.cofficients.
ans =4×4表e- x x x x x x x x x x x x x x x x x

系数属性包括以下列:

  • 估计- 模型中每个对应术语的系数估计。例如,常数项的估计值(拦截)是47.977。

  • SE.- 系数的标准误差。

  • 塔特-T.对于每个系数来测试NULL假设的间距,即,在模型中的其他预测器中,相应的系数与其不同的替代是零的零。注意tstat =估计/ se.例如,T.截距的间距为47.977 / 3.8785 = 12.37。

  • pValue-P.- 为valueT.-对应系数是否等于零的假设检验的统计量。例如,P.- 左边的价值T.-统计X2大于0.05,因此相对于模型中其他项,该项在5%显著水平下不显著。

模型汇总统计如下:

  • 观察次数-没有任何标记的行数值。例如,观察次数因为英里/加仑数据向量有六个属性价值观和马力数据矢量有一个不同观察的值,其中行数X英里/加仑是100。

  • 误差自由度-N-P.,在那里N是观察的次数,和P.为模型中系数的个数,包括截距。例如,这个模型有四个预测因子,所以误差自由度是93 - 4 = 89。

  • 根均匀误差- 平均方形误差的平方根,估计错误分布的标准偏差。

  • r-平方调整后的平方- 分别测定系数和调整的测定系数。例如,r-平方值表明,该模型解释了响应变量中大约75%的变化英里/加仑

  • F统计量与常数模型- 测试统计F- 在回归模型上,这测试模型是否比仅由恒定术语组成的简并模型更好。

  • p值-P.- 为valueF- 在模型上。例如,该模型与a具有重要意义P.-数值为7.3816e-27。

您可以在模型属性中找到这些统计信息(numobservations.DFE.RMSE.,及rsquared.)通过使用方差分析功能。

方差分析(mdl'概括'
ans =3×5表SUMSQ DF均衡Q _____________________________________总共6004.8 92 65.269型号4516 3 1505.3 89.987 7.3816E-27剩余1488.8 89 16.728

加载样本数据。

负载Carsmall.

将变量存储在表中。

台=表(重量、加速度、MPG,'variablenames',{“重量”'加速''mpg'});

显示表的前五行。

TBL(1:5,:)
ans =5×3表重量加速MPG ______ ________________ 3504 12 18 3693 11.5 15 3436 11 18 3433 12 16 3449 10.5 17

适合每加仑数英里(MPG)的线性回归模型。使用Wilkinson表示法指定型号公式。

lm = fitlm(tbl,“MPG ~体重+加速”
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观测次数:94、误差自由度:91均方根误差:4.12 r平方:0.743,校正r平方:0.738 f统计量与常数模型:132,p-value = 1.38e-27

该模型“MPG ~体重+加速”在此示例中等同于将模型规范设置为“线性”.例如,

lm2 = fitlm(tbl,“线性”);

如果您使用字符向量进行模型规范,则不会指定响应变量,然后fitlm接受中的最后一个变量TBL.作为响应变量和其他变量作为预测变量。

使用威尔金森符号指定的模型公式拟合线性回归模型。

加载样本数据。

负载Carsmall.

将变量存储在表中。

tbl =表(重量,加速,model_year,mpg,'variablenames',{“重量”'加速''model_year''mpg'});

适合每加仑数英里(MPG)的线性回归模型,其重量和加速为预测变量。

lm = fitlm(tbl,“MPG ~体重+加速”
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观测次数:94、误差自由度:91均方根误差:4.12 r平方:0.743,校正r平方:0.738 f统计量与常数模型:132,p-value = 1.38e-27

P.- 0.18493的值表明加速对公司没有重大影响英里/加仑

删除加速从模型中,尝试通过添加预测器变量来改进模型model_year..首先定义model_year.作为一个分类变量。

tbl.model_year =分类(tbl.model_year);lm = fitlm(tbl,“MPG ~ + Model_Year重量”
lm =线性回归模型:MPG ~ 1 +权重+ 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观测数:94,误差自由度:90均方根误差:2.92 R-squared:0.873,调整后的R-Squared: 0.868 F-statistic vs. constant model: 206, p-value = 3.833 -40

指定模型规格使用Wilkinson表示法使您可以更新模型而无需更改设计矩阵。fitlm仅使用公式中指定的变量。它还为分类变量创建了必要的两个伪指示器变量model_year.

使用术语矩阵拟合线性回归模型。

表输入的术语矩阵

如果模型变量位于表中,则一列0.用项矩阵表示响应变量的位置。

加载医院数据集。

负载医院

将变量存储在表中。

t =表(hospital.Sex hospital.BloodPressure (: 1), hospital.Age, hospital.Smoker,......'variablenames',{“性”'血压'“年龄”“吸烟者”});

代表线性模型'血压〜1 +性别+年龄+吸烟者'使用术语矩阵。响应变量位于表的第二列中,因此术语矩阵的第二列必须是一列0.s为响应变量。

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

适合线性模型。

mdl1 = fitlm (t, t)
mdl1 =线性回归模型:血压~ 1 +性别+年龄+吸烟者估计系数:估计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-15100,误差自由度:96均方根误差:4.78 r平方:0.507,调整r平方:0.492 F-statistic vs. constant model: 33, p-value = 9.91e-15

矩阵输入的术语矩阵

如果预测器和响应变量位于矩阵和列向量中,则必须包括0.对于术语矩阵中每行末尾的响应变量。

加载Carsmall.数据集并定义预测器的矩阵。

负载Carsmall.x = [加速,重量];

指定模型'MPG〜加速+重量+加速:重量+重量^ 2'使用术语矩阵。该模型包括变量的主要效果和双向交互术语加速重量,以及变量的二阶项重量

t = [0 0 0; 1 0 0; 0 1 0; 1 1 0; 0 2 0]
t =5×30 0 0 1 0 0 0 1 0 1 1 0 0 2 0

适合线性模型。

mdl2 = fitlm (X,英里/加仑,T)
MDL2 =线性回归模型为:y〜1 + X1 * X2 + X2 ^ 2个估计系数:估计SE TSTAT p值___________ __________ _______ __________(截距)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.75182-07 7.5389-07 7.5389E-07 1.2935 0.19917 0.19917 0.19917 0.19917 0.19917观察数:94,误差自由度:89根均匀误差:4.1 r断层:0.751,调整R线:0.739 f- 常量型号:67,p值= 4.99e-26

只有拦截和X2术语,对应于重量变量,在5%显著性水平上显著。

拟合一个包含分类预测器的线性回归模型。对分类预测器的类别重新排序,以控制模型中的参考级别。然后,用方差分析检验分类变量的显著性。

分类预测器的模型

加载Carsmall.数据集并创建一个线性回归模型英里/加仑作为…的函数model_year..治疗数字矢量model_year.作为分类变量,使用该变量识别预测器'pationalvars'名称值对参数。

负载Carsmall.mdl = fitlm(model_year,mpg,'pationalvars', 1“VarNames”,{'model_year''mpg'})
MDL =线性回归模型:MPG〜1 + MODEM_YEAR估计系数:估计系数________ ____________________(拦截)17.69 1.0328 17.127 3.2371E-30 MODEM_YEAR_76 3.8839 1.4059 2.7625 0.0069402 MODEL_YEAR_814.02 1.4369 0.14.02 1.4369 9.7571 8.2164E-16观察数:94,误差自由度:91根均匀误差:5.56 R线:0.531,调整R线:0.521 F统计与常数型号:51.6,P值= 1.07e-15

显示屏中的型号公式,MPG ~ 1 + Model_Year,对应于

英里/加仑 = β 0. + β 1 ι 一年 = 76. + β 2 ι 一年 = 82. + ε.

在哪里 ι 一年 = 76. ι 一年 = 82. 值为1的指示器变量是否为model_year.分别为76和82。这model_year.变量包括三个不同的值,您可以通过使用它来检查独特的功能。

唯一(model_year)
ans =.3×170 76 82

fitlm选择中最小的值model_year.作为参考水平('70')并创建两个指标变量 ι 一年 = 76. ι 一年 = 82. . 该模型仅包含两个指标变量,因为如果该模型包含三个指标变量(每个级别一个)和一个截距项,则设计矩阵将出现秩缺陷。

全指标变量模型

您可以解释模型公式mdl作为一个模型,它有三个指标变量,没有截距项:

y = β 0. ι X 1 = 70 + β 0. + β 1 ι X 1 = 76. + β 0. + β 2 ι X 2 = 82. + ε.

或者,您可以通过手工创建指标变量并指定模型公式来创建一个包含三个指标变量且没有截距项的模型。

临时年份=dummyvar(分类(车型年份));型号70=临时年份(:,1);型号年份=临时年份(:,2);模型年份=临时年份(:,3);tbl=表格(车型年份70,车型年份76,车型年份82,MPG);mdl=fitlm(待定,“MPG~车型年款70+车型年款76+车型年款82-1”
2.统计系数:估计系数:估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,估计,例如,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们传真:94,误差自由度:91均方根误差:5.56

在模型中选择参考级别

您可以通过修改分类变量中的类别顺序选择参考级别。首先,创建一个分类变量一年

年=分类(Model_Year);

通过使用使用的类别的顺序类别功能。

类别(年)
ans =.3 x1细胞{'70'} {'76'} {'82'}

如果你使用一年作为预测变量,那么fitlm选择第一个类别'70'作为参考水平。重新订购一年通过使用雷德斯功能。

Year_reordered = reordercats(一年,{'76''70'“82”});类别(年份)
ans =.3 x1细胞{'76'} {'70'} {'82'}

第一类年份'76'.创建一个线性回归模型英里/加仑作为…的函数年份

mdl2 = fitlm(yor_reordered,mpg,“VarNames”,{'model_year''mpg'})
mdl2=线性回归模型:MPG~1+模型年估计系数:估计统计价值(截距)21.574 0.95387 22.617 4.0156e-39模型年70-3.8839 1.4059-2.7625 0.0062模型年10.388-12.36E观测值数量:,误差自由度:91均方根误差:5.56 R平方:0.531,调整R平方:0.521 F统计与常数模型:51.6,p值=1.07e-15

MDL2.用途'76'作为参考水平,包括两个指标变量 ι 一年 = 70 ι 一年 = 82.

评估分类预测指标

模型显示MDL2.包括一个P.- 每个术语的值以测试相应的系数是否等于零。每个P.-value检查每个指示器变量。检查分类变量model_year.作为一组指示器变量,使用方差分析.使用'组件'(默认)选项要返回组件ANOVA表,该表包含模型中的每个变量的ANOVA统计信息,但常量项除外。

ANOVA(MDL2,'组件'
ans =2×5表SUMSQ DF均衡Q ________________________________________year 3190.1 2 1595.1 51.56 1.0694E-15错误2815.2 91 30.936

成分方差分析表包括P.- 左边的价值model_year.变量小于P.-指标变量的值。

拟合线性回归模型以样本数据。指定响应和预测器变量,并在模型中仅包含成对交互术语。

加载样本数据。

负载医院

将带有交互项的线性模型拟合到数据。将体重指定为响应变量,将性别、年龄和吸烟状况指定为预测变量。此外,请指定性别和吸烟状况是分类变量。

mdl=fitlm(医院、,'互动''responsevar'“重量”......'predictorvars',{“性”“年龄”“吸烟者”},......'patoricalvar',{“性”“吸烟者”})
MDL =线性回归模型:体重〜1 +性别*年龄+性别*吸烟者+年龄*吸烟者估计系数:估计SE TSTAT PVALUE ________ _______ ________ _______(拦截)118.7 7.0718 16.785 6.821E-30 SEX_MALE 68.339 3.07153 7.0339 3.3386E-10年龄0.31068 0.18531 1.6765 0.096991 Smoker_1 3.0425 10.446 0.29127 0.77149 Sex_Male:年龄-0.49094 0.24764 -1.9825 0.050377 Sex_Male:Smoker_1 0.9509 3.8031 0.25003 0.80312年龄:Smoker_1 -0.07288 0.26275 -0.27737 0.78211若干意见:100,错误自由度:93均方根误差:8.75 R线:0.898,调整R线:0.892 F统计与常数型号:137,P值= 6.91E-44

在5%的显著性水平上,患者的体重似乎并不因年龄、吸烟状况或这些因素与患者性别的相互作用而有显著差异。

加载hal数据集,测量水泥组合物对硬化热量的影响。

负载hal

此数据集包括变量配料.矩阵配料含有水泥中存在的四种化学品的百分比组成。矢量含有每个水泥样品180天后热硬化的值。

对数据拟合一个稳健的线性回归模型。

MDL = FITLM(成分,热,'抢劫''在'
MDL =线性回归模型(鲁棒配合):Y〜1个+ X1 + X2 + X3 + X4估计系数:估计SE TSTAT p值________ _______ ________(截距)60.09 75.818 0.79256 0.4509 X1 1.5753 0.80585 1.9548 0.086346×2 0.5322 0.78315 0.67957 0.51596 X30.1346 0.8166 0.16343 0.87424 X4 -0.12052 0.7672 -0.15709 0.87906观测数量:13,误差自由度:8根均匀误差:2.65 R线:0.979,调整R线:0.969 F统计与常数型号:94.6,p值= 9.03e-07

有关更多细节,请参阅主题使用稳健回归降低离群值影响,将稳健拟合的结果与标准最小二乘拟合的结果进行比较。

使用10倍交叉验证计算回归模型的平均绝对误差。

加载Carsmall.数据集。指定加速移位变量作为预测变量和重量变量作为响应。

负载Carsmall.x1 =加速;x2 =位移;Y =重量;

创建自定义函数REGF.(在这个例子的末尾显示)。该功能适合训练数据的回归模型,然后计算测试集上的预测汽车权重。该功能将预测的汽车权重值与真值进行比较,然后计算平均绝对误差(MAE),并且将MAE调整到测试设定轿厢权重的范围。

笔记:如果使用此示例的实时脚本文件,则REGF.功能已包含在文件的末尾。否则,您需要在.m文件的末尾创建此函数,或将其添加为Matlab®路径上的文件。

默认情况下,横梁执行10倍交叉验证。中数据的10个训练和测试集分区X1X2,及y,计算MAE和使用调整的MAE值REGF.功能。找到平均mae和卑鄙的mae。

RNG(“默认”重复性的%值= Crossval(@ Regf,x1,x2,y)
值=10×2319.261 0.1132 342.3722 0.1240 214.3735 0.0902 174.7247 0.1128 189.4835 0.0832 249.4359 0.0832 249.4359 0.0832 249.4359 0.1003 194.4210 0.0845 348.7437 0.1700 283.1761 0.1187 210.7444 0.1187 210.744 0.1187 210.7440 0.1325
平均值(值)
ans =.1×2252.6701 0.1129

此代码创建功能REGF.

功能errors = regf(x1train,x2train,ytrain,x1test,x2test,ytest)tbltrain = table(x1train,x2train,ytrain,......'variablenames',{'加速'“位移”“重量”});tbltest =表(x1test,x2test,ytest,......'variablenames',{'加速'“位移”“重量”});mdl = fitlm(tbltrain,'重量〜加速+位移');YFIT =预测(MDL,TBLTEST);mae =平均值(abs(yfit-tbltest.weight));Adjmae = Mae / Range(Tbltest.weight);错误= [mae admmae];结尾

输入参数

全部折叠

输入数据包括预测器和响应变量,指定为表或数据集数组。预测变量可以是数字,逻辑,分类,字符或字符串。响应变量必须是数字或逻辑的。

  • 默认情况下,fitlm将最后一个变量作为响应变量,其他变量作为预测变量。

  • 要将不同的列设置为响应变量,请使用响应官员名称值对参数。

  • 要使用列的子集作为预测器,请使用预测变量名称值对参数。

  • 要定义模型规范,请设置模型规格参数使用公式或术语矩阵。公式或术语矩阵指定要用作预测器或响应变量的列。

表中的变量名称不必有效MATLAB®身份标识。但是,如果名称无效,则在适合或调整模型时,您不能使用公式;例如:

  • 您无法指定模型规格使用公式。

  • 您无法使用公式指定在使用时添加或删除的术语addterms.函数或removeterms.函数,分别。

  • 属性时,不能使用公式来指定模型的上下限步骤行程函数的名称-值对参数'降低''上', 分别。

您可以验证变量名TBL.通过使用伊斯瓦名称功能。如果变量名称无效,则可以使用使用的转换它们matlab.lang.makeValidName功能。

预测变量,指定为一个N——- - - - - -P.矩阵,其中N是观察人数和P.为预测变量的数量。每一列的X表示一个变量,每行代表一个观察。

默认情况下,模型中存在一个常量术语,除非您显式删除它,因此不包含1S的列X

数据类型:单一的|

响应变量,指定为一个N-1 vector,在哪里N是观察人数。每个条目y是对应行的响应X

数据类型:单一的||逻辑

模型规范,指定为其中一个值。

  • 字符向量或字符串标量命名模型。

    价值 模型类型
    '持续的' 模型仅包含一个常数(拦截)术语。
    “线性” 模型包含每个预测器的截距和线性术语。
    '互动' 模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。s manbetx 845
    “purequadratic” 模型包含每个预测器的截距项和线性和平方术语。
    '二次' 模型包含每个预测器的截距,线性和平方术语,以及所有不同预测器的所有产品。s manbetx 845
    保利IJK.' 模型是一种多项式,所有条款均可获得程度一世第一个预测因子是程度j在第二个预测器中,依此类推。使用数字0到9指定每个预测器的最大度数。模型包含交互项,但每个交互项的度数不超过指定度数的最大值。例如“poly13”有一个截距X1X2X22X23.X1*X2,及X1*X22条款,X1X2是第一和第二预测因子。
  • 一种T.————(P.+ 1)矩阵,或者术语矩阵,在模型中指定术语,在哪里T.是术语数量和数量P.为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。

  • 字符向量或字符串标量公式在形式

    “y ~条款”

    那里术语Wilkinson表示法.公式中的变量名称必须是变量名称TBL.或指定的可变名称Varnames.此外,变量名称必须是有效的MATLAB标识符。

    该软件通过使用术语顺序确定拟合模型中的术语顺序TBL.X.因此,模型中的术语顺序可以与指定公式中的术语顺序不同。

例子:'二次'

例子:'y ~ x1 + x2^2 + x1:x2'

数据类型:单一的||字符|字符串

名称值对参数

指定可选的逗号分离对名称,价值论点。名称参数名和价值是对应的值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“拦截”,假的,“PredictorVars”,[1,3],“ResponseVar”,5‘RobustOpts’,‘物流’指定没有常数项的稳健回归模型,其中算法使用具有默认调整常数的逻辑加权函数,第一个和第三个变量是预测变量,第五个变量是响应变量。

分类变量列表,指定为逗号分隔的配对组成'pationalvars'以及包含表或数据集数组中的分类变量名称的字符数阵列或单元格数组TBL.,或指示哪些列是分类列的逻辑或数字索引向量。

  • 如果数据位于表或数据集数组中TBL.,那么默认情况下,fitlm将所有分类值、逻辑值、字符数组、字符串数组和字符向量的单元格数组视为分类变量。

  • 如果数据处于矩阵中X,然后是默认值'pationalvars'是一个空矩阵[].也就是说,除非您将其指定为分类,否则没有变量是分类的。

例如,您可以使用以下任一分类指定六个中的第二个和第三变量:

例子:'patoricalvars',[2,3]

例子:'pationoricalvars',逻辑([0 1 1 0 0 0])

数据类型:单一的||逻辑|字符串|细胞

从拟合中排除的观察,指定为逗号分隔的配对'排除'以及逻辑或数字索引向量,指示要从拟合中排除哪些观测值。

例如,您可以使用下面的任何一个示例排除6个观察值中的2个和3个。

例子:“排除”,[2,3]

例子:'排除',逻辑([0 1 1 0 0 0])

数据类型:单一的||逻辑

符合术语(拦截)的指示符,指定为逗号分隔对组成'截距'和任何一种真的包括或者从模型中删除常数项。

使用'截距'仅当使用字符向量或字符串标量指定模型时,而不是使用公式或矩阵。

例子:“拦截”,假的

要在适合的情况下使用的预测变量,指定为逗号分隔对组成'predictorvars'以及表或数据集数组中变量名称的字符数阵列或单元格数组TBL.或指示哪个列是预测变量的逻辑或数字索引向量。

中的名称应包含字符串值或字符向量TBL.或者使用您使用的名称“VarNames”名称值对参数。

默认是所有的变量X,或所有变量TBL.除了响应官员

例如,您可以使用以下任意一个示例指定第二个和第三个变量作为预测变量。

例子:“PredictorVars”,[2,3]

例子:'predictorvars',逻辑([0 1 1 0 0 0])

数据类型:单一的||逻辑|字符串|细胞

用于适合的响应变量,指定为逗号分隔的对组成'responsevar'以及包含表或数据集数组中的变量名称的字符向量或字符串标量TBL.,或逻辑或数字索引向量,指示哪一列是响应变量。你通常需要使用'responsevar'拟合表或数据集数组时TBL.

例如,您可以指定第四个变量屈服,作为六个变量的响应,以下列方式之一。

例子:'Responalvar','收益'

例子:'ResponalVar',[4]

例子:'ResponalVar',逻辑([0 0 0 1 0 0])

数据类型:单一的||逻辑|字符|字符串

要使用的强大配件类型的指示,指定为逗号分隔的对'抢劫'其中一个值。

  • '离开'-没有稳健的拟合。fitlm使用普通的最小二乘法。

  • '在'-使用'Bisquare'具有默认调谐常量的重量函数。

  • 字符向量或字符串标量-下表中鲁棒拟合权函数的名称。fitlm使用表中指定的相应默认调谐常量。

  • 具有两个字段的结构robustwgtfun.

    • robustwgtfun.字段包含从下表或自定义重量函数的功能句柄的强大拟合权重功能的名称。

    • 字段包含调谐常量。如果你没有设置场地,fitlm使用相应的默认调整常量。

    重量函数 描述 默认调谐常量
    “安德鲁斯” w=(abs(r) 1.339
    'Bisquare' w =(abs(r)<1)。*(1 - R. ^ 2)。^ 2(也称为Biweight) 4.685
    'cauchy' W = 1 ./ (1 + r.²) 2.385
    “公平” W = 1 ./ (1 + abs(r)) 1.400
    “胡伯” w=1/最大值(1,abs(r)) 1.345
    “物流” W = tanh(r) / r 1.205
    'OLS' 普通的最小二乘(没有加权函数) 没有一个
    '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))

      在哪里渣滓是来自前一迭代的残差矢量,调优是调谐常数,H是来自最小二乘贴合的杠杆值的矢量,以及S.给出的误差项的标准差估计是

      s = mad / 0.6745

      疯狂的是残差与其中值的绝对偏差中值。常数0.6745使得正态分布的估计无偏。如果X拥有P.列,软件排除了最小的P.计算中位数时绝对偏差。

适合强大的配件,fitlm利用m估计建立估计方程,并用的方法求解迭代地重复最小二乘(irls)。

例子:'robustopts','安德鲁斯'

变量的名称,指定为逗号分隔的配对组成“VarNames”和字符串数组或字符向量的单元数组,包括列的名称X首先是响应变量的名称y最后。

“VarNames”不适用于表或数据集数组中的变量,因为这些变量已经有了名称。

变量名称不必是有效的MATLAB标识符。但是,如果名称无效,则在适合或调整模型时,您不能使用公式;例如:

  • 您无法使用公式指定在使用时添加或删除的术语addterms.函数或removeterms.函数,分别。

  • 属性时,不能使用公式来指定模型的上下限步骤行程函数的名称-值对参数'降低''上', 分别。

在指定之前'varnames',varnames,您可以验证变量名称varNames通过使用伊斯瓦名称功能。如果变量名称无效,则可以使用使用的转换它们matlab.lang.makeValidName功能。

例子:'varnames',{'horsepower','加速','model_year','mpg'}

数据类型:字符串|细胞

观察权重,指定为逗号分隔的配对组成'重量'和一个N- 1个非负标量值矢量,在哪里N是观察人数。

数据类型:单一的|

输出参数

全部折叠

表示对数据响应的最小二乘拟合的线性模型,返回为linearmodel.目的。

如果值的价值'抢劫'名称 - 值对不是[]'OLS',模型不是最小二乘拟合,而是采用稳健拟合函数。

更多关于

全部折叠

术语矩阵

一个条件矩阵T.是A.T.————(P.+ 1)矩阵指定模型中的术语,其中T.是术语数量,P.为预测变量的个数,+1表示响应变量。的价值T (i, j)是变量的指数j术语一世

例如,假设输入包括三个预测变量X1X2,及X3和响应变量y按顺序X1X2X3,及y.每一行的T.代表一个术语:

  • [0 0 0 0]-常数项或截距

  • [0 1 0 0]-X2;同样,x1 ^ 0 * x2 ^ 1 * x3 ^ 0

  • [1 0 1 0]-x1 * x3

  • [2 0 0 0]-x1 ^ 2

  • [0 1 2 0]-x2 * (x3 ^ 2)

0.在每个术语的末尾表示响应变量。通常,术语矩阵中零的列向量表示响应变量的位置。如果您在矩阵和列向量中有预测器和响应变量,则必须包含0.对于每行的最后一列中的响应变量。

公式

模型规范的公式是表单的字符向量或字符串标量'y术语'

  • y是响应名称。

  • 术语使用威尔金森表示法表示模型中的预测项。

要表示预测器和响应变量,请使用表输入的变量名TBL.或使用的变量名称VarNames.默认值VarNames{x1, x2,…,‘xn’,‘y’}

例如:

  • 'y〜x1 + x2 + x3'指定一个带有截距的三变量线性模型。

  • ‘y~x1+x2+x3–1’指定一个无拦截的三变线性模型。请注意,默认情况下,公式包括常量(拦截)术语。要从模型中排除常量术语,您必须包含-1在公式。

公式包括常数术语,除非您明确地删除术语-1

Wilkinson表示法

Wilkinson表示法描述了模型中存在的术语。符号涉及模型中存在的术语,而不是那些术语的乘法器(系数)。

威尔金森表示法使用这些符号:

  • +意味着包括下一个变量。

  • -表示不包括下一个变量。

  • 定义交互,这是术语的份额。

  • *定义交互和所有低阶项。

  • ^将预测器提升到电力,完全如此*重复,所以^也包括低阶项。

  • ()分组术语。

该表显示了威尔金森表示法的典型例子。

Wilkinson表示法 标准符号术语
1 常数(拦截)术语
X1 ^ K.,在那里K.是一个正整数 X1X12,......,X1K.
x1 + x2 X1X2
x1 * x2 X1X2x1 * x2
x1:x2 x1 * x2只要
–x2 不包括X2
x1 * x2 + x3 X1X2X3x1 * x2
X1 + x2 + x3 + X1:x2 X1X2X3x1 * x2
x1 * x2 * x3 - x1:x2:x3 X1X2X3x1 * x2x1 * x3x2*x3
x1 *(x2 + x3) X1X2X3x1 * x2x1 * x3

有关详细信息,请参见Wilkinson表示法

提示

  • 的模型属性linearmodel.目的mdl,您可以使用DOT表示法。例如,mdl.residuals.返回模型的原始,Pearson,学生化和标准化的剩余值表。

  • 培训模型后,您可以生成C / C ++代码,该代码预测新数据的响应。生成C / C ++代码需要Matlab Coder™.有关详细信息,请参阅代码生成简介

算法

  • 主要拟合算法是QR分解。适合强大的配件,fitlm利用m估计建立估计方程,并用的方法求解迭代地重复最小二乘(irls)。

  • fitlm将分类预测值处理如下:

    • 一个有绝对预测器的模型L.级别(类别)包括L.- 1指标变量。该模型使用第一个类别作为参考级别,因此不包括参考级别的指标变量。如果分类预测器的数据类型为分类,然后您可以通过使用查看类别的顺序类别并通过使用重新排序类别雷德斯自定义参考级别。有关创建指示器变量的更多详细信息,请参阅自动创建虚拟变量

    • fitlm对待一组L.- 1指示器变量作为单个变量。如果要将指示器变量视为不同的预测器变量,请通过使用手动创建指示器变量戴维尔.然后使用指示器变量,除了适合模型时对应于分类变量的参考级别的字符。对于分类预测因子X,如果指定的所有列dummyvar(x)并且作为预测器的截距术语,然后设计矩阵变为缺陷。

    • 连续预测因子与分类预测器之间的交互术语L.级别由元素 - 明智的产品组成L.- 1带有连续预测器的指标变量。

    • 两个分类预测因子之间的交互条款L.m级别包括L.- 1)*(m- 1)指标变量包括两个分类预测水平的所有可能组合。

    • 不能为绝对预测器指定高阶项,因为指示器的平方等于它本身。

  • fitlm认为''(空字符向量),(空字符串),< >失踪,及<未定义>价值TBL.X,及y缺少值。fitlm不使用符合缺失值的观察结果。这观察税收拟合模型的性质表明是否fitlm使用适合的每个观察。

替代功能

  • 为减少在高维数据集上的计算时间,拟合线性回归模型使用fitrlinear功能。

  • 要使回归规则化,请使用fitrlinear套索plsregress

    • fitrlinear使用套索或岭回归对高维数据集的回归进行正则化。

    • 套索使用套索或弹性网删除线性回归中的冗余预测值。

    • 使用岭回归将回归与相关项正则化。

    • plsregress用偏最小二乘正则化相关项的回归。

参考文献

[1] Dumouchel,W. H.和F. L. O'Brien。“将强大的选项集成到多元回归计算环境中。”计算机科学与统计界面上的第21次研讨会的诉讼程序.亚历山大,VA:美国统计协会,1989年。

荷兰,P. W.和R. E.韦尔什。“使用迭代加权最小二乘的稳健回归”统计通信:理论与方法A6,1977年,第813-827页。

Huber, P. J。强大的统计数据. 新泽西州霍博肯:约翰·威利父子公司,1981年。

[4]街道,J.O.,R. J.Carroll和D. Ruppert。“关于通过迭代重新重复最小二乘来计算强大的回归估计的注释。”美国统计学家.卷。42,1988,pp。152-154。

扩展能力

介绍在R2013B.