主要内容

fitlm

合适的线性回归模型

描述

例子

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

例子

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

例子

mdl= fitlm (___,modelspec)定义了模型规范使用任何输入参数组合在前面的语法。

例子

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

例子

全部折叠

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

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

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

通过使用线性回归模型fitlm

mdl = fitlm (X,英里/加仑)
mdl =线性回归模型:y ~ 1 + x1 + x2 + x3估计系数:估计SE tStat pValue __________替__________(拦截)e-21 x1 -0.0065416 0.0011274 -5.8023 4.8957 47.977 3.8785 12.37 9.8742 e-08 x2 -0.042943 -0.011583 0.19333 -0.059913 0.95236 0.024313 -1.7663 0.08078 x3的观测数量:93年,错误自由度:89根均方误差:4.09平方:0.752,调整平方:0.744 f统计量与常数模型:90年,假定值= 7.38 e-27

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

在显示模型公式,y ~ 1 + x1 + x2 + x3,对应于 y = β 0 + β 1 X 1 + β 2 X 2 + β 3 X 3 + ϵ

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

mdl.Coefficients
ans =4×4表估计SE tStat pValue __________替__________(拦截)47.977 3.8785 12.37 4.8957 e-21 x1 -0.0065416 0.0011274 -5.8023 9.8742 e-08 x2 x3 -0.011583 0.19333 -0.059913 0.08078 -0.042943 0.024313 -1.7663 0.95236

系数财产包括这些列:

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

  • SE-标准误差的系数。

  • tStat- - - - - -t统计每个系数测试零假设相应的系数是零对替代,它不同于零,鉴于其他预测模型。请注意,tStat =估计/ SE。例如,t统计的拦截是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价值的F以及在模型。例如,模型是重要的p7.3816 e-27的价值。

你可以找到这些数据模型属性(NumObservations,教育部,RMSE,Rsquared),并通过使用方差分析函数。

方差分析(mdl“摘要”)
ans =3×5表SumSq DF MeanSq F pValue ______ __交__________总92 65.269 4516 1505.3 89.987 7.3816 6004.8 e-27剩余1488.8 89 16.728

使用情节创建一个额外的变量情节(偏回归利用情节)对整个模型常数(拦截)项除外。

情节(mdl)

图包含一个坐标轴对象。坐标轴对象添加了标题变量情节为整体模型包含3线类型的对象。这些对象表示调整数据,适合:y = 0.0449564 * x, 95% conf.界限。

加载示例数据。

负载carsmall

将变量存储在一个表。

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

显示表的前五行。

台(1:5,:)
ans =5×3表体重加速度MPG ______ _______ ___ 3504 12 18 3436 3693 11.5 15 11 18 3433 12 16 3449 10.5 17

适合英里每加仑的线性回归模型(MPG)。通过使用威尔金森符号指定的模型公式。

lm = fitlm(资源描述,“MPG ~体重+加速”)
lm =线性回归模型:MPG ~ 1 +重量+加速度估计系数:估计SE tStat pValue __________ __________和__________(拦截)45.155 3.4659 13.028 1.6266 e-22重量e-24加速0.19694 0.14743 1.3359 5.3165 -0.0082475 0.00059836 -13.783 0.18493的观测数量:94年,错误自由度:91根均方误差:4.12平方:0.743,调整平方:0.738 f统计量与常数模型:132年,假定值= 1.38 e-27

该模型“MPG ~体重+加速”在这个例子中相当于设置模型规范“线性”。例如,

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

如果你使用一个特征向量模型规范和您没有指定响应变量,然后fitlm接受最后一个变量资源描述作为响应变量与其他变量的预测变量。

适合一个线性回归模型使用一个模型公式由威尔金森指定符号。

加载示例数据。

负载carsmall

将变量存储在一个表。

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

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

lm = fitlm(资源描述,“MPG ~体重+加速”)
lm =线性回归模型:MPG ~ 1 +重量+加速度估计系数:估计SE tStat pValue __________ __________和__________(拦截)45.155 3.4659 13.028 1.6266 e-22重量e-24加速0.19694 0.14743 1.3359 5.3165 -0.0082475 0.00059836 -13.783 0.18493的观测数量:94年,错误自由度:91根均方误差:4.12平方:0.743,调整平方:0.738 f统计量与常数模型:132年,假定值= 1.38 e-27

p0.18493显示的值加速度不产生重大影响英里/加仑

删除加速度从模型中,提高模型通过添加预测变量Model_Year。首先定义Model_Year作为分类变量。

资源描述。米odel_Year = categorical(tbl.Model_Year); lm = fitlm(tbl,“MPG ~ + Model_Year重量”)
lm =线性回归模型:MPG ~ 1 +重量+ Model_Year估计系数:估计SE tStat pValue __________ __________和__________(拦截)e-43重量-0.0066475 0.00042802 -15.531 1.2024 40.11 1.5418 26.016 3.3639 e-27 Model_Year_76 Model_Year_82 0.011488 1.9291 0.74761 2.5804 7.9093 0.84975 9.3078 7.8681 e15汽油数量的观察:94年,错误自由度:90根均方误差:2.92平方:0.873,调整平方:0.868 f统计量与常数模型:206年,假定值= 3.83 e-40

指定modelspec使用威尔金森符号允许您更新模型,而无需改变设计矩阵。fitlm只使用指定的变量的公式。它还创建了必要的两个仿真指示器变量分类变量Model_Year

符合使用条件矩阵的线性回归模型。

术语表输入矩阵

如果模型表中的变量,然后一列0在计算矩阵代表反应变量的位置。

加载医院数据集。

负载医院

将变量存储在一个表。

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

代表了线性模型“血压~ 1 +性别+年龄+抽烟'使用矩阵。响应变量是在表的第二列,第二列的矩阵必须是一个列的条款0年代的响应变量。

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 1 0 0 0 0 1

符合线性模型。

mdl1 = fitlm (t, t)
mdl1 =线性回归模型:血压~ 1 +性别+年龄+吸烟者估计系数:估计SE tStat pValue ________说__________(拦截)116.14 2.6107 44.485 7.1287 e - 66 Sex_Male Smoker_1年龄0.050106 0.98364 0.050939 0.95948 0.085276 0.066945 1.2738 0.2058 9.87 1.0346 9.5395 1.4516 e15汽油数量的观察:100年,错误自由度:96根均方误差:4.78平方:0.507,调整平方:0.492 f统计量与常数模型:33岁的假定值= 9.91 e15汽油

矩阵对矩阵的输入

如果预测和响应变量在一个矩阵列向量,然后你必须包括0为响应变量在每一行的结束条件矩阵。

加载carsmall数据集和预测的定义矩阵。

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

指定模型“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 pValue ___________ __________和__________ x1(拦截)48.906 12.589 3.8847 0.00019665 0.54418 0.57125 0.95261 0.34337 x2 -0.012781 0.0060312 -2.1192 0.036857 x1, x2 7.5389 9.7518 -0.00010892 0.00017925 -0.6076 0.545 x2 ^ 2 e-07 e-07 1.2935 - 0.19917号的观察:94年,错误自由度:89根均方误差:4.1平方:0.751,调整平方:0.739 f统计量与常数模型:67年,假定值= 4.99 e-26

只有截距和x2对应的词重量变量,在5%的显著性水平非常重要。

适合包含分类预测的线性回归模型。重新排序的类别分类预测控制模型的参考电平。然后,用方差分析测试类别变量的意义。

模型的分类预测

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

负载carsmallmdl = fitlm (Model_Year MPG,“CategoricalVars”,1“VarNames”,{“Model_Year”,“英里”})
mdl =线性回归模型:MPG ~ 1 + Model_Year估计系数:估计SE tStat pValue ________交__________(拦截)17.69 1.0328 17.127 3.2371 e-30 Model_Year_76 Model_Year_82 0.0069402 3.8839 1.4059 2.7625 14.02 1.4369 9.7571 8.2164 e-16数量的观察:94年,错误自由度:91根均方误差:5.56平方:0.531,调整平方:0.521 f统计量与常数模型:51.6,p = 1.07 e15汽油

在显示模型公式,英里/加仑~ 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估计系数:估计SE tStat pValue ________ ________ _____ Model_Year_70 17.69 1.0328 17.127 3.2371 e-30 Model_Year_76 21.574 0.95387 22.617 4.0156 e-39 Model_Year_82 31.71 0.99896 31.743 5.2234 e-51数量的观察:94年,错误自由度:91根均方误差:5.56

选择参考水平模型

你可以选择一个参考水平通过修改订单在一个分类变量的类别。首先,创建一个分类变量一年

年=分类(Model_Year);

检查使用的类别类别函数。

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

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

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

第一类的Year_reordered“76”。创建一个线性回归模型英里/加仑的函数Year_reordered

mdl2 = fitlm (Year_reordered MPG,“VarNames”,{“Model_Year”,“英里”})
mdl2 =线性回归模型:MPG ~ 1 + Model_Year估计系数:估计SE tStat pValue ______和_____(拦截)21.574 0.95387 22.617 4.0156 e-39 Model_Year_70 Model_Year_82 0.0069402 -3.8839 1.4059 -2.7625 10.136 1.3812 7.3385 8.7634 e-11数量的观察:94年,错误自由度:91根均方误差:5.56平方:0.531,调整平方:0.521 f统计量与常数模型:51.6,p = 1.07 e15汽油

mdl2使用“76”作为参考水平,包括两个指标变量 Ι 一年 = 70年 Ι 一年 = 82年

评估分类预测

该模型显示mdl2包括一个p每一项的值来测试是否相应的系数等于零。每一个p值检查每一个指标变量。检查类别变量Model_Year作为一个群体的指标变量,使用方差分析。使用“组件”返回一个组件(默认)选项为每个变量方差分析表,包括方差分析统计模型中的常数项除外。

方差分析(mdl2“组件”)
ans =2×5表看上去SumSq DF MeanSq F pValue __得一样_____ __________ Model_Year 3190.1 - 2 2815.2 91 30.936 1595.1 51.56 1.0694 e15汽油错误

该组件包括方差分析表p价值的Model_Year变量,这是小于p值的指标变量。

合适的样本数据的线性回归模型。指定响应和预测变量,只包括两两交互模型中。

加载示例数据。

负载医院

符合线性模型与数据交互方面。指定重量作为响应变量,以及性别、年龄、吸烟状况的预测变量。同时,指定性别和吸烟状况是分类变量。

mdl = fitlm(医院,“互动”,“ResponseVar”,“重量”,“PredictorVars”,{“性”,“年龄”,“抽烟”},“CategoricalVar”,{“性”,“抽烟”})
mdl =线性回归模型:体重~性* 1 +年龄+性别*吸烟者+年龄*吸烟者估计系数:估计SE tStat pValue ________ ________ _____(拦截)118.7 7.0718 16.785 6.821 e-30 Sex_Male平台以及年龄0.31068 0.18531 1.6765 0.096991 3.3386 68.336 9.7153 7.0339 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平方:0.898,调整平方:0.892 f统计量与常数模型:137年,假定值= 6.91 e-44

病人的重量似乎并不显著差异根据年龄、吸烟的状态,或这些因素与病人的互动性在5%的显著性水平。

加载哈尔德数据集的措施在其硬化水泥成分热的影响。

负载哈尔德

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

一个健壮的线性回归模型的数据。

mdl = fitlm(成分、热、“RobustOpts”,“上”)
mdl =线性回归模型(健壮健康):y ~ 1 + x1 + x2 + x3 + x4估计系数:估计SE tStat pValue ________ _________说x1(拦截)60.09 75.818 0.79256 0.4509 1.5753 0.80585 1.9548 0.086346 x2 0.5322 0.78315 0.67957 0.51596 x3 x4 -0.12052 0.7672 -0.15709 0.87424 0.13346 0.8166 0.16343 0.87906的观测数量:13日误差自由度:8根均方误差:2.65平方:0.979,调整平方:0.969 f统计量与常数模型:94.6,p = 9.03 e-07

更多细节,请参见主题减少使用健壮的回归离群值的影响,比较健壮的结果符合标准最小二乘匹配。

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

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

负载carsmallX1 =加速度;X2 =位移;y =重量;

创建自定义函数regf(如图所示的这个例子)。这个函数符合回归模型训练数据,然后计算测试集预测汽车重量。功能比较了预测汽车重量值真实值,然后计算平均绝对误差(MAE)和梅调整范围的测试集汽车重量。

注意:如果你使用现场脚本文件对于本例,regf功能已经包含在文件的末尾。否则,您需要创建这个函数的m文件或将它添加在MATLAB®文件路径。

默认情况下,crossval执行10倍交叉验证。每10个训练集和测试集的分区的数据X1,X2,y,计算出美和调整美值使用regf函数。发现平均美和平均调整美。

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

函数错误= regf (X1train X2train、ytrain X1test, X2test,欧美)tbltrain =表(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代表一个变量,每一行代表一个观察。

默认情况下,模型中的常数项,除非你显式地删除它,所以不包括1 s的一列X

数据类型:|

响应变量指定为一个n1的向量,n是观测的数量。中的每个条目y的响应相应的行吗X

数据类型:||逻辑

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

  • 一个特征向量或字符串标量命名模型。

    价值 模型类型
    “不变” 模型只包含一个常数(拦截)。
    “线性” 模型包含一个为每个预测拦截和线性项。
    “互动” 模型包含一个拦截,为每个预测线性项,和所有的产品对不同的预测(无平方项)。下载188bet金宝搏
    “purequadratic” 模型包含一个截距项为每个预测和线性平方项。
    “二次” 模型包含一个拦截的术语,为每个预测线性和平方项,和所有的产品对不同的预测。下载188bet金宝搏
    “聚ijk 模型是一个多项式与学位的所有条款在第一个预测,学位j在第二个预测,等等。为每个预测指定最大程度利用数字0到9。模型包含交互条款,但每个交互项的程度不超过指定的度的最大值。例如,“poly13”有一个拦截和x1,x2,x22,x23,x1*x2,x1*x22条款,x1x2分别是第一和第二预测。
  • 一个t————(p+ 1)矩阵,或计算矩阵在模型中指定条件,t的条款和数量吗p预测变量的数量,+ 1占响应变量。矩阵是方便当预测的数量很大,你想以编程方式生成条件。

  • 一个特征向量或字符串标量公式在表单中

    “y ~条款”,

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

    软件决定的条款在拟合模型通过使用条款的顺序资源描述X。因此,模型中的条款的顺序可以不同于条款的顺序在指定的公式。

例子:“二次”

例子:y ~ x1 + x2 ^ 2 + x1, x2”

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

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

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

类别变量列表中,指定为逗号分隔组成的“CategoricalVars”和字符串数组或单元阵列特征向量包含分类表中的变量名或数据集的数组资源描述、逻辑或数字索引向量显示哪些列直言。

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

  • 如果数据矩阵X的默认值“CategoricalVars”是一个空矩阵[]。即不变量分类,除非你指定分类。

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

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

例子:“CategoricalVars”、逻辑([0 1 1 0 0 0])

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

观察从健康,排除指定为逗号分隔组成的“排除”和逻辑或数字索引向量表示,从适合观测,以排除。

例如,您可以排除观测2和3的6使用下面的例子。

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

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

数据类型:||逻辑

为常数项指标(拦截),指定为逗号分隔组成的“拦截”,要么真正的包括或去除模型中的常数项。

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

例子:“拦截”,假的

预测变量用于配合,指定为逗号分隔组成的“PredictorVars”和字符串数组或单元阵列特征向量的变量名称的表或数据集的数组资源描述、逻辑或数字索引向量显示哪些列预测变量。

字符串值或特征向量应该名称中资源描述,或者您指定的名称使用“VarNames”名称-值对的论点。

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

例如,您可以指定第二个和第三个变量作为预测变量使用下面的例子。

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

例子:“PredictorVars”、逻辑([0 1 1 0 0 0])

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

反应变量在适合使用,指定为逗号分隔组成的“ResponseVar”和一个特征向量或字符串标量数据集包含表中的变量名或数组资源描述、逻辑或数字索引向量表示哪个列变量的响应。你通常需要使用“ResponseVar”当配件表或数据集的数组资源描述

例如,您可以指定第四变量,说收益率六个变量的响应,在下列方式之一。

例子:“ResponseVar”、“收益”

例子:“ResponseVar”, [4]

例子:“ResponseVar”、逻辑([0 0 0 1 0 0])

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

指标稳健拟合类型的使用,指定为逗号分隔组成的“RobustOpts”和其中一个值。

  • “关闭”——没有健壮的拟合。fitlm使用普通最小二乘法。

  • “上”——健壮的配件使用“bisquare”权函数使用默认调优常数。

  • 特征向量或字符串标量——一个健壮的配件的名称权函数从下面的表。fitlm使用相应的表中指定的默认调优常数。

  • 结构与两个字段RobustWgtFun调优

    • RobustWgtFun字段包含一个健壮的配件的名称权函数从下表或一个函数处理的一个定制的权函数。

    • 调优字段包含一个调优常数。如果你不设置调优领域,fitlm使用相应的默认调优常数。

    权函数 描述 默认调优常数
    “安德鲁” w = (abs (r) <π)。* sin (r)。/ 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
    “休伯” w = 1。/ max (1、abs (r)) 1.345
    “物流” w / r =双曲正切(r) 1.205
    “ols” 普通最小二乘法(没有权重函数) 没有一个
    “犯错误” w = 1 * (abs (r) < 1) 2.795
    “welsch” w = exp (- (r ^ 2)) 2.985
    函数处理 定制的权函数,它接受一个向量r按比例缩小的残差,并返回一个向量的权重相同的大小r 1
    • 内置的权重函数的默认调优常数给出系数估计,大约有95%是统计上有效的普通最小二乘估计,提供了反应没有异常值的正态分布。减少调整常数增加downweight分配给大残差;增加了调优常数降低downweight分配给大残差。

    • 的值r的权重函数

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

      在哪里渣油从先前的迭代中,残差向量的调优调优是常数,h从最小二乘匹配杠杆值的向量,然后呢年代是一个估计的标准偏差的误差项

      s =疯狂/ 0.6745

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

对健壮的拟合,fitlm使用M-estimation制定估计方程,解决了他们使用的方法迭代再加权最小二乘(irl)。

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

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

“VarNames”不适用于变量数据集在一个表格或数组,因为这些变量已经有名字。

变量名不需要有效的MATLAB标识符,但名称必须不包含前导或尾随空格。如果名称是无效的,你适合时不能使用一个公式或调整模型;例如:

  • 你不能用一个公式来指定术语来添加或删除当你使用addTerms函数或removeTerms函数,分别。

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

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

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

数据类型:字符串|细胞

观察体重、指定为逗号分隔组成的“重量”和一个n1负的标量值的向量,n是观测的数量。

数据类型:|

输出参数

全部折叠

代表一个最小二乘线性模型的响应数据,作为一个返回LinearModel对象。

如果该值“RobustOpts”名称-值对不[]“ols”,该模型不是一个最小二乘匹配,但使用健壮的拟合函数。

更多关于

全部折叠

计算矩阵

一个条件矩阵T是一个t————(p+ 1)矩阵指定术语在一个模型中,在那里t术语的数量,p预测变量的数量,+ 1占响应变量。的价值T (i, j)是变量的指数吗j在术语

例如,假设一个输入包括三个预测变量x1,x2,x3和响应变量y的顺序x1,x2,x3,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是响应的名字。

  • 条款威尔金森代表了预测计算模型中使用符号。

代表预测和响应变量,使用的变量名称表输入资源描述或通过使用指定的变量名VarNames。的默认值VarNames{x1, x2,…,‘xn’,‘y’}

例如:

  • “y ~ x1 + x2 + x3”指定一个有三线性模型与拦截。

  • “y ~ x1 + x2 + x3 - 1”指定一个有三线性模型没有拦截。注意公式包括一个常数(拦截)默认项。排除一个常数项的模型中,您必须包括1的公式。

一个公式包括常数项,除非你显式地删除术语使用1

威尔金森符号

威尔金森符号描述术语出现在一个模型。符号相关条款存在于一个模型,而不是乘数(系数)的条款。

威尔金森符号使用这些符号:

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

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

  • :定义了一个交互,这是一个产品的术语。

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

  • ^提高预测能力,完全一样*重复,所以^包括低阶项。

  • ()组条件。

此表显示了威尔金森符号的典型例子。

威尔金森符号 在标准符号
1 常数(拦截)
x1 ^ k,在那里k是一个正整数 x1,x12、……x1k
x1 + x2 x1,x2
x1 * x2 x1,x2,x1 * x2
x1, x2 x1 * x2只有
x2 不包括x2
x1 * x2 + x3 x1,x2,x3,x1 * x2
x1 + x2 + x3 + x1, x2 x1,x2,x3,x1 * x2
x1 * x2 * x3 - x1, x2, x3 x1,x2,x3,x1 * x2,x1 * x3,x2 * x3
x1 * (x2 + x3) x1,x2,x3,x1 * x2,x1 * x3

更多细节,请参阅威尔金森符号

提示

  • 访问的模型属性LinearModel对象mdl,你可以使用点符号。例如,mdl.Residuals返回一个原始表,皮尔逊Studentized和标准化剩余价值的模型。

  • 训练模型后,可以生成C / c++代码为新数据预测的反应。需要生成C / c++代码MATLAB编码器™。有关详细信息,请参见介绍代码生成

算法

  • 主要配件QR分解算法。对健壮的拟合,fitlm使用M-estimation制定估计方程,解决了他们使用的方法迭代再加权最小二乘(irl)。

  • fitlm对待分类预测如下:

    • 一个模型的分类预测l包括水平(类别)l- 1指标变量。模型使用第一类作为参考水平,所以它不包括参考的指标变量的水平。如果数据类型的分类预测分类,那你可以检查的顺序分类利用类别通过使用和重新排序的类别reordercats自定义参考水平。关于创建指标变量的更多细节,请参阅自动创建虚拟变量

    • fitlm治疗组l- 1作为一个变量指标变量。如果你想把指标变量不同的预测变量,使用手动创建指标变量dummyvar。然后使用指标变量,除了一个对应的参考电平分类变量,当你适应一个模型。的分类预测X如果你指定的所有列dummyvar (X)和一个截距项预测,然后设计矩阵变得不足。

    • 交互条款之间的连续预测和分类预测l由element-wise产品的水平l- 1变量与连续预测指标。

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

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

  • fitlm认为,(空字符向量),”“(空字符串),<失踪>,<定义>资源描述,X,Y缺失值。fitlm不使用与缺失值的观察。的ObservationInfo拟合模型表明是否的属性fitlm使用中的每个观察健康。

选择功能

  • 对高维数据集,减少了计算时间符合线性回归模型使用fitrlinear函数。

  • 调整回归,使用fitrlinear,套索,,或plsregress

    • fitrlinear演化为高维数据集回归使用套索或岭回归。

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

    • 使用岭回归演化回归与相关条款。

    • plsregress演化使用偏最小二乘回归与相关条款。

引用

[1]DuMouchel, w . H。,F。l。O'Brien. “Integrating a Robust Option into a Multiple Regression Computing Environment.”计算机科学和统计数据:21研讨会上的程序接口。亚历山大,弗吉尼亚州:美国统计协会,1989。

荷兰[2],p W。,R. E. Welsch. “Robust Regression Using Iteratively Reweighted Least-Squares.”通信数据:理论和方法,A6,1977年,页813 - 827。

[3]胡贝尔,p . J。健壮的统计数据。新泽西州霍博肯:约翰·威利& Sons Inc ., 1981年。

[4],j . O。,R. J. Carroll, and D. Ruppert. “A Note on Computing Robust Regression Estimates via Iteratively Reweighted Least Squares.”美国统计学家。42卷,1988年,页152 - 154。

扩展功能

版本历史

介绍了R2013b