主要内容

Fitlm.

拟合线性回归模型

描述

例子

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

例子

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

例子

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

例子

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

例子

全部收缩

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

加载carsmall数据集,一个矩阵输入数据集。

加载carsmallx = [重量,马力,加速];

利用拟合线性回归模型Fitlm.

mdl = fitlm (X,英里/加仑)
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。系数
ans =4×4表e- x x x x x x x x x x x x x x x x x

系数属性包括以下列:

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

  • SE- 系数的标准误差。

  • Tstat.- - - - - -t-每个系数的统计量,以测试对应系数为零的零假设,相对于它不为零的替代,给定模型中的其他预测器。请注意,tStat =估计/ SE.例如,t-statistic for the intercept is 47.977/3.8785 = 12.37。

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

模型的摘要统计数据是:

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

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

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

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

  • F统计与常量模型- 测试统计F-对回归模型的检验,检验模型是否明显优于仅包含常数项的退化模型。

  • 假定值- - - - - -p- 为valueF-测试模型。例如,模型是有意义的p- 7.3816E-27的价值。

您可以在模型属性中找到这些统计信息(NumObservations教育部RMSE, 和Rsquared)通过使用Anova.函数。

ANOVA(MDL,“摘要”
ans =3×5表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

加载样本数据。

加载carsmall

将变量存储在表中。

tbl =表(重量,加速,mpg,“VariableNames”,{'重量'“加速”“英里”});

显示表的前五行。

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)的线性回归模型。使用威尔金森表示法指定模型公式。

lm = fitlm(tbl,“MPG ~体重+加速”
LM =线性回归模型:MPG〜1 +重量+加速估计系数:估计系数__________ ________________________________________________________________________________3.783 5.31654 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.14743 1.3359 0.14743号观察结果:94,误差自由度:91根均方误差:4.12 R平方:0.743,调整R线:0.738 F统计与常数型号:132,P值= 1.38E-27

该模型“MPG ~体重+加速”在本例中相当于将模型规范设置为'线性'.例如,

lm2 = fitlm(tbl,'线性');

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

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

加载样本数据。

加载carsmall

将变量存储在表中。

tbl =表(重量,加速,model_year,mpg,“VariableNames”,{'重量'“加速”“Model_Year”“英里”});

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

lm = fitlm(tbl,“MPG ~体重+加速”
LM =线性回归模型:MPG〜1 +重量+加速估计系数:估计系数__________ ________________________________________________________________________________3.783 5.31654 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.19694 0.14743 1.3359 0.14743号观察结果:94,误差自由度:91根均方误差:4.12 R平方:0.743,调整R线:0.738 F统计与常数型号:132,P值= 1.38E-27

p-value的值为0.18493加速没有显着影响英里/加仑

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

资源描述。米odel_Year = categorical(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

指定Modelspec.使用威尔金森表示法可以在不改变设计矩阵的情况下更新模型。Fitlm.仅使用公式中指定的变量。它还为分类变量创建了必要的两个伪指示器变量Model_Year

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

表格输入的术语矩阵

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

加载医院数据集。

加载医院

将变量存储在表中。

T =表(Hospital.sex,Hospital.blecture(:,1),医院.age,Hosparing.Smoker,...“VariableNames”,{“性”'血压''年龄'“吸烟者”});

表示线性模型“血压~ 1 +性别+年龄+吸烟者”使用术语矩阵。响应变量位于表的第二列中,因此术语矩阵的第二列必须是一列0S表示响应变量。

T = [0 0 0 0;1 0 0 0;0 0 0 0]
t =4×4.0 0 0 0 1 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数据集和定义预测矩阵。

加载carsmallX =(加速度、重量);

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

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

适合线性模型。

mdl2 = fitlm(x,mpg,t)
mdl2 =线性回归模型:y ~ 1 + x1*x2 + x2^2Estimate 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观测数:94、误差自由度:89均方根误差:4.1 r平方:0.751,调整r平方:0.739 F-statistic vs. constant model: 67, p-value = 4.99e-26

只有拦截和X2项,它对应于重量变量,在5%的意义水平下显着。

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

分类预测器的模型

加载carsmall数据集并创建一个线性回归模型英里/加仑作为一个函数Model_Year.处理数值向量Model_Year作为一个分类变量,确定预测器使用“CategoricalVars”名称-值对的论点。

加载carsmallmdl = fitlm(model_year,mpg,“CategoricalVars”,1,'varnames',{“Model_Year”“英里”})
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. 是指示变量,如果值为值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. + ϵ

或者,您可以通过手动创建指示器变量并指定型号公式,创建一个没有截距项的指示变量的模型。

temp_year = dummyvar(分类(model_year));model_year_70 = temp_year(:,1);model_year_76 = temp_year(:,2);model_year_82 = temp_year(:,3);TBL =表(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 =线性回归模型:MPG〜Model_Year_70 + Model_Year_76 + Model_Year_82估计系数:估计SE TSTAT p值________ _______ ______ __________ 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的数观察:94,误差自由度:91根均方误差:5.56

在模型中选择参考级别

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

年=分类(model_year);

属性检查类别的顺序类别函数。

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

如果你使用作为一个预测变量Fitlm.选择第一类'70'作为参考水平。重新排序通过使用雷德斯函数。

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

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

mdl2 = fitlm(yor_reordered,mpg,'varnames',{“Model_Year”“英里”})
MDL2 =线性回归模型:MPG〜1 + Model_year估计系数:估计SE TSTAT PVALUE ________ _______ ______________________________70 -3.8839 1.4059 -2.7620 0.136 1.3812 7.3385 8.7634E-11观察数目:94,误差自由度:91根均匀误差:5.56 R线:0.531,调整R线:0.521 F统计与常数型号:51.6,p值= 1.07e-15

MDL2.使用'76'作为参考水平,包括两个指示器变量 Ι 70 Ι 82.

评估分类预测指标

的模型展示MDL2.包括A.p-每一项的值,以检验对应的系数是否等于零。每一个p-Value检查每个指示器变量。检查分类变量Model_Year作为一组指标变量,使用Anova..使用“组件”(默认)选项返回组件方差分析表,其中包括模型中除常数项外的每个变量的方差分析统计数据。

ANOVA(MDL2,“组件”
ans =2×5表SumSq DF MeanSq F pValue ________ ______ _____ __________ Model_Year 3190.1 2 1595.1 51.56 1.0694e-15错误2815.2 91 30.936

组件Anova表包括p- 左边的价值Model_Year变量,它小于p- 指示器变量的值。

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

加载样本数据。

加载医院

适合与数据交互条款的线性模型。将权重指定为响应变量,以及作为预测变量的性别,年龄和吸烟状态。此外,指定性别和吸烟状态是分类变量。

mdl = fitlm(医院,“互动”“ResponseVar”'重量'...“PredictorVars”,{“性”'年龄'“吸烟者”},...“CategoricalVar”,{“性”“吸烟者”})
mdl =线性回归模型:体重~ 1 +性别*年龄+性别*吸烟者+年龄*吸烟者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:Smoker_1 0.9509 3.8031 0.25003 0.80312 Age:Smoker_1 -0.07288 0.26275-0.27737 0.78211观测数:100,误差自由度:93均方根误差:8.75 r平方:0.898,调整r平方:0.892 F-statistic vs. constant模型:137,p-value = 6.91e-44

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

加载哈尔德数据集,测量水泥成分对其硬化热的影响。

加载哈尔德

这个数据集包括变量成分.矩阵成分含有水泥中四种化学物质的百分比。向量含有每个水泥样品180天后热硬化的值。

适用于数据的强大线性回归模型。

mdl = fitlm(成分、热、'抢劫'“上”
mdl =线性回归模型(稳健拟合):y ~ 1 + x1 + x2 + x3 + x4Estimate 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观测数:13,误差自由度:8均方根误差:2.65 r平方:0.979,调整后的R-Squared: 0.969 F-statistic vs. constant model: 94.6, p-value = 9.03 -07

有关更多详细信息,请参阅主题使用强大的回归减少异常效果,将稳健拟合的结果与标准最小二乘拟合的结果进行比较。

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

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

加载carsmallx1 =加速;x2 =位移;Y =重量;

创建自定义函数regf(在本例的最后)。这个函数对训练数据拟合一个回归模型,然后在测试集上计算预测的汽车权重。该函数将预测的汽车权重值与真实值进行比较,然后计算平均绝对误差(MAE)和调整到测试设置的汽车权重范围的MAE。

注意:如果在本例中使用活动脚本文件,则regf函数已经包含在文件的末尾。否则,您需要在。m文件的末尾创建这个函数,或者将其作为文件添加到MATLAB®路径中。

默认情况下,crossval执行10倍的交叉验证。对于10个培训和测试设置数据的每个培训和测试设置分区X1X2, 和y,计算MAE和使用调整的MAE值regf函数。找到平均mae和卑鄙的mae。

rng ('默认'%的再现性值= crossval (@regf, X1, X2, y)
值=10×2319.2261 0.1132 342.3722 0.1240 214.3735 0.0902 174.7247 0.1128 189.4835 0.0832 249.4359 0.1003 194.4210 0.0845 348.7437 0.1700 283.1761 0.1187 210.7444 0.1325
意思是(值)
ans =.1×2252.6701 - 0.1129

这段代码创建了这个函数regf

功能tbltrain = table(X1train,X2train,ytrain, X1test,X2test,ytest)...“VariableNames”,{“加速”“位移”'重量'});tbltest =表(X1test X2test,欧美,...“VariableNames”,{“加速”“位移”'重量'});mdl = fitlm (tbltrain,'重量〜加速+位移');YFIT =预测(MDL,TBLTEST);mae =平均值(abs(yfit-tbltest.weight));Adjmae = Mae / Range(Tbltest.weight);错误= [mae admmae];结束

输入参数

全部收缩

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

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

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

  • 要使用列的子集作为预测器,请使用预测orvars名称-值对的论点。

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

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

  • 你不能指定Modelspec.使用公式。

  • 属性时,不能使用公式指定要添加或删除的术语addTerms功能或者removeterms.功能分别。

  • 您无法使用公式指定当您使用时模型的下限和上限要么步骤行程使用名称值对参数的函数'降低'“上”,分别。

您可以验证变量名称TBL.通过使用isvarname.函数。如果变量名无效,则可以使用matlab.lang.makevalidname.函数。

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

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

数据类型:单身的|

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

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

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

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

    价值 模型类型
    “不变” 模型只包含一个常数(截距)项。
    '线性' 模型包含每个预测器的截距和线性项。
    “互动” 模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。下载188bet金宝搏
    'purequadratic' 模型包含每个预测器的截距项和线性和平方术语。
    '二次' 模型包含每个预测器的截距项、线性项和平方项,以及对不同预测器的所有乘积。下载188bet金宝搏
    'Poly.IJK. 模型是一种多项式,所有条款均可获得程度第一个预测因子是程度j在第二个预测因子,等等。通过使用数字来指定每个预测器的最大程度。但是模型包含交互术语,但每个交互项的程度不超过指定度的最大值。例如,“poly13”有一个拦截和x1x2x22x23.x1x2, 和x1x22条款,x1x2是第一和第二预测因子。
  • 一个t————(p+ 1)矩阵,或者术语矩阵,在模型中指定项,其中t是术语数量和数量p为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。

  • 字符矢量或字符串标量公式在表单中

    'Y〜术语'

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

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

例子:'二次'

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

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

名称值对参数

指定可选的逗号分隔的对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'拦截',false,'predictorvars',[1,3],'responsevar',5,'robustopts','logistic'指定没有常数项的强大回归模型,其中算法使用逻辑加权函数与默认调谐常量,第三个变量是预测变量,第五变量是响应变量。

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

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

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

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

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

例子:'CategoricalVars',逻辑([0 1 1 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])

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

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

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

例子:'Responalvar','收益'

例子:“ResponseVar”,[4]

例子:'ResponseVar',逻辑([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
    “柯西” w = 1 ./(1 + R. ^ 2) 2.385
    '公平的' w = 1 ./(1 + ABS(R)) 1.400
    'huber' w = 1 ./ max(1,abs(r)) 1.345
    '逻辑' w = tanh(r)./ r 1.205
    'OLS' 普通的最小二乘(没有加权函数) 没有一个
    'talwar' W = 1 * (abs(r)<1)) 2.795
    '脑袋' w = exp( - (r. ^ 2)) 2.985
    函数处理 接受向量的自定义权重函数r缩放的残差,并返回重量的向量相同的尺寸r 1
    • 内置重量函数的默认调谐常量为常规最小二乘估计提供大约95%的系数估计,提供了常规分布,没有异常分布。减少调谐常数增加分配给大残留的低档;增加调谐持续减少分配给大型残差的低维度。

    • 的值r在重量函数中是

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

      在哪里渣油是来自前一迭代的残差矢量,调谐常量,h杠杆值的向量是否符合最小二乘,和年代是估计由误差术语给出的标准偏差

      s = mad / 0.6745

      疯狂的是残留物中位数的中位数绝对偏离。常数0.6745使估计是对正态分布的估计。如果Xp列时,软件排除最小的列p计算中位数时的绝对偏差。

适合强大的配件,Fitlm.使用M估计来制定估计方程并使用该方法来解决它们迭代加权最小二乘法(irl)。

例子:“RobustOpts”,“安德鲁”

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

'varnames'不适用于表格或数据集数组中的变量,因为这些变量已经有名称。

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

  • 属性时,不能使用公式指定要添加或删除的术语addTerms功能或者removeterms.功能分别。

  • 您无法使用公式指定当您使用时模型的下限和上限要么步骤行程使用名称值对参数的函数'降低'“上”,分别。

在指定之前VarNames, VarNames,您可以验证变量名称varnames.通过使用isvarname.函数。如果变量名无效,则可以使用matlab.lang.makevalidname.函数。

例子:VarNames,{“马力”,“加速”,“Model_Year”,“英里”}

数据类型:字符串|细胞

观察权值,指定为逗号分隔的对,由“重量”n非负标量值的-by-1向量,其中n为观察次数。

数据类型:单身的|

输出参数

全部收缩

表示对数据响应的最小二乘拟合的线性模型,作为a返回LinearModel对象。

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

更多关于

全部收缩

术语矩阵

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

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

  • [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是响应名称。

  • 术语表示使用Wilkinson表示法的模型中的预测术语。

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

例如:

  • 'y ~ x1 + x2 + x3'指定具有截距的三个可变线性模型。

  • 'y〜x1 + x2 + x3 - 1'指定一个无截距的三变量线性模型。注意,默认情况下,公式包含一个常量(截距)项。要从模型中排除常数项,必须包含1在公式。

一个公式包含一个常数项,除非你明确地用1

Wilkinson表示法

威尔金森表示法描述了模型中的术语。这个符号与模型中的项相关,而不是这些项的乘数(系数)。

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.,你可以使用点符号。例如,mdl.residuals.返回模型的原始、Pearson、Studentized和标准化残值的表。

  • 在训练模型之后,您可以生成C/ c++代码来预测对新数据的响应。生成C/ c++代码需要MATLAB编码器™.有关详细信息,请参见代码生成简介

算法

  • 主要拟合算法是QR分解。适合强大的配件,Fitlm.使用M估计来制定估计方程并使用该方法来解决它们迭代加权最小二乘法(irl)。

  • Fitlm.处理分类预测器,如下所示:

    • 具有分类预测指标的模型l级别(类别)包括l- 1指示器变量。该模型使用第一类作为参考级别,因此它不包括参考级别的指示灯。如果分类预测器的数据类型是分类,则可以使用类别并通过使用雷德斯自定义参考级别。有关创建指示器变量的更多详细信息,请参阅自动创建虚拟变量

    • Fitlm.对待一组l- 1指示器变量作为一个单独的变量。如果您想将指示器变量视为不同的预测变量,可以使用dummyvar.然后在拟合模型时,使用除分类变量参考水平对应的指标变量外的其他指标变量。对于绝对预测器X,如果指定的所有列dummyvar(x)并且作为预测器的截距术语,然后设计矩阵变为缺陷。

    • 连续预测器和分类预测器之间的交互项l级别由元素 - 明智的产品组成l- 1带有连续预测器的指标变量。

    • 两个类别预测因子之间的交互项l级别包括l- 1) * (- 1)指示器变量包括两个分类预测器级别的所有可能组合。

    • 您无法为分类预测器指定高阶项,因为指示符的平方等于其自身。

  • Fitlm.考虑''(空字符向量),""(空字符串),<缺失>, 和<未定义>价值TBL.X, 和Y丢失值。Fitlm.不使用缺少匹配值的观测值。的观察税收拟合模型的性质表明是否Fitlm.把每个观察结果都用在合适的地方。

替代功能

  • 对于在高维数据集的计算时间减少,使用使用线性回归模型Fitrinear.函数。

  • 要定期回归,使用Fitrinear.套索, 要么plsregress

    • Fitrinear.使用套索或脊回归进行对高维数据集的回归。

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

    • 使用RIDGE回归将回归与相关项进行正常化。

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

参考

[1] Dumouchel,W. H.和F. L. O'Brien。“将强大的选项集成到多元回归计算环境中。”计算机科学与统计第21届界面研讨会论文集.弗吉尼亚州亚历山大市:美国统计协会,1989年。

[2] Holland,P.W.和R. E. Welsch。“使用迭代重复最小二乘的鲁棒回归。”统计学通讯:理论与方法A6,1977年,第813-827页。

[3] Huber,P. J.强大的统计数据.Hoboken,NJ:1981年John Wiley&Sons,Inc。。

[4] Street, J. O., R. J. Carroll,和D. Ruppert。用迭代再加权最小二乘法计算稳健回归估计的注释美国统计学家.卷。42,1988,pp。152-154。

扩展能力

介绍在R2013B.