主要内容

线性回归的工作流

这个例子展示了如何适应一个线性回归模型。典型的工作流涉及以下:导入数据,适合回归,测试它的质量,修改它提高质量,并分享它。

步骤1。导入数据到表中。

hospital.xls是一个Excel®电子表格包含病人姓名、性别、年龄、体重、血压、治疗和日期在一个实验性的协议。第一次读到的数据表。

病人= readtable (“hospital.xls”,“ReadRowNames”,真正的);

检查数据的五行。

患者(1:5,:)
ans =5×11表姓名性别年龄重量烟sys dia trial1 trial2 trial3 trial4 _______ ___ ____ ____ ___ ____ ____交交ypl - 320{“史密斯”}{“m”} 38 176 1 124 93 -99 -99 -99 gli - 532{“约翰逊”}{“m”} 43 163 0 109 77 -99年11日13日22句- 258{威廉姆斯的}{' f '} 38 131 0 125 83 -99 -99 -99 -99 mij - 579{“琼斯”}{' f '} -99 -99 133 0 117 75 6 12 xlk - 030{“棕色”}{' f '} 49 14 23 119 0 122 80 -99 -99

每个领域似乎有两个选择。所以这些字段更改为分类。

病人。烟= categorical(patients.smoke,0:1,{“不”,“是的”});病人。性= categorical(patients.sex);

步骤2。创建一个模型。

你的目标是模型的收缩压作为功能患者的年龄、体重、性别、和吸烟状况。创建一个线性公式“sys”的函数“年龄”,“重量”,“性”,“烟”

modelspec =“sys ~年龄+重量+性别+烟';modelspec mdl = fitlm(病人)
mdl =线性回归模型:sys ~ 1 +性别+年龄+重量+烟雾估计系数:估计SE tStat pValue _____说__________(拦截)118.28 7.6291 15.504 9.1557即使sex_m年龄0.88162 2.9473 0.29913 0.76549 0.08602 0.06731 1.278 0.20438 smoke_Yes重量-0.016685 0.055714 -0.29947 0.76524 9.884 1.0406 9.498 1.9546 e15汽油数量的观察:100年,错误自由度:95根均方误差:4.81平方:0.508,调整平方:0.487 f统计量与常数模型:24.5,p = 5.99 e-14

性别、年龄和体重预测相当高 p 值,这表明这些预测可能是不必要的。

步骤3。定位和删除离群值。

看看是否有异常值应排除在合适的数据。绘制残差。

plotResiduals (mdl)

图包含一个坐标轴对象。坐标轴对象与标题残差的柱状图包含一个补丁类型的对象。

有一个可能的例外,一个值大于12。这可能不是真正的局外人。出于演示,如何找到并删除它。

发现异常。

离群值= mdl.Residuals。生> 12;找到(例外)
ans = 84

删除离群值。

mdl = fitlm(患者、modelspec“排除”,84);:mdl.ObservationInfo (84)
ans =1×4表权重排除失踪子集累积________ ________ wxm - 486 1真的假的假的

观察84年不再是在模型中。

步骤4。简化模型。

试图获得一个简单的模型,用更少的预测但同样的预测精度。一步寻找一个更好的模型,添加或删除一个学期。允许一步需要10个步骤。

mdl1 =步骤(mdl,“NSteps”,10)
1。删除重量、FStat = 4.6001 e-05 pValue = 0.9946 - 2。消除性别,FStat = 0.063241, pValue = 0.80199
mdl1 =线性回归模型:sys ~ 1 +年龄+烟雾估计系数:估计SE tStat pValue说______ __________(拦截)115.11 2.5364 45.383 1.1407 e - 66年龄smoke_Yes 0.09962 0.10782 0.064844 1.6628 10.054 0.97696 10.291 3.5276 e-17观测数量:99年,错误自由度:96根均方误差:4.61平方:0.536,调整平方:0.526 f统计量与常数模型:55.4,p = 1.02 e-16

一步采取两个步骤。这意味着它不能改善模型进一步通过添加或减去一个任期。

情节上的简单模型的训练数据的有效性。

plotResiduals (mdl1)

图包含一个坐标轴对象。坐标轴对象与标题残差的柱状图包含一个补丁类型的对象。

残差看起来一样小的原始模型。

第5步。预测对新数据的反应。

假设你有四个新的人,25岁,30岁,40岁,到65年,第一个和第三个烟。预测他们的收缩压使用mdl1

年龄= [25;30、40、65];吸烟者= {“是的”;“不”;“是的”;“不”};systolicnew =函数宏指令(mdl1、年龄、吸烟)
systolicnew =4×1127.8561 118.3412 129.4734 122.1149

进行预测,您只需要的变量mdl1用途。

步骤6。共享模型。

你可能会希望别人能够用你的预测模型。访问线性模型中的词汇。

coefnames = mdl1.CoefficientNames
coefnames =1 x3单元格{'(拦截)}{‘年龄’}{' smoke_Yes '}

视图的模型公式。

mdl1.Formula
ans = sys ~ 1 +年龄+烟

访问的系数。

.Estimate coefvals = mdl1.Coefficients (: 1)
coefvals =3×1115.1066 0.1078 10.0540

模型是sys = 115.1066 + 0.1078 *年龄+ 10.0540 *烟,在那里1一个吸烟者,0否则。

另请参阅

||||

相关的话题