LinearModel.fit

(不推荐)创建线性回归模型

LinearModel.fit不推荐。使用fitlm代替。

语法

MDL = LinearModel.fit(TBL)
MDL = LinearModel.fit(X,Y)
MDL = LinearModel.fit(___,modelspec)
MDL = LinearModel.fit(___,名称,值)
MDL = LinearModel.fit(___,modelspec,名称,值)

描述

MDL= LinearModel.fit(TBL创建一个表或数据集阵列的线性模型TBL

MDL= LinearModel.fit(Xÿ创建的响应的线性模型ÿ到数据矩阵X

MDL= LinearModel.fit(___modelspec创建所指定的类型的线性模型modelspec,使用任何以前的语法。

MDL= LinearModel.fit(___名称,值要么MDL= LinearModel.fit(___modelspec名称,值创建具有额外的选项的一个或多个指定的线性模型名称,值对参数。例如,您可以指定适合包括预测变量或观测包括权重。

输入参数

展开全部

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

  • 默认,LinearModel.fit取最后一个变量为应变量,其他的预测变量。

  • 若要将另一列设置为响应变量,请使用ResponseVar名称 - 值对的参数。

  • 若要将列的子集用作谓词,请使用PredictorVars名称 - 值对的参数。

  • 要定义一个型号规格,设置modelspec使用公式或术语矩阵参数。式或术语矩阵指定哪些列作为预测或响应变量使用。

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

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

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

  • 方法时,不能使用公式指定模型的下界和上界要么stepwiselm函数的名称-值对参数'降低''上',分别。

可以验证其中的变量名TBL通过使用isvarname功能。下面的代码返回的逻辑1真正)对于具有合法的变量名每个变量。

cellfun(@ isvarname,tbl.Properties.VariableNames)
如果变量名中TBL是无效的,然后使用它们转换matlab.lang.makeValidName功能。
tbl.Properties.VariableNames = matlab.lang.makeValidName(tbl.Properties.VariableNames);

预测变量,指定为ñ-通过-p矩阵,ñ是观测值的数量和p是预测变量的数目。的每一列X表示一个可变的,并且每行表示一个观察。

默认情况下,在模型中的常数项,除非你明确地将其删除,所以不包括1S在列X

数据类型:|

响应变量,指定为ñ×1向量,其中ñ为观测值个数。中的每个条目ÿ对于相应行的响应X

数据类型:||合乎逻辑

模型说明书中,指定为下列之一。

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

    型号类型
    '不变' 模型仅包含一个常数(截距)术语。
    “线性” 模型包含每个预测器的截距和线性项。
    “互动” 模型包含的截距,对于每个预测线性项,以及对不同的预测结果的所有产品(没有平方项)。s manbetx 845
    “purequadratic” 模型包含每个预测器的截距项和线性和平方项。
    “二次” 模型包含一个截距项,线性和对每个预测平方项,以及对不同的预测器的所有产品。s manbetx 845
    “聚IJK 模型是多项式所有条款高达程度一世在第一预测,学位Ĵ在第二个预测,依此类推。通过使用数字0虽然9.模型包含交互项指定每个预测器的最大的程度,但每个交互项的次数不超过规定的程度的最大值。例如,'poly13'有一个截距X1X2X22X23X1*X2X1*X22项,其中X1X2是所述第一和第二预测器,分别。
  • Ť-通过-(p+ 1)矩阵,即术语矩阵,指定术语在模型,其中包括Ť是项数和p是预测变量的数目,和加上1是用于响应变量。

  • 字符向量或标量的字符串表示形式

    'Y〜术语'

    在哪里条款使用指定威尔金森表示法

例:“二次”

例:'Y〜X1 + X2 ^ 2 + X1:X2'

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称参数名和是对应的值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数名1,值1,...,NameN,值N

分类变量列表中,指定为逗号分隔的一对组成的“CategoricalVars”和是一个字符串数组或包含在表或数据集阵列分类变量名字符向量的单元阵列TBL,或指示哪些列是类别的逻辑或数字索引向量。

  • 如果数据是在一个表或数据集阵列TBL,那么,默认情况下,LinearModel.fit处理所有分类值,逻辑值,字符数组,字符串数组,和字符向量作为分类变量的单元阵列。

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

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

例:“CategoricalVars”, [2,3]

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

数据类型:||合乎逻辑||细胞

观测到从拟合排除,指定为逗号分隔的一对组成的“排除”和一个逻辑或数字索引向量指示从拟合排除的观测。

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

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

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

数据类型:||合乎逻辑

指示器在拟合常数项(截距),指定为逗号分隔的一对组成的'截距',要么真正包括或除去从模型常数项。

使用'截距'只有在使用字符向量或字符串标量指定模型时,才使用公式或矩阵。

例:“拦截”,假

预测变量在配合使用,指定为逗号分隔的一对组成的'PredictorVars'以及一个字符串数组或变量名的字符向量的单元阵列中的表或数据集阵列TBL,或逻辑或数字索引向量指示哪些列预测值变量。

该字符串值或特征向量,应在名称中TBL或名称指定使用“VarNames”名称 - 值对的参数。

默认值是所有变量X,或在所有变量TBL除了ResponseVar

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

例:“PredictorVars”, [2,3]

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

数据类型:||合乎逻辑||细胞

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

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

例:'ResponseVar', '产量'

例:'ResponseVar',[4]

例:'ResponseVar',logical([0 0 0 0 1 0 0])

数据类型:||合乎逻辑|烧焦|

鲁棒配合型的用途,指定为逗号分隔的一对组成的指示器'RobustOpts'其中一个值。

  • “关”- 没有强大的配件。LinearModel.fit用一般的最小二乘法。

  • '上'-鲁棒拟合使用'bisquare'用默认的调谐常数权重函数。

  • 字符向量或字符串标量-从下表稳健的拟合权函数的名称。LinearModel.fit使用在表中指定的对应的默认调谐常数。

  • 与这两个领域结构RobustWgtFun调优

    • RobustWgtFun字段包含从下表或自定义权重函数的函数柄强大的拟合权函数的名称。

    • 调优字段包含一个调谐常数。如果您没有设置调优领域,LinearModel.fit使用相应的默认调谐常数。

    权函数 描述 默认调整恒
    “安卓” 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
    “醇” 普通最小二乘(无加权函数) 没有
    “塔瓦尔” W = 1 *(绝对(R)<1) 2.795
    “韦尔施” W = EXP( - (R ^ 2)) 2.985
    功能手柄 接受的载体的自定义权重函数[R缩放的残差,并返回权重的大小相同的向量的[R 1
    • 的内置砝码功能中的缺省调谐常数给系数估计是统计学高效为普通最小二乘估计约95%,提供的响应具有不带异常值的正态分布。减小调谐常数增加分配给大残差downweight;增加调谐常数减小分配给大残差downweight。

    • 价值[R在权重函数中

      R =渣油/(调* S * SQRT(1-H))

      哪里渣油是残差从先前迭代的载体,是调谐常数,H杠杆值的向量是否符合最小二乘拟合小号是由下式给出的误差项的标准偏差的估计值

      S = MAD / 0.6745

      从他们的中位数残差的平均绝对偏差。恒0.6745使得无偏的正态分布的估计。如果Xp列,该软件不包括最小p计算中位数时,绝对偏差。

对于稳健的配件,LinearModel.fit采用m -估计法建立估计方程,采用迭代再加权最小二乘法求解。

例:'RobustOpts', '安卓'

的变量的名称,指定为逗号分隔的一对组成的“VarNames”和一个字符串数组或字符向量包括的列名的单元阵列X首先是响应变量的名称ÿ持续。

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

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

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

  • 方法时,不能使用公式指定模型的下界和上界要么stepwiselm函数的名称-值对参数'降低''上',分别。

前指定VarNames, VarNames,你可以验证变量名中varNames通过使用isvarname功能。下面的代码返回的逻辑1真正)对于具有合法的变量名每个变量。

cellfun(@ isvarname,varNames)
如果变量名中varNames是无效的,然后使用它们转换matlab.lang.makeValidName功能。
varNames = matlab.lang.makeValidName(varNames);

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

数据类型:|细胞

观察权值,指定为逗号分隔对组成的“重量”和一个ñ非负标量值的-乘1向量,其中ñ为观测值个数。

数据类型:|

输出参数

展开全部

线性模型,表示数据响应的最小二乘拟合,以a的形式返回线性模型宾语。

如果该值'RobustOpts'名称 - 值对不[]要么“醇”,该模型是不是最小二乘法拟合,但使用强大的拟合功能。

对于性能和线性模型对象的方法,请参见线性模型类页。

例子

展开全部

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

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

负载carsmallX = [重量,马力,加速时间];

通过使用适合的线性回归模型fitlm

MDL = fitlm(X,MPG)
MDL =线性回归模型为:y〜1个+ X1 + X2 + X3估计系数:估计SE TSTAT p值__________ _________ _________ __________(截距)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×3 -0.011583 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,对应于 ÿ = β 0 + β 1 X 1 + β 2 X 2 + β 3 X 3 + ϵ

该模型显示还示出了所估计的系数信息,该信息被存储在系数属性。显示系数属性。

mdl.Coefficients
ANS =4×4表估计SE TSTAT p值__________ _________ _________ __________(截距)47.977 3.8785 12.37 4.8957e-21 X1 -0.0065416 0.0011274 -5.8023 9.8742e-08×2 -0.042943 0.024313 -1.7663 0.08078×3 -0.011583 0.19333 -0.059913 0.95236

系数财产包括这些列:

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

  • SE- 系数的标准误差。

  • TSTAT-Ťt-统计的每个系数来测试零假设,即相应的系数是零,备择,这是不同于零,因为在模型中的其他预测。注意TSTAT =估计/ SE。例如,Ťt-统计的截距是47.977 / 3.8785 = 12.37。

  • p值-p- 值对Ťt-统计假设检验的,该相应的系数等于零或没有。例如,p- 值的Ť为t-统计X2大于0.05,所以这个词是不是在给定的模型中的其他条款的5%的显着性水平显著。

该模型的汇总统计如下:

  • 观察数- 行没有任何数为NaN值。例如,观察数93,因为MPG数据向量有六为NaN值和马力数据载体具有一个为NaN对于一个不同的观察,其中该在的行数的值XMPG是100。

  • 错误自由度-ñ-p,其中ñ是观测值的数量,并且p在模型中的系数,包括截距的数量。例如,该模型有四个预测,所以错误自由度是93 - 4 = 89。

  • 均方根误差- 均方误差,其估算的误差分布的标准偏差的平方根。

  • R平方调整后的R平方- 确定的系数与分别确定的调节系数,。例如,R平方值表明模型解释的变异性的约75%在响应变量MPG

  • F统计量与常模- 检验统计量为F-对回归模型进行检验,检验模型的拟合度是否明显好于只包含一个常数项的退化模型。

  • p值-p- 值对F- 测试的模型。例如,该模型是有显著p-VALUE 7.3816e-27。

您可以在模型属性,这些统计(NumObservationsDFERMSERsquared),并通过使用方差分析功能。

方差分析(mdl'摘要'
ANS =3×5表SUMSQ DF MeanSq˚Fp值______ __ ______ __________总计6004.8 92 65.269型号4516 3 1505.3 89.987 7.3816e-27残1488.8 89 16.728

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

与分类预测模型

加载carsmall数据集和创建的线性回归模型MPG作为Model_Year。对待数字矢量Model_Year作为分类变量,识别使用所述预测“CategoricalVars”名称 - 值对的参数。

负载carsmallMDL = fitlm(Model_Year,MPG,“CategoricalVars”1,“VarNames”{“Model_Year”'MPG'})
MDL =线性回归模型:MPG〜1个+ Model_Year估计系数:估计SE TSTAT p值________ ______ __________(截距)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平方:0.531,调整R平方:0.521 F统计与常数模型:51.6,p值= 1.07E-15

在显示该模型的公式,MPG ~ 1 + Model_Year,对应于

MPG = β 0 + β 1 Ι 一年 = 76 + β 2 Ι 一年 = 82 + ϵ

哪里 Ι 一年 = 76 Ι 一年 = 82 如果的值为,指示符变量的值是否为1Model_Year是分别为76和82。该Model_Year变量包括三个不同的值,则可以通过使用该检查独特功能。

唯一的(Model_Year)
ANS =3×170 76 82

fitlm选择中最小的值Model_Year作为参考水平('70')并创建两个指示变量 Ι 一年 = 76 Ι 一年 = 82 。该模型仅包括两个指针变量,因为设计矩阵变成如果模型包括三个指示器变量秩亏(每个电平)和截距项。

模型与全指标变量

你可以解释的模型公式MDL作为具有无截距项三个指示变量模型:

ÿ = β 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功能。

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

第一类Year_reordered'76'。创建的线性回归模型MPG作为Year_reordered

MDL2 = fitlm(Year_reordered,MPG,“VarNames”{“Model_Year”'MPG'})
MDL2 =线性回归模型:MPG〜1个+ Model_Year估计系数:估计SE TSTAT p值________ _______ __________(截距)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,错误自由度: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统计。

方差分析(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

组件ANOVA表包括p- 值的Model_Year变量,它是比小p指示器变量 - 值。

适合的线性回归模型来采样数据。指定响应和预测变量,并在模型中包含只对相互作用方面。

加载样本数据。

负载医院

适合与交互项于该数据的线性模型。指定重量为应变量,与性别,年龄和吸烟状况的预测变量。此外,指定性别和吸烟状况是分类变量。

MDL = fitlm(医院,“互动”'ResponseVar''重量'...'PredictorVars'{'性别''年龄'“吸烟者”},...'CategoricalVar'{'性别'“吸烟者”})
MDL =线性回归模型:体重〜1个+性别*年龄+性别*吸烟者+年龄*吸烟者估计系数:估计SE TSTAT p值________ _______ ________ __________(截距)118.7 7.0718 16.785 6.821e-30 Sex_Male 68.336 9.7153 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%的显着性水平显著不同。

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

负载哈尔德

此数据集包括的变量配料。矩阵配料包含存在于水泥四种化学品的百分数组合物。矢量包含用于热在180天后对每个样品水泥硬化的值。

适合稳健线性回归模型的数据。

MDL = fitlm(成分,热,'RobustOpts''上'
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.13346 0.8166 0.16343 0.87424 -0.12052×4 0.7672 -0.15709 0.87906观测数:13,错误自由度:8均方根误差:2.65 R平方:0.979,调整R平方:0.969 F统计与常数模型:94.6,p值= 9.03e-07

有关详细信息,请参阅稳健回归 - 减少离群影响,其稳健拟合的结果进行比较,以一个标准的最小二乘方拟合。

更多关于

展开全部

提示

  • 使用强大的配件(RobustOpts名称 - 值对)来自动减少异常值的影响。

  • 当你想随后使用调整模型不要使用强大的配件

  • 对于其他方法或属性线性模型对象时,看到线性模型

算法

主要拟合算法是QR分解。对于稳健拟合,该算法robustfit

选择

您还可以使用构建线性模型fitlm

您可以使用各种可能的模型构建的模型stepwiselm。但是,您不能使用稳健回归和逐步回归到一起。