文档

fitlm

建立线性回归模型

fitlm创建一个LinearModel对象。一旦你创建对象,你可以看到它在工作区中。你可以看到所有的属性对象包含通过点击它。您可以创建情节和使用方法等做进一步的诊断分析情节,plotResiduals,plotDiagnostics。的完整列表的方法LinearModel,请参阅方法

语法

mdl = fitlm(台)
modelspec mdl = fitlm(台)
mdl = fitlm (X, y)
modelspec mdl = fitlm (X, y)
mdl = fitlm (___、名称、值)

描述

例子

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

例子

mdl= fitlm (资源描述,modelspec)返回一个指定类型的线性模型modelspec适合表中的变量或数组的数据集资源描述

例子

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

例子

mdl= fitlm (X,y,modelspec)返回一个指定类型的线性模型modelspec的反应y,适合数据矩阵X

例子

mdl= fitlm (___,名称,值)返回一个线性模型由一个或多个指定附加选项名称,值对参数。

例如,您可以指定哪些变量是分类,执行稳健回归,或者使用观察权重。

例子

全部折叠

加载示例数据。

负载carsmall

将变量存储在一个表。

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

显示表的前五行。

台(1:5,:)
ans = 5 x3表重量加速度_______ ___ 3504 12 18 3693 11.5英里/加仑______ 15 3449年3433年3436年11日18 12日16 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

这个语法使用威尔金森符号来指定modelspec

该模型“MPG ~体重+加速”在这个例子中相当于拟合模型使用“线性”作为modelspec。例如,

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

当你使用一个特征向量modelspec并没有指定响应变量,fitlm默认情况下接受最后一个变量资源描述作为响应变量与其他变量的预测变量。如果有任何分类变量和使用“线性”随着modelspec,那么您必须显式地使用这些变量指定为分类变量CategoricalVars名称-值对的论点。

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

加载示例数据。

负载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

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

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

资源描述。Model_Year =分类(tbl.Model_Year);lm = fitlm(资源描述,“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

适合一个表,其中包含分类预测模型。

加载carsmall数据。

负载carsmall

构建一个表包含连续的预测变量重量,名义上的预测变量一年和响应变量英里/加仑

台=表(MPG、重量);资源描述。一年= nominal(Model_Year);

创建一个模型英里/加仑的函数一年,重量,体重^ 2。(你不需要包括重量显式地在你的公式,因为它是一个低阶的概念体重^ 2),包括自动。

mdl = fitlm(资源描述,“MPG ~年+重量^ 2”)
mdl =线性回归模型:MPG ~体重重量1 + +年+ ^ 2估计系数:估计SE tStat pValue __________ __________和__________(拦截)e-19重量-0.016404 0.0031249 -5.2493 2.6648 54.206 4.7117 11.505 1.0283 e-06 Year_76 Year_82 0.0044137 2.0887 0.71491 2.9215 8.1864 0.81531 10.041 1.5573 2.6364 e-16体重^ 2 e-06 4.9454 e-07 3.149 - 0.0022303的观察:94年,错误自由度:89根均方误差:2.78平方:0.885,调整平方0.88 f统计量与常数模型:172年,假定值= 5.52 e-41

fitlm创建了两个虚拟变量(指标)的名义变量,一年。的哑变量Year_76值1如果模型是1976年,值0如果不是。的哑变量Year_82值1如果模型是1982年,值0如果不是。1970年是参考。相应的模型

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

加载示例数据。

负载医院

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

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

输入参数

全部折叠

输入数据,指定为一个表或数据集的数组。当modelspec是一个公式,它指定了变量被用作预测和响应。否则,如果你不指定预测和响应变量,最后一个变量是响应变量和其他预测变量默认情况下。

预测变量可以是数字,或任何分组变量类型,如逻辑或分类(见分组变量)。响应必须是数字或逻辑。

不同的列设置为响应变量,使用ResponseVar名称-值对的论点。使用列的一个子集作为预测因子,使用PredictorVars名称-值对的论点。

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

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

数据类型:||逻辑

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

数据类型:||逻辑

模型规范,指定为以下之一。

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

    价值 模型类型
    “不变” 模型只包含一个常数(拦截)。
    “线性” 模型包含一个为每个预测拦截和线性的条件。
    “互动” 模型包含一个拦截,线性条件,所有的产品对不同的预测(无平方项)。s manbetx 845
    “purequadratic” 模型包含一个拦截,线性项,平方项。
    “二次” 模型包含一个拦截,线性项,互动,平方项。
    “聚ijk 模型是一个多项式与学位的所有条款在第一个预测,学位j在第二个预测等。使用数字0通过9。例如,“poly2111”常数加上所有线性和产品条款,也包含与预测1的平方。
  • t————(p+ 1)矩阵,即计算矩阵,指定条款包括在模型中t的条款和数量吗p预测变量的数量,+ 1是为响应变量。

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

    “Y ~条款”,

    在哪里条款威尔金森符号

例子:“二次”

例子:y ~ X1 + X2 ^ 2 + X1, X2”

名称-值对的观点

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在单引号(' ')。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

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

全部折叠

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

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

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

例如,您可以指定观察2和3 6分类使用下面的例子。

例子:“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包含健壮的配件的名称权函数从下表和可选的标量调优字段,fitlm使用RobustWgtFun权函数和调优从结构调整常数。你可以选择健壮的合适的权函数的名字从这个表。如果你不提供调优领域,拟合函数使用相应的违约调整常数。

    权函数 方程 默认调优常数
    “安德鲁” w = (abs (r) <π)。* sin (r)。/ r 1.339
    “bisquare”(默认) w = (abs (r) < 1)。* (1 - r ^ 2)。^ 2 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小时)),

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

    s =疯狂/ 0.6745

    疯狂的平均绝对偏差的残差值。常数0.6745使得正态分布的无偏估计。如果有pX,最小的p当计算平均绝对偏差被排除在外。

    默认调优常量给系数估计,大约有95%是统计上有效的普通最小二乘估计,提供了反应没有异常值的正态分布。减少调整常数增加downweight分配给大残差;增加了调优常数降低downweight分配给大残差。

  • 结构与功能处理RobustWgtFun和可选的标量调优字段,您可以指定一个定制的权函数。fitlm使用RobustWgtFun权函数和调优从结构调整常数。指定RobustWgtFun作为处理函数,它接受一个向量的残差,并返回一个向量的权重相同的大小。残差拟合函数尺度,除以调优常数(默认1)和估计的误差标准差权重函数之前调用。

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

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

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

例如,如果在您的数据,马力,加速度,和模型的汽车预测变量,并英里每加仑(MPG)响应变量,然后你可以命名变量,如下所示。

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

数据类型:字符串|细胞

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

数据类型:|

输出参数

全部折叠

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

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

更多信息在线性模型对象的属性和方法,mdl,请参阅LinearModel类页面。

更多关于

全部折叠

计算矩阵

一个矩阵是一个条款t————(p+ 1)矩阵指定术语在一个模型中,在那里t术语的数量,p预测变量的数量,+ 1是为响应变量。

的价值T (i, j)是变量的指数吗j在术语。假设有三个预测变量一个,B,C:

[0 0 0 0]%常数项或拦截[0 1 0 0]% B;同样,^ 0 * B * C ^ 0 ^ 1(1 0 1 0)% * C(2 0 0 0)% ^ 2[0 1 2 0]% B * (C ^ 2)
0的每一项代表了响应变量。一般来说,

  • 如果你有表中的变量或数据数组,然后0必须代表响应变量取决于反应变量的位置。下面的例子说明了使用一个表。

    加载示例数据和定义一个表。

    负载医院dsa =表(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 = 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1

    重新定义表。

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

    现在,响应变量是表中的第一项。指定相同的线性模型,“血压~ 1 +性别+年龄+抽烟',使用矩阵。

    T = [0 0 0 0; 0 1 0 0; 0 0 1 0, 0 0 0 1)
    T = 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
  • 如果你有预测和响应变量在一个矩阵列向量,然后你必须包括0为响应变量在每学期的结束。下面的例子说明了这一点。

    负荷预测的样本数据和定义矩阵。

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

    指定模型“MPG ~加速度+重量+加速:重量+重量^ 2》使用术语矩阵和适应模型数据。这个模型包括主效应和双向互动方面的变量,加速度重量变量的二阶项,重量

    T = [0 0 0、1 0 0 0 1 0; 1 1 0, 0 2 0)
    T = 0 0 0 1 0 0 0 1 0 1 1 0 0 2 0

    符合线性模型。

    mdl = fitlm (X,英里/加仑,T)
    mdl =线性回归模型: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%的显著性水平非常重要。

    现在,与一个常数进行逐步回归模型作为初始模型和线性模型与交互上层模型。

    T = [0 0 0、1 0 0 0 1 0; 1 1 0);mdl = stepwiselm (X,英里/加仑(0 0 0),“上”,T)
    1。添加x2, FStat = 259.3087, pValue = 1.643351即使mdl =线性回归模型:y ~ 1 + x2估计系数:估计SE tStat pValue(拦截)e-49 x2 -0.0086119 0.0005348 -16.103 2.7015 49.238 1.6411 30.002 1.6434即使数量的观察:94年,错误自由度:92根均方误差:4.13平方:0.738,调整平方0.735 f统计量与常数模型:259年,即使假定值= 1.64

    逐步回归结果与结果相一致fitlm在前面的步骤。

公式

规范是一个特征向量公式模型或字符串标量的形式Y~条款

在哪里

  • Y是响应的名字。

  • 条款包含

    • 变量名

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

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

    • :定义了一种互动,一个产品的条件

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

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

    • ()组条件

请注意

公式包括一个常数(拦截)默认项。排除一个常数项的模型,包括1的公式。

例如,

“Y ~ + B + C”意味着有三线性模型与拦截。
“Y ~ + B + C - 1”是一个有三线性模型没有拦截。
' Y ~ + B + C + B ^ 2”是一个有三模型拦截和B ^ 2术语。
“Y ~ + B ^ 2 + C '与前面的示例相同,因为B ^ 2包括一个B术语。
“Y ~ + B + C + A: B”包括一个A * B术语。
“Y ~ A * B + C”与前面的示例相同,因为A * B = A + B + A: B
“Y ~ * B * C - A: B: C '有相互作用一个,B,C,除了三方互动。
“Y ~ * (B + C + D)”所有线性项,加的产品s manbetx 845一个与每个其他的变量。

威尔金森符号

威尔金森符号描述的因素出现在模型中。符号与因素存在于模型,不是乘数(系数)的因素。

威尔金森符号 因素标准符号
1 常数(拦截)
^ k,在那里k是一个正整数 一个,一个2、……一个k
A + B 一个,B
A * B 一个,B,A * B
A: B A * B只有
- b 不包括B
A * B + C 一个,B,C,A * B
A + B + C + A: B 一个,B,C,A * B
* B * C - A: B: C 一个,B,C,A * B,* C,B * C
* (B + C) 一个,B,C,A * B,* C

统计和机器学习工具箱™符号总是包含一个常数项,除非你显式地删除术语使用1

提示

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

  • 培训后LinearModel模型对象通过使用fitlm,使用函数预测和训练有素的模型对象为新数据生成C代码,预测的反应。有关详细信息,请参见代码生成

扩展功能

介绍了R2013b

这个主题有帮助吗?