主要内容

fitlm

拟合线性回归模型

描述

例子

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

例子

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

例子

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

例子

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

例子

全部收缩

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

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

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

利用拟合线性回归模型fitlm

mdl = fitlm (X,英里/加仑)
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观测数:93、误差自由度:89均方根误差:4.09 r平方:0.752,校正r平方:0.744 f统计量与常数模型:90,p-value = 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- - - - - -tt-统计的每个系数来测试零假设,即相应的系数是零,备择,这是不同于零,因为在模型中的其他预测。注意tStat =估计/ SE.例如,t-statistic for the intercept is 47.977/3.8785 = 12.37。

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

该模型的汇总统计如下:

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

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

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

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

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

  • p值- - - - - -p价值的F- 测试的模型。例如,该模型是有显著p7.3816 e-27的价值。

你可以在模型属性(NumObservations教育部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

阴谋为除常数(截距)项外的整个模型创建一个附加的变量图(部分回归杠杆图)。

情节(mdl)

图中包含一个轴对象。带有标题的轴对象为整个模型添加了可变plot,包含3个类型为line的对象。这些对象表示调整数据,适合:y=0.0449564*x, 95% conf. bounds。

加载示例数据。

加载carsmall

将变量存储在表中。

TBL =表(重量,加速度,MPG,'variablenames', {'重量'“加速”“英里”});

显示表的前五行。

台(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(资源描述,“MPG ~体重+加速”
LM =线性回归模型:MPG〜1个+重量+加速度估计系数:估计SE TSTAT p值__________ _______ __________(截距)45.155 3.4659 13.028 1.6266e-22重量-0.0082475 0.00059836 -13.783 5.3165e-24加速0.19694 0.14743 1.3359 0.18493数的观察结果:94,自由的误差度:91均方根误差:4.12 R平方:0.743,调整R平方:0.738 F统计与常数模型:132,p值= 1.38E-27

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

lm2 = fitlm(资源描述,“线性”);

如果您使用字符向量作为模型规范,而您没有指定响应变量,那么fitlm接受最后一个变量资源描述作为响应变量和其他变量作为预测变量。

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

加载示例数据。

加载carsmall

将变量存储在表中。

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

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

lm = fitlm(资源描述,“MPG ~体重+加速”
LM =线性回归模型:MPG〜1个+重量+加速度估计系数:估计SE TSTAT p值__________ _______ __________(截距)45.155 3.4659 13.028 1.6266e-22重量-0.0082475 0.00059836 -13.783 5.3165e-24加速0.19694 0.14743 1.3359 0.18493数的观察结果:94,自由的误差度:91均方根误差:4.12 R平方:0.743,调整R平方:0.738 F统计与常数模型:132,p值= 1.38E-27

p- 值0.18493表明,加速度对吗英里/加仑

消除加速度并尝试通过添加预测变量来改进模型model_year..首先定义model_year.作为一个分类变量。

tbl.Model_Year =分类(tbl.Model_Year);lm = fitlm(资源描述,“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.BloodPressure(:,1),hospital.Age,hospital.Smoker,......'variablenames', {“性”“血压”'年龄'“抽烟”});

代表线性模型'血压〜1 +性别+年龄+吸烟者'使用术语矩阵。响应变量在表的第二列,所以terms矩阵的第二列必须是0s为响应变量。

T = [0 0 0 0;1 0 0 0;0 0 0 0]
T =4×40 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 1 1 0 1 1 0 0 2 0

拟合线性模型。

MDL2 = fitlm(X,MPG,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×2 ^ 2 9.7518e-07 7.5389e-07 1.2935 0.19917若干意见:94,错误自由度:89均方根误差:4.1 R平方:0.751,调整R平方:0.739˚Ft-统计与常数模型:67,p-值= 4.99e-26

只有拦截和x2术语,其对应于重量变量,在5%显著水平下显著。

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

分类预测器模型

加载carsmall数据集并建立线性回归模型英里/加仑作为一个功能model_year..治疗数字矢量model_year.作为分类变量,识别使用所述预测'pationalvars'名称-值对的论点。

加载carsmallmdl = fitlm (Model_Year MPG,'pationalvars', 1'VarNames', {'model_year'“英里”})
mdl =线性回归模型: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观测数:94,误差自由度:91均方根误差: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,对应于

英里/加仑 β 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);台=表(Model_Year_70 Model_Year_76、Model_Year_82 MPG);mdl = fitlm(资源描述,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1'
mdl =线性回归模型: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观测值:94、误差自由度:91均方根误差:5.56

选择在模型参考电平

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

年份=分类(Model_Year);

通过使用使用的类别的顺序类别函数。

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

如果你使用作为一个预测变量fitlm选择第一类“70”作为参考电平。重新订购通过使用reordercats函数。

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

第一类Year_reordered“76”.创建的线性回归模型英里/加仑作为一个功能Year_reordered

mdl2 = fitlm (Year_reordered MPG,'VarNames', {'model_year'“英里”})
mdl2 =线性回归模型: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观测数:94,误差自由度:F-statistic vs. constant model: 51.6, p-value = 1.07e-15

mdl2用途“76”作为参考电平,并且包括两个指标变量 ι 70 ι 82

评估分类预测

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

方差分析(mdl2“组件”
ans =2×5表SUMSQ DF MeanSq˚Fp值______ __ ______ _____ __________ Model_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 +性别*年龄+性别*吸烟者+年龄*吸烟者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(成分,热,“RobustOpts”“上”
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

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

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

加载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.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,欧美,......'variablenames', {“加速”“位移”'重量'});MDL = fitlm(tbltrain,“重量~加速度+位移”);tbltest yfit =预测(mdl);美=意味着(abs (yfit-tbltest.Weight));adjMAE =美/范围(tbltest.Weight);错误= [MAE adjMAE];结束

输入参数

全部收缩

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

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

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

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

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

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

  • 您不能指定modelspec使用一个公式。

  • 你不能用一个公式来指定的条款中添加或当您使用删除addTerms功能或removeTerms功能,分别。

  • 你不能用一个公式时使用指定型号的上限和下限一步stepwiselm用名称 - 值对的参数函数“低”“上”, 分别。

您可以验证的变量名中资源描述通过使用isvarname函数。如果变量名是无效的,那么你可以通过将它们转换matlab.lang.makeValidName函数。

预测变量,指定为一个n——- - - - - -p矩阵,其中n观察的次数是多少p为预测变量的数量。每一列的X表示一个变量,每一行表示一个观察。

默认情况下,模型中有一个常数项,除非你明确地删除它,所以不要在其中包含一列1X

数据类型:|

响应变量,指定为n1的向量,n是观察人数。每个条目y对应一行的响应是X

数据类型:||逻辑

模型规范,指定为这些值之一。

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

    价值 模型类型
    '持续的' 模型仅包含一个常数(截距)术语。
    “线性” 模型包含每个预测器的截距和线性项。
    “互动” 模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。下载188bet金宝搏
    'purequadratic' 模型包含截距项、线性项和平方项。
    “二次” 模型包含一个截距项,线性和对每个预测平方项,以及对不同的预测器的所有产品。下载188bet金宝搏
    “聚ijk 模型是一个多项式,所有项都达到次第一个预测因子是程度j在第二个预测中,等等。通过使用数字0到9指定每个预测器的最大程度。模型中包含交互项,但每个交互项的程度不超过指定程度的最大值。例如,“poly13”具有截距和x1x2x22x23.x1x2,x1x22条款,x1x2分别是第一和第二预测因素。
  • 一个t————(p+ 1)矩阵,或者a计算矩阵,在模型中指定术语,在哪里t是多少项和p为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。

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

    “y ~条款”

    那里条款威尔金森符号.公式中的变量名称必须是变量名称资源描述或指定的变量名Varnames.此外,变量名必须是有效的MATLAB标识符。

    该软件通过使用中术语的顺序来确定拟合模型中术语的顺序资源描述X.因此,模型中项的顺序可能与指定公式中项的顺序不同。

例子:“二次”

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

数据类型:||字符|字符串

名称值参数

指定可选的逗号分隔的对名称,值参数。的名字是参数的名称和价值为对应值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家

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

分类变量列表,指定为逗号分隔对,由'pationalvars'以及在表或数据集数组中包含分类变量名的字符向量的字符串数组或单元格数组资源描述指示哪些列分类,或逻辑或数字索引向量。

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

  • 如果数据处于矩阵中X,则为的默认值'pationalvars'是一个空矩阵[].也就是说,没有一个变量是绝对的,除非你指定它为绝对的。

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

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

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

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

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

例如,可以排除观察图2和3的6使用以下实施例任一。

例子:'排除',[2,3]

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

数据类型:||逻辑

适应度中的常数项(截距)指示符,指定为逗号分隔的对组成“拦截”,要么真正的包括或错误的从模型中移除常数项。

“拦截”只有当指定使用字符向量或标量的字符串,而不是一个公式或矩阵模型。

例子:“拦截”,假的

要在适合的情况下使用的预测变量,指定为逗号分隔对组成“PredictorVars”以及表或数据集数组中变量名的字符向量的字符串数组或单元格数组资源描述,或逻辑或数字索引向量,指示哪些列是预测变量。

中的名称应包含字符串值或字符向量资源描述,或使用'VarNames'名称-值对的论点。

默认值是所有变量X,或所有变量资源描述除了ResponseVar

例如,可以指定第二和第三变量如使用以下实施例任一个预测变量。

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

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

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

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

例如,您可以指定第四个变量收益率作为响应了6个变量,通过以下方式之一。

例子:“ResponseVar”、“收益”

例子:“ResponseVar”,[4]

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

数据类型:||逻辑|字符|字符串

指示器的稳健拟合类型要使用,指定为逗号分隔对组成“RobustOpts”这些值中的一个。

  • “关闭”-没有稳健的拟合。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 ./ max(1, abs(r)) 1.345
    “物流” W =的tanh(R)./ř 1.205
    “ols” 普通最小二乘(无加权函数) 没有一个
    “犯错误” W = 1 *(绝对(R)<1) 2.795
    “welsch” w = exp (- (r ^ 2)) 2.985
    函数处理 接受向量的自定义权重函数r,并返回一个大小相同的权重向量r 1
    • 内置权重函数的默认调优常数给出的系数估计值在统计上大约是普通最小二乘估计值的95%,前提是响应是一个没有异常值的正态分布。降低调谐常数会增加分配给大残差的下重量;增加调优常数可以减少分配给大剩余量的下重量。

    • 的值r在权重函数是

      r =渣油/(调* *√(1小时))

      在哪里渣滓为上一个迭代的残差向量,调优为调谐常数,h是来自最小二乘贴合的杠杆值的矢量,以及年代是由下式给出的误差项的标准偏差的估计值

      s =疯狂/ 0.6745

      疯了是残差绝对值的中位数。常数0.6745使正态分布的估计无偏。如果Xp列,该软件不包括最小p计算中位数时,绝对偏差。

对健壮的拟合,fitlm使用M-估计配制使用的方法估计方程,并解决这些迭代复加权最小二乘(IRLS)。

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

用逗号分隔的变量对指定的变量名,由'VarNames'以及字符向量的字符串数组或单元格数组,其中包括的列的名称X第一,和用于响应变量名称y最后一次。

'VarNames'并不适用于表或数据集数组变量,因为这些变量已经有了名字。

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

  • 你不能用一个公式来指定的条款中添加或当您使用删除addTerms功能或removeTerms功能,分别。

  • 你不能用一个公式时使用指定型号的上限和下限一步stepwiselm用名称 - 值对的参数函数“低”“上”, 分别。

在指定'varnames',varnames,可以验证变量名varNames通过使用isvarname函数。如果变量名是无效的,那么你可以通过将它们转换matlab.lang.makeValidName函数。

例子:'VarNames',{ '马力', '加速', 'Model_Year', 'MPG'}

数据类型:字符串|细胞

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

数据类型:|

输出参数

全部收缩

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

如果“RobustOpts”名称-值对不是[]“ols”,模型不是最小二乘拟合,而是采用稳健拟合函数。

更多关于

全部收缩

计算矩阵

一个方面矩阵T是一个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]- - - - - -x1 ^ 2

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

0在每一项的末尾表示响应变量。通常,项矩阵中的零列向量表示响应变量的位置。如果在矩阵和列向量中有预测器和响应变量,则必须包括0获取每行最后一列中的响应变量。

公式

模型规范的公式是这种形式的字符向量或字符串标量y条款

  • y是响应名称。

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

要表示预测器和响应变量,请使用表输入的变量名资源描述或使用指定的变量名VarNames.默认值VarNames{ 'X1', 'X2',......, 'XN', 'Y'}

例如:

  • 'Y〜X1 + X2 + X3'指定与截距的三变量线性模型。

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

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

威尔金森符号

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

有关详细信息,请参见威尔金森符号

提示

  • 要访问的模型属性linearmodel.对象mdl,您可以使用DOT表示法。例如,mdl。残差返回模型的原始、Pearson、Studentized和标准化残值的表。

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

算法

  • 主要的拟合算法是QR分解。对健壮的拟合,fitlm使用M-估计配制使用的方法估计方程,并解决这些迭代复加权最小二乘(IRLS)。

  • fitlm对分类预测器的处理如下:

    • 与具有一个分类预测模型l包括水平(类别)l- 1指标变量。模型使用第一个类别作为参考级别,因此不包含参考级别的指标变量。如果分类预测器的数据类型为分类,然后您可以通过使用查看类别的顺序类别并通过使用重新排序类别reordercats自定义参考级别。创建指标变量的详细信息请参见虚拟变量的自动创建

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

    • 连续预测器和分类预测器之间的交互项l层次由元素的乘积组成l- 1带有连续预测器的指标变量。

    • 有两个分类预测变量之间的相互作用方面l级别包括l- 1)*(- 1)指标变量包括两个分类预测水平的所有可能组合。

    • 你不能为分类预测指定高阶项,因为指标的平方等于本身。

  • fitlm认为''(空字符向量),(空字符串),< >失踪,<定义>资源描述X,Y缺少值。fitlm不使用符合缺失值的观察结果。的ObservationInfo拟合模型的性质表明是否fitlm使用在配合每个观测。

选择功能

  • 有关高维数据集减少计算时间,使用适合的线性回归模型fitrlinear函数。

  • 正规化回归,使用fitrlinear套索,或plsregress

    • fitrlinear使用套索或脊回归正则化高维数据集的回归。

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

    • 规则化使用岭回归相关方面回归。

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

参考文献

杜穆谢尔,W. H.和F. L. O'Brien。将一个健壮的选项集成到多元回归计算环境中。计算机科学与统计学界面上的第21次研讨会的诉讼程序.亚历山大,VA:美国统计协会,1989年。

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

[3]胡伯,P. J.健壮的统计数据.霍博肯,新泽西州:约翰威利父子公司,1981。

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

扩展功能

介绍了R2013b