拟合线性回归模型
使用矩阵输入数据集拟合线性回归模型。
加载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
,对应于
.
模型显示还显示了估计的系数信息,这些信息存储在系数
财产。显示系数
财产。
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价值的t-对应系数是否等于零的假设检验的统计量。例如,p价值的t统计的x2
大于0.05,因此相对于模型中其他项,该项在5%显著水平下不显著。
模型汇总统计如下:
数量的观察
-没有任何的行数南
值。例如,数量的观察
是93,因为英里/加仑
数据向量有6个南
价值和马力
数据向量有一个南
值,其中行数X
和英里/加仑
是100。
误差自由度
- - - - - -n- - - - - -p,在那里n是观察的次数,和p为模型中系数的个数,包括截距。例如,这个模型有四个预测因子,所以误差自由度
是93 - 4 = 89。
均方根误差
- 均方误差,其估算的误差分布的标准偏差的平方根。
平方
和调整后的平方
-分别为确定系数和调整确定系数。例如,平方
值表明,该模型解释了响应变量中大约75%的可变性英里/加仑
.
f统计量与常数模型
-测试统计F-test的回归模型,测试是否模型拟合显著优于仅由常数项的退化模型。
假定值
- - - - - -p价值的F-测试模型。例如,模型是有意义的p7.3816 e-27的价值。
你可以在模型属性(NumObservations
,教育部
,RMSE
,Rsquared
),并使用方差分析
函数。
方差分析(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,“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)英里。通过使用威尔金森符号指定模型公式。
lm = fitlm(资源描述,“MPG ~体重+加速”)
lm = Linear regression model: MPG ~ 1 + Weight + Acceleration Estimated Coefficients: Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 45.155 3.4659 13.028 1.6266e-22 Weight -0.0082475 0.00059836 -13.783 5.3165e-24 Acceleration 0.19694 0.14743 1.3359 0.18493观测次数:94、误差自由度:91均方根误差:4.12 r平方:0.743,校正r平方:0.738 f统计量与常数模型:132,p-value = 1.38e-27
该模型“MPG ~体重+加速”
在这个例子中相当于设定模型说明书中“线性”
.例如,
lm2 = fitlm(资源描述,“线性”);
如果您使用字符向量作为模型规范,而您没有指定响应变量,那么fitlm
接受最后一个变量资源描述
作为响应变量和其他变量作为预测的变量。
使用威尔金森符号指定的模型公式拟合线性回归模型。
加载示例数据。
负载carsmall
存储在表中的变量。
台=表(重量、加速度、Model_Year MPG,“VariableNames”, {“重量”,“加速”,'Model_Year',“英里”});
以重量和加速度作为预测变量,拟合每加仑英里数(MPG)的线性回归模型。
lm = fitlm(资源描述,“MPG ~体重+加速”)
lm = Linear regression model: MPG ~ 1 + Weight + Acceleration Estimated Coefficients: Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 45.155 3.4659 13.028 1.6266e-22 Weight -0.0082475 0.00059836 -13.783 5.3165e-24 Acceleration 0.19694 0.14743 1.3359 0.18493观测次数:94、误差自由度:91均方根误差:4.12 r平方:0.743,校正r平方:0.738 f统计量与常数模型:132,p-value = 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.BloodPressure (: 1), hospital.Age, hospital.Smoker,...“VariableNames”, {“性”,“血压”,“年龄”,“抽烟”});
表示线性模型“血压~ 1 +性别+年龄+吸烟者”
使用术语矩阵。响应变量在表的第二列,所以terms矩阵的第二列必须是0
S对于响应变量。
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,英里/加仑,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%显著水平下显著。
拟合一个包含分类预测器的线性回归模型。对分类预测器的类别重新排序,以控制模型中的参考级别。然后,用方差分析
检验分类变量的显著性。
分类预测器模型
加载carsmall
数据集并建立线性回归模型英里/加仑
作为…的函数Model_Year
.对待数字矢量Model_Year
作为一个分类变量,确定预测器使用'CategoricalVars'
名称-值对的论点。
负载carsmallmdl = fitlm (Model_Year MPG,'CategoricalVars',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
,对应于
,
在哪里
和
值为1的指示器变量是否为Model_Year
分别是76和82。的Model_Year
变量包含三个不同的值,可以使用独特的
函数。
独特的(Model_Year)
ans =3×170 76 82
fitlm
选择中最小的值Model_Year
作为参考水平(“70”
),并创建两个指示器变量
和
.该模型只包含两个指标变量,因为如果模型包含三个指标变量(每个水平一个)和一个截距项,设计矩阵就会变得秩不足。
全指标变量模型
你可以解释的模型公式mdl
作为一个模型,它有三个指标变量,没有截距项:
.
或者,您可以通过手工创建指标变量并指定模型公式来创建一个包含三个指标变量且没有截距项的模型。
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 =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 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”
作为参考水平,包括两个指标变量
和
.
评估分类预测
的模型展示mdl2
包括一个p-VALUE每个术语来测试的对应系数是否等于零。每个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
成分方差分析表包括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(成分、热、“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个训练和测试集分区X1
,X2
,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
.
函数错误= regf(X1train,X2train,ytrain,X1test,x2检验,ytest)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
函数。
X
- - - - - -预测变量预测变量,指定为n——- - - - - -p矩阵,其中n观察的次数是多少p为预测变量的数量。每一列的X
表示一个变量,每一行表示一个观察。
默认情况下,模型中有一个常数项,除非你明确地删除它,所以不要在其中包含一列1X
.
数据类型:单
|双
y
- - - - - -反应变量响应变量,指定为n1的向量,n是观测值的数量。在每个条目y
对应一行的响应是X
.
数据类型:单
|双
|逻辑
modelspec
- - - - - -模型规范“线性”
(默认)|命名模型的字符向量或字符串标量|t————(p+ 1)项矩阵|字符向量或字符串标量公式的形式“y ~条款”
模型规范,指定为这些值之一。
一个特征向量或串标命名模型。
价值 | 模型类型 |
---|---|
“不变” |
模型只包含一个常数(截距)项。 |
“线性” |
模型包含每个预测器的截距和线性项。 |
“互动” |
模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。s manbetx 845 |
“purequadratic” |
模型包含截距项、线性项和平方项。 |
“二次” |
模型包含每个预测器的截距项、线性项和平方项,以及对不同预测器的所有乘积。s manbetx 845 |
“聚 |
模型是一个多项式,所有项都达到次我 第一个预测因子是程度j 在第二个预测中,等等。通过使用数字0到9指定每个预测器的最大程度。模型中包含交互项,但每个交互项的程度不超过指定程度的最大值。例如,“poly13” 有一个截距x1,x2,x22,x23.,x1*x2,x1*x22条款,x1和x2分别是第一和第二预测因素。 |
一个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’,‘物流’
指定一个不含常数项的稳健回归模型,其中算法使用带有默认调优常数的逻辑加权函数,第一和第三个变量是预测变量,第五个变量是响应变量。
'CategoricalVars'
- - - - - -分类变量列表分类变量列表,指定为逗号分隔对,由'CategoricalVars'
以及在表或数据集数组中包含分类变量名的字符向量的字符串数组或单元格数组资源描述
,或指示哪些列是分类列的逻辑或数字索引向量。
如果数据在表或数据集数组中资源描述
,那么默认情况下,fitlm
将所有分类值、逻辑值、字符数组、字符串数组和字符向量的单元格数组视为分类变量。
如果数据是在矩阵X
,则为的默认值'CategoricalVars'
是一个空矩阵[]
.也就是说,没有一个变量是绝对的,除非你指定它为绝对的。
例如,您可以使用以下任意一种方法指定六个变量中的第二个和第三个变量为分类变量:
例子:'CategoricalVars',[2,3]
例子:'CategoricalVars',逻辑([0 1 1 0 0])
数据类型:单
|双
|逻辑
|字符串
|细胞
'排除'
- - - - - -观察排除要从匹配中排除的观察值,指定为由逗号分隔的对组成'排除'
以及逻辑或数字索引向量,指示要从拟合中排除哪些观测值。
例如,您可以使用下面的任何一个示例排除6个观察值中的2个和3个。
例子:“排除”,[2,3]
例子:'排除',逻辑([0 1 1 0 0])
数据类型:单
|双
|逻辑
“拦截”
- - - - - -常数项指示器真正的
(默认)|假
适应度中的常数项(截距)指示符,指定为逗号分隔的对组成“拦截”
,要么真正的
包括或假
从模型中移除常数项。
使用“拦截”
仅当使用字符向量或字符串标量指定模型时,而不是使用公式或矩阵。
例子:“拦截”,假的
“PredictorVars”
- - - - - -预测变量要在适合的情况下使用的预测变量,指定为逗号分隔对组成“PredictorVars”
以及表或数据集数组中变量名的字符向量的字符串数组或单元格数组资源描述
,或逻辑或数字索引向量,指示哪些列是预测变量。
中的名称应包含字符串值或字符向量资源描述
,或使用“VarNames”
名称-值对的论点。
默认是所有的变量X
,或所有变量资源描述
除了ResponseVar
.
例如,您可以使用以下任意一个示例指定第二个和第三个变量作为预测变量。
例子:“PredictorVars”,[2,3]
例子:'PredictorVars',逻辑([0 1 1 0 0])
数据类型:单
|双
|逻辑
|字符串
|细胞
“ResponseVar”
- - - - - -反应变量资源描述
(默认)|包含变量名的字符向量或字符串标量|逻辑或数字索引向量响应变量要在适合中使用,指定为逗号分隔对组成“ResponseVar”
以及一个字符向量或标量的字符串中含有表或数据集数组变量名资源描述
,或逻辑或数字索引向量,指示哪一列是响应变量。你通常需要使用“ResponseVar”
拟合表或数据集阵列时资源描述
.
例如,您可以指定第四个变量收益率
,作为对六个变量的响应,以下列方式之一。
例子:“ResponseVar”、“收益”
例子:“ResponseVar”,[4]
例子:'ResponseVar',逻辑([0 0 0 1 0 0])
数据类型:单
|双
|逻辑
|字符
|字符串
“RobustOpts”
- - - - - -稳健配合型指示器“关闭”
(默认)|“上”
|特征向量|字符串标量|结构指示器的稳健拟合类型要使用,指定为逗号分隔对组成“RobustOpts”
其中一个值。
“关闭”
-没有稳健的拟合。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.385 |
“公平” |
W = 1 ./ (1 + abs(r)) |
1.400 |
“休伯” |
W = 1 ./ max(1, abs(r)) |
1.345 |
“物流” |
W = tanh(r) / r |
1.205 |
“ols” |
普通最小二乘(无加权函数) | 没有一个 |
“犯错误” |
W = 1 * (abs(r)<1)) |
2.795 |
“welsch” |
w = exp (- (r ^ 2)) |
2.985 |
函数处理 | 接受的载体的自定义权重函数r ,并返回一个大小相同的权重向量r |
1 |
内置权重函数的默认调优常数给出的系数估计值在统计上大约是普通最小二乘估计值的95%,前提是响应是一个没有异常值的正态分布。降低调谐常数会增加分配给大残差的下重量;增加调优常数可以减少分配给大剩余量的下重量。
的值r在权重函数中
r =渣油/(调* *√(1小时))
,
在哪里渣油
为上一个迭代的残差向量,调优
为调谐常数,h
是杠杆值从最小二乘拟合的向量,并且年代
给出的误差项的标准差估计是
s =疯狂/ 0.6745
.
疯了
是残差绝对值的中位数。常数0.6745使正态分布的估计无偏。如果X
有p列时,软件排除最小的列p计算中位数时的绝对偏差。
对健壮的拟合,fitlm
利用m估计建立估计方程,并用的方法求解迭代加权最小二乘法(irl)。
例子:“RobustOpts”,“安德鲁”
“VarNames”
- - - - - -变量的名字{x1, x2,…,‘xn’,‘y’}
(默认)|字符串数组|字符向量的单元格数组用逗号分隔的变量对指定的变量名,由“VarNames”
以及字符向量的字符串数组或单元格数组,其中包括的列的名称X
首先是响应变量的名称y
最后一次。
“VarNames”
不适用于表或数据集数组中的变量,因为这些变量已经有了名称。
变量名不必是有效的MATLAB标识符。但是,如果名称无效,则在适合或调整模型时不能使用公式;例如:
属性时,不能使用公式指定要添加或删除的术语addTerms
函数或removeTerms
函数,分别。
属性时,不能使用公式来指定模型的上下限一步
或stepwiselm
函数的名称-值对参数“低”
和“上”
, 分别。
在指定'VarNames',varNames
,可以验证变量名varNames
通过使用isvarname
函数。如果变量名无效,则可以使用matlab.lang.makeValidName
函数。
例子:VarNames,{“马力”,“加速”,“Model_Year”,“英里”}
数据类型:字符串
|细胞
'重量'
- - - - - -观察权重的(n, 1)
(默认)|n非负标量值的-乘1向量观察权重,指定为逗号分隔的一对组成的'重量'
和一个n-by-1的非负标量值,其中的矢量n是观测值的数量。
数据类型:单
|双
mdl
——线性模型linearmodel.
对象表示对数据响应的最小二乘拟合的线性模型,返回为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 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
.
威尔金森符号描述的条款提出的模型。符号涉及的术语呈现在一个模型中,而不是那些术语的乘数(系数)。
威尔金森表示法使用这些符号:
+
方法包括下一个变量。
- - - - - -
表示不包含下一个变量。
:
定义一个交互,它是术语的产物。
*
定义交互作用和所有低阶项。
^
将预测器提升到一个指数,就像*
重复,所以^
也包括低阶项。
()
组条件。
该表显示了威尔金森表示法的典型例子。
威尔金森符号 | 在条款标准符号 |
---|---|
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。残差
返回模型的原始、Pearson、Studentized和标准化残值的表。
在训练模型之后,您可以生成C/ c++代码来预测对新数据的响应。生成C/ c++代码需要Matlab Coder™.有关详细信息,请参阅代码生成简介.
主要的拟合算法是QR分解。对健壮的拟合,fitlm
利用m估计建立估计方程,并用的方法求解迭代加权最小二乘法(irl)。
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研讨会上的接口程序.弗吉尼亚州亚历山大市:美国统计协会,1989年。
荷兰,P. W.和R. E.韦尔什。“使用迭代加权最小二乘的稳健回归”统计学通讯:理论与方法,A6, 1977,第813-827页。
Huber, P. J。健壮的统计数据.霍博肯,新泽西州:约翰威利父子公司,1981。
[4]街,J. O.,R. J.卡罗尔,和D. Ruppert的。“在计算稳健回归的注通过迭代重加权最小二乘估计。”美国统计学家.第42卷,1988年,152-154页。
对于内存不足的数据,这个函数万博1manbetx支持高数组,但有一些限制。
如果有任何输入参数fitlm
是一个高数组,那么所有其他输入也必须是高数组。属性提供的非空变量'重量'
和'排除'
名称-值对。
的“RobustOpts”
高数组不支持名称-值对。万博1manbetx
对于高数据,fitlm
返回一个CompactLinearModel
对象,该对象包含与linearmodel.
对象。主要的区别是紧凑对象对内存需求很敏感。compact对象不包含包含数据或包含与数据大小相同的数组的属性。compact对象不包含这些linearmodel.
属性:
诊断
安装
ObservationInfo
ObservationNames
残差
步骤
变量
可以直接从返回的compact对象中计算残差LM = fitlm (X, Y)
使用
RES = Y - predict(LM,X);S = LM.RMSE;直方图(RES linspace (3 * S, 3 *年代,51))
如果CompactLinearModel
对象缺少包含分类因素的低阶项:
的plotEffects
和plotInteraction
不支持方法。万博1manbetx
的方差分析
方法与“组件”
不支持的选项。万博1manbetx
有关更多信息,请参见用于内存不足数据的高数组.
此功能完全支持GPU阵列。万博1manbetx有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。