主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。

선형 회귀

데이터준비하기

회귀피팅을시작하려면피팅함수에필한형식으로데이터를준비해야합니다。모든회귀기법은배열X의입력데이터와별도의벡터y의응답변수데이터로시작하거나,테이블또는数据集형배열资源描述의입력데이터와资源描述에열로포함된응답변수데이터로시작합니다。입력데이터의각행은하나의관측값을나타냅니다。각열은하나의예측변수를나타냅니다。

테이블또는dataset형배열资源描述에대해서는다음과같이“ResponseVar”이름-값쌍을사용하여응답변수를나타냅니다。

MDL = fitlm(tbl,“ResponseVar”“血压”);

응답변수는기본적으로마지막열입니다。

숫자로 된범주형예측변수를사용할수있습니다。범주형예측변수는취할수있는값이몇가지로고정되어있는변수입니다。

  • 숫자형배열X에대해서는“分类”이름-값쌍을사용하여범주형예측변수를나타냅니다。예를들어,6개예측변수중에서예측변수23.이범주형임을나타내려면다음과같이하십시오。

    mdl = fitlm(X,y,“分类”[2、3]);%或同等金额mdl = fitlm(X,y,“分类”,逻辑([0 1 1 0 0 0]));
  • 테이블또는dataset형배열资源描述에대해피팅함수는다음데이터형이범주형이라고가정합니다。

    • 논리형벡터

    • 分类형벡터

    • 문자형배열

    • 字符串형배열

    숫자형예측변수가범주형임을나타내려는경우“分类”이름-값쌍을사용하십시오。

누락된숫자형데이터는으로나타냅니다。누락된다른데이터형의데이터를나타내려면누락된그룹값항목을참조하십시오。

입력데이터와응답변수데이터에dataset형배열사용

Excel®스프레드시트에서dataset형배열을생성하려면다음과같이하십시오。

Ds = dataset(“XLSFile”“hospital.xls”...“ReadObsNames”,真正的);

작업공간변수에서dataset형배열을생성하려면다음과같이하십시오。

负载carsmallds = dataset(MPG,Weight);ds。Year = categorical(Model_Year);

입력데이터와응답변수데이터에테이블사용

Excel스프레드시트에서테이블을생성하려면다음과같이하십시오。

可读的(“hospital.xls”...“ReadRowNames”,真正的);

작업공간변수에서테이블을생성하려면다음과같이하십시오。

负载carsmalltbl = table(MPG,Weight);资源描述。Year = categorical(Model_Year);

입력데이터에숫자형행렬,응답변수데이터에숫자형벡터사용

예를들어,작업공간변수에서숫자형배열을생성하려면다음과같이하십시오。

负载carsmallX =[重量马力气缸型号_year];y = MPG;

Excel스프레드시트에서숫자형배열을생성하려면다음과같이하십시오。

[X, Xnames] = xlsread(“hospital.xls”);y = X(:,4);%反应y是收缩压X(:,4) = [];%从X矩阵中移除y

와같이숫자형이아닌항목은X에나타나지않습니다。

피팅방법선택하기

모델을데이터에피팅하는방법으로는다음과같이세가지가있습니다。

최소제곱피팅

fitlm을사용하여데이터에대한모델의최소제곱피팅을생성할수있습니다。이방법은모델의형식을확실히알고있으며주로모델의모수를찾아야하는경우가장적합합니다。이방법은몇가지모델을탐색하려는경우에도유용합니다。몇가지도움이되는기법이있기는해도이방법에서는수동으로데이터를검토하여이상값을삭제해야합니다(품질을검토하고피팅된모델조정하기항목참조)。

로버스트피팅

RobustOpts이름-값쌍과함께fitlm을사용하여이상값의향을거의받지않는모델을생성할수있습니다。로버스트피팅은이상값을수동으로삭제해야하는문제를없애줍니다。그러나一步은로버스트피팅과함께동작하지않습니다。즉,로버스트피팅을사용하는경우적합한모델에대한단계적탐색을수행할수없습니다。

단계적피팅

stepwiselm을사용하여모델을찾고모수를모델에피팅할수있습니다。stepwiselm은상수모델과같은특정모델에서시작되며,더이상향상되지않을때까지최대일치(贪婪的)방식으로매번최적의항을선택하여한번에하나씩항을추가하거나뺍니다。단계적피팅을사용하여관련있는항만갖는적합한모델을찾을수있습니다。

결과는시작하는모델에따라달라집니다。일반적으로,상수모델로시작하면작은모델이생성됩니다。더많은항으로시작하면더복잡하지만평균제곱오차가더작은모델이생성될수있습니다。比较大的和小的逐步模型항목을참조하십시오。

로버스트옵션은단계적피팅과함께사용할수없습니다。따라서단계적피팅을수행한후모델에이상값이있는지검토하십시오(품질을검토하고피팅된모델조정하기항목참조)。

특정모델또는모델범위선택하기

선형회귀모델을지정하는방법으로는여러가지가있습니다。가장간편한방법을사용하십시오。

fitlm의경우,지정하는모델사양이바로피팅모델이됩니다。모델사양을지정하지않을경우디폴트값은“线性”입니다。

stepwiselm의경우,지정하는모델사양이시작모델이됩니다。여기서단계적절차를거쳐향상을시도합니다。모델사양을지정하지않을경우디폴트시작모델은“不变”이며,디폴트상한모델은“互动”입니다。이름-값쌍을사용하여상한모델을변경할수있습니다。

참고

모델을선택할수있는다른방법도있습니다(예:套索lassoglmsequentialfs또는plsregress사용)。

간략한이름

이름 모델 유형
“不变” 모델에하나의상수(절편)항만있습니다。
“线性” 각예측변수에대해모델에하나의절편항과여러일차항이있습니다。
“互动” 모델에하나의절편항,여러일차항,서로다른예측변수쌍의모든곱(즉,제곱항제외)이있습니다。
“purequadratic” 모델에하나의절편항과여러일차항및제곱항이있습니다。
“二次” 모델에하나의절편항과여러일차항,상호작용,제곱항이있습니다。
“聚ijk 모델이첫번째예측변수에차수까지의모든항을포함하고두번째예측변수에차수j까지의모든항을포함하는식으로진행되는다항식입니다。숫자0부터9까지사용하십시오。예를들어,“poly2111”은상수항과모든일차항및곱셈항을가지며,예측변수1의제곱항도포함합니다。

예를들어,행렬예측변수와함께fitlm을사용하여상호작용모델을지정하려면다음과같이하십시오。

mdl = fitlm(X,y,“互动”);

stepwiselm과예측변수로구성된테이블또는dataset형배열资源描述을사용하여모델을지정하려하며,이때상수모델에서시작하고상한을선형모델로둔다고가정해보겠습니다。资源描述에서응답변수가세번째열에있다고간주합니다。

Mdl2 = stepwism (tbl,“不变”...“上”“线性”“ResponseVar”3);

항 행렬

항 행렬T는모델의항을지정하는t×(p + 1)행렬입니다。여기서t는항개수이고,p는예측변수개수이며,+1은응답변수에해당합니다。T (i, j)의 값은 항에포함된변수j의지수입니다。

예를들어,3개의예측변수x1x2x3과응답변수yx1x2x3y의순서로포함하는입력값이있다고가정하겠습니다。T의각행은하나의항을나타냅니다。

  • [0 0 0 0]-상수항또는절편

  • [0 1 0 0]- - - - - -x2또는X1 ^0 * x2^1 * x3^0

  • [1 0 10 0]- - - - - -x1 * x3

  • [2 0 0 0]- - - - - -x1 ^ 2

  • [0 1 2 0]- - - - - -x2 * (x3 ^ 2)

각항의끝에있는0은응답변수를나타냅니다。일반적으로항행렬에서0으로구성된열벡터는응답변수의위치를나타냅니다。행렬과열벡터로예측변수와응답변수를지정하는경우각행의마지막열에응답변수를나타내는0을포함시켜야합니다。

공식

모델사양의식은다음형식의문자형벡터또는字符串형스칼라입니다。

y条款

  • y는응답변수이름입니다。

  • 条款는다음을포함합니다。

    • 변수 이름

    • +(다음변수를포함함)

    • -(다음변수를제외함)

    • (상호작용,즉항의곱을정의함)

    • (상호작용과모든낮은차수항을정의함)

    • (예측변수를거듭제곱함,이는를반복하는것과동일함,따라서은낮은차수항도포함함)

    • ()(항을그룹화함)

공식에는기본적으로상수항(절편)이포함되어있습니다。모델에서상수항을제외하려면공식에-1을포함시키십시오。

예제:

'y ~ x1 + x2 + x3'는변수가3개이며절편이있는선형모델입니다。
'y ~ x1 + x2 + x3 - 1'은변수가3개이며절편이없는선형모델입니다。
'y ~ x1 + x2 + x3 + x2^2'은변수가3개이며절편과x2 ^ 2항이있는모델입니다。
'y ~ x1 + x2^2 + x3'는앞의예제와동일합니다。x2 ^ 2x2항을포함하기때문입니다。
'y ~ x1 + x2 + x3 + x1:x2'x1 * x2항을포함합니다。
'y ~ x1*x2 + x3'는앞의예제와동일합니다。X1 *x2 = X1 + x2 + X1:x2이기때문입니다。
'y ~ x1*x2*x3 - x1:x2:x3'는삼원상호작용을제외한x1x2x3간의모든상호작용을가집니다。
'y ~ x1*(x2 + x3 + x4)'는모든일차항과함께x1과다른변수각각에대한곱을가집니다。

예를들어,행렬예측변수와함께fitlm을사용하여상호작용모델을지정하려면다음과같이하십시오。

mdl = fitlm(X,y,'y ~ x1*x2*x3 - x1:x2:x3');

stepwiselm과예측변수로구성된테이블또는dataset형배열资源描述을사용하여모델을지정하려하며,이때상수모델에서시작하고상한을선형모델로둔다고가정해보겠습니다。资源描述의응답변수가“y”로명명되고예측변수가x1的“x2”“x3”으로명명되었다고가정합니다。

Mdl2 = stepwism (tbl,'y ~ 1'“上”'y ~ x1 + x2 + x3');

모델을데이터에피팅하기

피팅에사용할수있는가장일반적선택적수는다음과같습니다。

  • fitlm에서로버스트회귀를설정하려는경우“RobustOpts”이름-값쌍을“上”으로설정합니다。

  • stepwiselm에서적절한상한모델을지정합니다(예:“上”“线性”로설정)。

  • “CategoricalVars”이름-값쌍을사용하여범주형通讯录변수를나타냅니다。열번호로구성된벡터를제공합니다(예:예측변수16이범주형임을지정하려면(1 - 6)제공)。또는,해당변수가범주형임을나타내는1소를사용하여데이터열의개수와길이가같은논리형벡터를제공합니다。7개의예측변수가있고예측변수16이범주형경우逻辑([1,0,0,0,0,1,0])을지정합니다。

  • 테이블또는dataset형배열경우“ResponseVar”이름-값쌍을사용하여응답변수를지정합니다。디폴트값은배열의마지막열입니다。

예를들면다음과같습니다。

mdl = fitlm(X,y,“线性”...“RobustOpts”“上”“CategoricalVars”3);Mdl2 = stepwism (tbl,“不变”...“ResponseVar”“英里”“上”“二次”);

품질을검토하고피팅된모델조정하기

모델을피팅한후결과를검토하고조정합니다。

모델通讯录시

선형회귀모델은모델이름을입력하거나disp (mdl)을입력하는경우여러진단을@ @시합니다。이표시는피팅된모델이데이터를적절히나타내는지여부를확인할수있는기본적인정보몇가지를제공합니다。

예를들어5개예측변수중2개가없고절편항이없는상태로생성된데이터에선형모델을피팅해보겠습니다。

X = randn(100,5);y = X*[1;0;3;0;-1] + randn(100,1);mdl = fitlm(X,y)
mdl =线性回归模型:y ~ 1 + x1 + x2 + x3 + x4 + x5估计系数:估计SE tStat pValue _________ ________ ________ __________(截距)0.038164 0.099458 0.38372 0.70205 x1 0.92794 0.087307 10.628 8.5494e-18 x2 -0.075593 0.10044 -0.75264 0.45355 x3 2.8965 0.099879 29 1.1117e-48 x4 0.045311 0.10832 0.41831 0.67667 x5 -0.99708 0.11799 -8.4504 3.593e-13观测数:100,误差自由度:94均方根误差:0.972 r平方:0.93,调整后的r平方:0.926 f统计量vs常数模型:248,p值= 1.5e-52

이경우다음과같은결과가생성됩니다。

  • 估计열에각계수에대해추정된값이@ @시됩니다。이러한값은실제값[0, 1, 0; 3, 0, 1]에상당히가깝습니다。

  • 계수추정값에대한@ @준오차열이있습니다。

  • 예측변수1,3,5에대해보고된pValue(정규오차가정에따라t통계량(tStat)에서도출됨)가매우작습니다。이3개의예측변수가응답변수데이터y를생성하는데사용되었습니다。

  • (拦截)x2x4pValue가0.01보다훨씬더큽니다。이3개의예측변수가응답변수데이터y를생성하는데사용되지않았습니다。

  • R 2 ,수정된 R 2 F통계량이@ @시됩니다。

분산분석(方差分析)

피팅된모델의품질을검토하려면분산분석@ @를참조하십시오。예를들어,5개예측변수를갖는선형모델에方差分析를사용해보겠습니다。

TBL =方差(mdl)
台=6×5表SumSq DF MeanSq F pValue _________ _______ _______ __________ x1 106.62 1 106.62 112.96 8.5494e-18 x2 0.53464 1 0.53464 0.56646 0.45355 x3 793.74 1 793.74 840.98 1.1117e-48 x4 0.16515 1 0.16515 0.17498 0.67667 x5 67.398 1 67.398 71.41 3.593e-13 Error 88.719 94 0.94382

이테이블은모델@ @시화면과다소다른결과를제공합니다。이테이블은x2x4의효과가유의미하지않다는것을명확히보여줍니다。목@ @에따라모델에서x2x4를제거해보십시오。

진단 플롯

진단플롯은이상값을식별하고모델또는피팅에존재하는다른문제를살펴보는데도움이됩니다。예를들어,carsmall데이터를불러오고英里/加仑모델을气缸(범주형)와重量에대한함수로만들어보겠습니다。

负载carsmalltbl = table(重量,MPG,气缸);资源描述。圆柱=分类(tb .Cylinders);MDL = fitlm(tbl,'MPG ~气缸*重量+重量^2');

데이터와모델에대한지렛대값플롯을생성합니다。

plotDiagnostics (mdl)

图中包含一个轴对象。标题为Case order plot的axis对象包含2个类型为line的对象。这些对象代表杠杆,参考线。

높은지렛대값을갖는몇개의점이있습니다。그러나,이플롯은높은지렛대값을갖는점이이상값지여부를시하지않습니다。

쿡의거리(库克距离)가큰점을찾습니다。

plotDiagnostics (mdl“cookd”

图中包含一个轴对象。Cook’s distance Case order plot的坐标轴对象包含2个类型为line的对象。这些物体代表库克的距离,参考线。

쿡의거리가큰점이하나있습니다。이점을식별한후모델에서제거합니다。데이터커서를사용하여이상값을클릭해이를식별하거나다음과같이프로그래밍방식으로이를식별할수있습니다。

[~,larg] = max(mdl.Diagnostics.CooksDistance);Mdl2 = fitlm(tbl,'MPG ~气缸*重量+重量^2'“排除”, larg);

잔차-훈련데이터에대한모델품질

모델이나데이터에서오차,이상값또는상관관계를파악하는데도움이되는잔차플롯이여러개있습니다。가장단순한잔차플롯은잔차범위와빈도를보여주는디폴트히스토그램플롯과,잔차의분포가분산이일치하는정규분포와어떻게비교되는지를보여주는확률플롯입니다。

다음과같이잔차를검토합니다。

plotResiduals (mdl)

图中包含一个轴对象。带有残差直方图标题的axes对象包含一个patch类型的对象。

12보다큰관측값이잠재적이상값입니다。

plotResiduals (mdl“概率”

图中包含一个轴对象。标题为残差正态概率图的坐标轴对象包含2个类型为直线的对象。

이플롯에도두개의잠재적이상값이보입니다。그외에는,확률플롯이거의직선처럼보입니다。즉,정규분포된잔차에대한적절한피팅이라고할수있습니다。

다음과같이이두개의이상값을식별하여데이터에서제거할수있습니다。

outl = find(mll .残差。12)
outl =2×190 97

이상값을제거하기위해排除이름-값쌍을사용합니다。

Mdl3 = fitlm(tbl,'MPG ~气缸*重量+重量^2'“排除”, outl);

Mdl2의잔차플롯을검토합니다。

plotResiduals (mdl3)

图中包含一个轴对象。带有残差直方图标题的axes对象包含一个patch类型的对象。

새잔차플롯은특별히눈에띄는문제없이상당히대칭적것처럼보입니다。그러나,잔차사이에일부계열상관이있을수있습니다。새플롯을생성하여이러한효과가존재하는지확합니다。

plotResiduals (mdl3“落后”

图中包含一个轴对象。带有残差与滞后残差图标题的坐标轴对象包含3个类型线的对象。

산점도플롯을보면다른두사분면보다오른쪽위사분면과왼쪽아래사분면에더많은십자표식이있습니다。이는잔차사이에양의계열상관이있음을나타냅니다。

또다른잠재적문제는큰관측값에대해잔차가큰경우에발생합니다。현재모델에이러한문제가있는지확합니다。

plotResiduals (mdl3“安装”

图中包含一个轴对象。标题为残差与拟合值的Plot的坐标轴对象包含2个类型为直线的对象。

피팅된값이클수록잔차가커지는경향이있습니다。아마도모델오차가측정값에비례할것입니다。

예측변수효과를파악할수있는플롯

이예제에서는이용가능한다양한플롯을사용하여각예측변수가회귀모델에미치는효과를파악하는방법을보여줍니다。

응답변수에대한슬라이스플롯을검토합니다。이플롯은각예측변수의효과를개별적으로@ @시합니다。

plotSlice (mdl)

图预测切片图包含2轴对象和uimenu、uicontrol类型的其他对象。Axes对象1包含5个line类型的对象。坐标轴对象2包含5个line类型的对象。

개별예측변수값을끌어서놓을수있습니다。이러한예측변수값은파란색세로파선으로@ @시되어있습니다。또한동시신뢰한계와비동시신뢰한계중에서선택할수도있습니다。이는빨간색곡선파선으로@ @시되어있습니다。

효과플롯을사용하여예측변수가응답변수에미치는효과를나타내는다른보기를표시합니다。

plotEffects (mdl)

图中包含一个轴对象。axis对象包含4个line类型的对象。

이 플롯은重量를약2500에서4732로변경하면英里/加仑가30(상부파란색원의위치)정도감소한다는것을보여줍니다。또한,기통개수를8에서4로변경하면英里/加仑가10(하부파란색원)정도상승한다는것도보여줍니다。파란색가로선은이러한예측값에대한신뢰구간을나타냅니다。예측값은한예측변수가변경될때다른예측변수에대한평균을구하는방식으로얻습니다。두예측변수간에상관관계가있는이러한경우에는결과를해석할때주의해야합니다。

한예측변수가변경될때다른예측변수에대한평균을구하는방법으로이에대한효과를확인하는대신,상호작용플롯에서결합상호작용을검토합니다。

plotInteraction (mdl“重量”“气缸”

图中包含一个轴对象。标题为Interaction of Weight and Cylinders的axis对象包含12个类型为line的对象。

상호작용플롯은한예측변수가고정된상태에서다른예측변수를변경할때이것이미치는효과를보여줍니다。이경우,이플롯은훨씬더많은정보를제공합니다。예를들어、여기서는상대적으로가벼운자동차(重量= 1795)에서기통수를줄이면주행거리가늘어나지만,상대적으로무거운자동차(重量= 4732)에서기통수를줄이면주행거리가줄어든다는것을보여줍니다。

이상호작용에대해더자세히살펴보려면예측값이포함된상호작용플롯을살펴보십시오。이플롯은한예측변수를고정된상태로유지하면서다른예측변수를변경하여이것이미치는효과를곡선으로플로팅합니다。고정된여러개수의기통에대한상호작용을살펴보십시오。

plotInteraction (mdl“气缸”“重量”“预测”

图中包含一个轴对象。标题为Interaction of Cylinders and Weight的axis对象包含4个类型为line的对象。这些物体分别代表圆柱体、4、6、8。

이제,고정된여러무게수준과의상호작용을살펴보십시오。

plotInteraction (mdl“重量”“气缸”“预测”

图中包含一个轴对象。标题为Interaction of Weight and Cylinders的axis对象包含4个类型为line的对象。这些对象代表Weight, 1795, 3263.5, 4732。

항효과를파악할수있는플롯

이예제에서는이용가능한다양한플롯을사용하여회귀모델에서각항의효과를파악하는방법을보여줍니다。

추가변수로体重^ 2을사용하여추가변수플롯을생성합니다。

plotAdded (mdl“体重^ 2”

图中包含一个轴对象。带有标题的axes对象为Weight^2添加变量plot,包含3个类型为line的对象。这些对象表示调整后的数据,Fit: y=-5.62168e-06*x, 95% conf. bounds。

이 플롯은体重^ 2英里/加仑를 모두体重^ 2이아닌다른항에피팅한결과를보여줍니다。plotAdded를사용하는이유는体重^ 2을추가하여모델에서추가로얻게되는개선사항이무엇지파악하기위해서입니다。이러한점들에대한직선피팅의계수는전체모델에서体重^ 2에대한계수입니다。体重^ 2예측변수는계수테이블시에서확할수있듯이유의성경계값(pValue< 0.05)을약간초과합니다。플롯에서도이를확할수있습니다。신뢰한계가가로선(상수y)을포함하지못하는것으로보이므로기울기가0 marketing모델은데이터와일치하지않습니다。

모델전체에대한추가변수플롯을생성합니다。

plotAdded (mdl)

图中包含一个轴对象。标题为“Added variable plot for whole model”的坐标轴对象包含3个类型为line的对象。这些对象表示调整后的数据,Fit: y=85.8376*x, 95% conf. bounds。

모델이전체적으로매우유의미하므로,신뢰한계내에가로선을포함하기는어렵습니다。직선의기울기는최적피팅방향으로놓여있는예측변수에대한피팅의기울기입니다。즉,계수벡터의노름(Norm)입니다。

모델변경하기

모델을변경하는방법으로는두가지가있습니다。

stepwiselm을사용하여모델을생성한경우,서로다른상부또는하부모델을지정하는경우에만一步을적용할수있습니다。RobustOpts를사용하여모델을피팅하는경우에는一步을적용할수없습니다。

carbig데이터에서가져온주행거리에대한선형모델을예로들어보겠습니다。

负载carbigtbl = table(加速度,排量,马力,重量,MPG);MDL = fitlm(tbl,“线性”“ResponseVar”“英里”
mdl =线性回归模型:MPG ~ 1 +加速度+位移+马力+重量估计系数:估计SE tStat pValue __________ __________ ________ __________(截距)45.251 2.456 18.424 7.0721e-55加速度-0.023148 0.1256 -0.1843 0.85388位移-0.0060009 0.0067093 -0.89441 0.37166马力-0.043608 0.016573 -2.6312 0.008849重量-0.0052805 0.00081085 -6.5123 2.3025e-10观测数:392,误差自由度:387均方根误差:4.25 r平方:0.707,调整r平方:0.704 f统计量vs常量模型:233,p值= 9.63e-102

최대10개스텝까지步骤을사용하여모델을개선해봅니다。

Mdl1 =步骤(mdl,“NSteps”, 10)
1.增加排量:马力,FStat = 87.4802, pValue = 7.05273e-19
mdl1 =线性回归模型:MPG ~ 1 +加速度+重量+排量*马力估计SE tStat pValue __________ __________ _______ __________(拦截)61.285 2.8052 21.847 1.8593e-69加速度-0.34401 0.11862 -2.9 0.0039445位移-0.081198 0.010071 -8.0623 9.5014e-15马力-0.24313 0.026068 -9.3265 8.6556e-19重量-0.0014367 0.00084041 -1.7095 0.088166位移:马力0.00054236 5.7987e-05 9.3531 7.0527e-19观测数量:392,误差自由度:386均方根误差:3.84 r平方:0.761,调整r平方:0.758 f统计量vs常数模型:246,p值= 1.32e-117

단한번의변경후에一步이중지됩니다。

모델을단순화하기위해mdl1에서加速度항과重量항을제거합니다。

mdl2 = removeTerms(mdl1,“加速度+重量”
mdl2 =线性回归模型:MPG ~ 1 +排量*马力估计系数:估计SE tStat pValue __________ _________ _______ ___________(截距)53.051 1.526 34.765 3.0201e-121排量-0.098046 0.0066817 -14.674 4.3203e-39马力-0.23434 0.019593 -11.96 2.8024e-28排量:马力0.00058278 5.193e-05 11.222 1.6816e-25观测数:392,误差自由度:388均方根误差:3.94 r平方:0.747,调整后r平方:0.745 f统计量vs常数模型:381,p值= 3e-115

mdl2位移马力만사용하며,调整后的平方메트릭의mdl1만큼데이터에거의적합한피팅을가집니다。

새데이터에대한응답변수를예측하거나시뮬레이션하기

LinearModel객체는새데이터에대한응답변수를예측하거나시뮬레이션하는세가지함수(预测函数宏指令随机)를제공합니다。

预测

预测함수를사용하여예측하고예측값에대한신뢰구간을구합니다。

carbig데이터를불러오고加速度位移马力重量예측변수에대한응답변수英里/加仑의디폴트선형모델을만듭니다。

负载carbigX =[加速度,排水量,马力,重量];mdl = fitlm(X,MPG);

최솟값,평균값,최댓값에서예측변수로구성된3행배열을생성합니다X에는값이몇개포함되어있으므로的意思是함수에대해“omitnan”옵션을지정하십시오。最小值함수와马克斯함수는기본적으로계산에서값을제외합니다。

Xnew = [min(X);mean(X,“omitnan”)、马克斯(X)];

모델응답변수의예측값과이예측값에대한신뢰구간을구합니다。

[NewMPG, NewMPGCI] = predict(mdl,Xnew)
NewMPG =3×134.1345 23.4078 4.7751
NewMPGCI =3×231.6115 36.6575 22.9859 23.8298 0.6134 8.9367

평균응답변수의신뢰한계가최소응답변수또는최대응답변수의신뢰한계보다좁습니다。

函数宏指令

函数宏指令함수를사용하여응답변수를예측합니다。테이블또는数据集형배열에서모델을생성하는경우,函数宏指令预测보다응답변수를예측하는데더편리한경우가많습니다。새예측변수데이터가생겼을때테이블이나행렬을만들지않고函数宏指令로전달할수있습니다。그러나,函数宏指令은신뢰한계를제공하지않습니다。

carbig데이터세트를불러오고예측변수加速度位移马力重量에대한응답변수英里/加仑의디폴트선형모델을만듭니다。

负载carbigtbl = table(加速度,排量,马力,重量,MPG);MDL = fitlm(tbl,“线性”“ResponseVar”“英里”);

예측변수의평균값에대한모델응답변수를예측합니다。

NewMPG = feval(mdl,mean(加速度,“omitnan”),意味着(位移,“omitnan”),意味着(马力,“omitnan”),意思是(重量,“omitnan”))
NewMPG = 23.4078

随机

随机함수를사용하여응답변수를시뮬레이션합니다。随机함수는새랜덤응답변수값을시뮬레이션합니다。이값은평균예측값에훈련데이터와동일한분산을갖는확률교란을더한값과같습니다。

carbig데이터를불러오고加速度位移马力重量예측변수에대한응답변수英里/加仑의디폴트선형모델을만듭니다。

负载carbigX =[加速度,排水量,马力,重量];mdl = fitlm(X,MPG);

최솟값,평균값,최댓값에서예측변수로구성된3행배열을생성합니다

Xnew = [min(X);mean(X,“omitnan”)、马克斯(X)];

어느정도의임의성을포함하는예측된새모델응답변수를생성합니다。

rng (“默认”再现率%NewMPG = random(mdl,Xnew)
NewMPG =3×136.4178 31.1958 -4.8176

英里/加仑의음수값은합당하지않아보이므로두번더예측을시도합니다。

NewMPG = random(mdl,Xnew)
NewMPG =3×137.7959 24.7615 -0.7783
NewMPG = random(mdl,Xnew)
NewMPG =3×132.2931 24.8628 19.9715

확실히,Xnew의세번째(최댓값)행에대한예측은신뢰할수없습니다。

피팅된모델공유하기

아래의mdl과같은선형회귀모델이있다고가정하겠습니다。

负载carbigtbl = table(加速度,排量,马力,重量,MPG);MDL = fitlm(tbl,“线性”“ResponseVar”“英里”);

다음과같은방법으로이모델을다른사람들과공유할수있습니다。

  • 모델의정보를@ @시합니다。

mdl
mdl =线性回归模型:MPG ~ 1 +加速度+位移+马力+重量估计系数:估计SE tStat pValue __________ __________ ________ __________(截距)45.251 2.456 18.424 7.0721e-55加速度-0.023148 0.1256 -0.1843 0.85388位移-0.0060009 0.0067093 -0.89441 0.37166马力-0.043608 0.016573 -2.6312 0.008849重量-0.0052805 0.00081085 -6.5123 2.3025e-10观测数:392,误差自由度:387均方根误差:4.25 r平方:0.707,调整r平方:0.704 f统计量vs常量模型:233,p值= 9.63e-102
  • 모델정의와계수를제공합니다。

mdl。Formula
ans = MPG ~ 1 +加速度+排水量+马力+重量
mdl。CoefficientNames
ans =1 x5单元格第1至4列{'(截距)'}{'加速度'}{'位移'}{'马力'}第5列{'重量'}
mdl.Coefficients.Estimate
ans =5×145.2511 -0.0231 -0.0060 -0.0436 -0.0053

참고 항목

|||||||

관련 항목