拟合线性回归模型

您所在的位置:网站首页 matlab绘制三个变量拟合函数的方法 拟合线性回归模型

拟合线性回归模型

#拟合线性回归模型| 来源: 网络整理| 查看: 265

具有分类预测变量的模型

加载 carsmall 数据集,并创建 MPG 的线性回归模型作为 Model_Year 的函数。要将数值向量 Model_Year 视为分类变量,请使用 'CategoricalVars' 名称-值对组参数标识预测变量。

load carsmall mdl = fitlm(Model_Year,MPG,'CategoricalVars',1,'VarNames',{'Model_Year','MPG'})mdl = Linear regression model: 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 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 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 对应于

MPG=β0+β1ΙYear=76+β2ΙYear=82+ϵ,

其中,ΙYear=76 和 ΙYear=82 是指示变量,如果 Model_Year 的值分别为 76 和 82,则其值为 1。Model_Year 变量包含三个不同值,您可以使用 unique 函数来进行检查。

unique(Model_Year)ans = 3×1 70 76 82

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

具有全指示变量的模型

您可以将 mdl 的模型公式解释为一个具有三个指示变量而没有截距项的模型:

y=β0Ιx1=70+(β0+β1)Ιx1=76+(β0+β2)Ιx2=82+ϵ.

您也可以通过手动创建指示变量并指定模型公式,创建包含三个指示变量而没有截距项的模型。

temp_Year = dummyvar(categorical(Model_Year)); Model_Year_70 = temp_Year(:,1); Model_Year_76 = temp_Year(:,2); Model_Year_82 = temp_Year(:,3); tbl = table(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 = Linear regression model: 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 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56

选择模型中的参考水平

您可以通过修改分类变量中类别的顺序来选择参考水平。首先,创建一个分类变量 Year。

Year = categorical(Model_Year);

使用 categories 函数检查类别的顺序。

categories(Year)ans = 3x1 cell {'70'} {'76'} {'82'}

如果您使用 Year 作为预测变量,则 fitlm 选择第一个类别 '70' 作为参考水平。使用 reordercats 函数对 Year 重新排序。

Year_reordered = reordercats(Year,{'76','70','82'}); categories(Year_reordered)ans = 3x1 cell {'76'} {'70'} {'82'}

Year_reordered 的第一个类别是 '76'。创建 MPG 为 Year_reordered 的函数的线性回归模型。

mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})mdl2 = Linear regression model: 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 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56 R-squared: 0.531, Adjusted R-Squared: 0.521 F-statistic vs. constant model: 51.6, p-value = 1.07e-15

mdl2 使用 '76' 作为参考水平,并包括两个指示变量 ΙYear=70 和 ΙYear=82。

计算分类预测变量

mdl2 的模型显示包括每个项的 p 值,以检验对应的系数是否等于零。每个 p 值检查每个指示变量。要将分类变量 Model_Year 作为一组指示变量进行检查,请使用 anova。使用 'components'(默认值)选项返回成分 ANOVA 表,该表包含模型中除常数项之外的每个变量的 ANOVA 统计量。

anova(mdl2,'components')ans=2×5 table SumSq DF MeanSq F pValue ______ __ ______ _____ __________ Model_Year 3190.1 2 1595.1 51.56 1.0694e-15 Error 2815.2 91 30.936

成分 ANOVA 表包括 Model_Year 变量的 p 值,该值小于指示变量的 p 值。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3