主要内容

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

fitlm

선형회귀모델피팅하기

설명

예제

mdl= fitlm (资源描述은테이블또는dataset형배열资源描述의변수에피팅된선형회귀모델을반환합니다。기본적으로,fitlm은마지막변수를응답변수로받습니다。

예제

mdl= fitlm (Xy는데이터행렬X에피팅된응답변수y의선형회귀모델을반환합니다。

예제

mdl= fitlm (___modelspec은위에열거된구문대로입력수를조합하여모델사양을정의합니다。

예제

mdl= fitlm (___名称,值는하나이상의이름-값쌍의通讯录수를사용하여옵션을추가로지정합니다。예를들어,사용자는어떤변수가범주형변수인지지정하거나,로버스트회귀를수행하거나,관측값가중치를사용할수있습니다。

예제

모두 축소

행렬입력데이터세트를사용하여선형회귀모델을피팅합니다。

행렬입력데이터세트carsmall데이터세트를불러옵니다。

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

fitlm을사용하여선형회귀모델을피팅합니다。

mdl = fitlm(X,MPG)
mdl =线性回归模型:y ~ 1 + x1 + x2 + x3估计系数:估计SE tStat pValue __________ _________ _________ __________(截距)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统计量vs常数模型:90,p值= 7.38e-27

모델` ` ` `시화면에모델식,추정된계수및모델` ` ` ` ` ` `약통계량이포함됩니다。

시된모델식Y ~ 1 + x1 + x2 + x3 y β 0 + β 1 X 1 + β 2 X 2 + β 3. X 3. + ϵ 에해당합니다。

모델@ @시화면에系数속성에저장된,추정된계수정보도@시됩니다。系数속성을@ @시합니다。

mdl。系数
ans =4×4表估计SE tStat pValue __________ _________ _________ __________(拦截)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

系数속성은다음과같은열을포함합니다。

  • 估计-모델에서각각의대응되는항에대한계수추정값입니다。예를들어、상수항(拦截)에대한추정값은47.977입니다。

  • SE-계수의준오차입니다。

  • tStat——모델에주어진다른예측변수를상정한경우,'대응하는계수0이가아니다’는대립가설에대해”계수가0이다’는귀무가설을검정하는데사용된각계수에대한t-통계량입니다。참고로,tStat =估计/SE입니다。예를들어,절편에대한t-통계량은47.977/3.8785 = 12.37입니다。

  • pValue-대응하는계수가0 tmp지아니면0이아닌지를검정하는가설에대한t-통계량의p-값입니다。예를들어,x2에 대한t-통계량의p0.05 -값은보다크므로모델의다른항을고려할때이항은5%유의수준에서유의미하지않습니다。

모델의약통계량은다음과같습니다。

  • 观察次数- - - - - -값을포함하지않는행개수입니다。예를들어,X英里/加仑의행개수는100개데英里/加仑데이터벡터에값이6개있고马力데이터벡터에다른관측값에대한값이1개있기때문에观察次数는93입니다。

  • 误差自由度- - - - - -n- - - - - -p이며,여기서n은관측값의개수이고p는절편을포함하여모델에포함된계수의개수입니다。예를들어,이모델은4개의예측변수를가지므로误差自由度은93 - 4 = 89입니다。

  • 均方根误差—평균제곱오차의제곱근으로,오차분포의` ` `준편차를추정합니다。

  • 平方调整后的平方-각각결정계수와수정된결정계수를나타냅니다。예를들어,平方값은모델이응답변수英里/加仑의변동성의약75%를설명한다는것을나타냅니다。

  • f统计量与常数模型-회귀모델에대한F——검정의검정통계량으로,이모델이상수항만으로구성된퇴화모델보다훨씬더잘피팅되는지여부를검정합니다。

  • 假定值-모델에대한F-검정의p-값입니다。예를들어,이모델은p-값이7.3816e-27护栏경우유의미합니다。

모델속성(NumObservations教育部RMSERsquared)에서,그리고方差分析함수를사용하여이러한통계량을확할수있습니다。

方差分析(mdl“摘要”
ans =3×5表SumSq DF MeanSq F pValue ________ ______ ______ __________ Total 6004.8 92 65.269 Model 4516 3 1505.3 89.987 7.3816e-27 Residual 1488.8 89 16.728

본데이터를불러옵니다。

负载carsmall

테이블에변수를저장합니다。

tbl = table(重量,加速度,MPG,“VariableNames”, {“重量”“加速”“英里”});

테이블에서처음5개행을시합니다。

台(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(tbl,“MPG ~体重+加速”
lm =线性回归模型:MPG ~ 1 +权重+加速度估计系数:估计SE tStat pValue __________ __________ _______ __________(截距)45.155 3.4659 13.028 1.6266e-22权重-0.0082475 0.00059836 -13.783 5.3165e-24加速度0.19694 0.14743 1.3359 0.18493观测数:94,误差自由度:91均方根误差:4.12 r平方:0.743,调整r平方:0.738 f统计量vs常数模型:132,p值= 1.38e-27

이예제의모델“MPG ~体重+加速”은모델사양으로“线性”를설정하는것과동일합니다。예를들면다음과같습니다。

Lm2 = fitlm(tbl,“线性”);

모델사양으로문자형벡터를사용하고응답변수를지정하지않는경우fitlm资源描述의마지막변수를응답변수로받고나머지변수를예측변수로받습니다。

윌킨슨(Wilkinson)표기법으로지정된모델식을사용하여선형회귀모델을피팅합니다。

본데이터를불러옵니다。

负载carsmall

테이블에변수를저장합니다。

tbl = table(重量,加速度,车型年,MPG,“VariableNames”, {“重量”“加速”“Model_Year”“英里”});

가중치와가속도를예측변수로사용하여갤런당마일주행거리(MPG)에대한선형회귀모델을피팅합니다。

Lm = fitlm(tbl,“MPG ~体重+加速”
lm =线性回归模型:MPG ~ 1 +权重+加速度估计系数:估计SE tStat pValue __________ __________ _______ __________(截距)45.155 3.4659 13.028 1.6266e-22权重-0.0082475 0.00059836 -13.783 5.3165e-24加速度0.19694 0.14743 1.3359 0.18493观测数:94,误差自由度:91均方根误差:4.12 r平方:0.743,调整r平方:0.738 f统计量vs常数模型:132,p值= 1.38e-27

p-값이0.18493이라는것은加速度英里/加仑에유의미한향을미치지않는다는것을나타냅니다。

모델에서加速度을제거하고예측변수Model_Year를추가하여모델을향상시켜봅니다。먼저Model_Year를범주형변수로정의합니다。

资源描述。Model_Year = categorical(tbl.Model_Year);Lm = fitlm(tbl,“MPG ~ + Model_Year重量”
lm =线性回归模型:MPG ~ 1 +权值+ Model_Year估计系数:估计SE tStat pValue __________ __________ _______ __________(截距)40.11 1.5418 26.016 1.2024e-43权值-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平方:0.873,调整后r平方:0.868 f统计量vs常数模型:206, p-value = 3.83e-40

윌킨슨@ @기법을사용하여modelspec을지정하면설계행렬을변경할필없이모델을업데이트할수있습니다。fitlm은식에지정된변수만사용합니다。또한,범주형변수Model_Year에필한두개의시변수(가변수)도생성합니다。

항행렬을사용하여선형회귀모델을피팅합니다。

테이블입력값에대한항행렬

모델변수가테이블에있는경우항행렬에서0으로구성된열은응답변수의위치를나타냅니다。

医院데이터세트를불러옵니다。

负载医院

테이블에변수를저장합니다。

t = table(医院。性别,医院。血压(:,1),医院。年龄,医院。吸烟者,...“VariableNames”, {“性”“血压”“年龄”“抽烟”});

항행렬을사용하여선형모델“血压~ 1 +性别+年龄+吸烟者”를나타냅니다。응답변수가테이블의두번째열에있으므로항행렬의두번째열은응답변수를나타내는0으로구성된열이어야합니다。

T = [0 0 0 0;1 0 0 0;0 0 1 0;0 0 0 0 1]
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 ________ ________ ________ __________(截距)116.14 2.6107 44.485 7.1287e-66性别男性0.050106 0.98364 0.050939 0.95948年龄0.085276 0.066945 1.2738 0.2058吸烟者_1 9.87 1.0346 9.5395 1.4516e-15观察数:100,误差自由度:96均方根误差:4.78 r平方:0.507,校正r平方:0.492 f统计量vs常数模型:33, p-value = 9.91e-15

행렬입력값에대한항행렬

예측변수와응답변수가행렬과열벡터에있는경우항행렬의각행의끝에응답변수를나타내는0을포함시켜야합니다。

carsmall데이터세트를불러오고예측변수로구성된행렬을정의합니다。

负载carsmallX =[加速度,重量];

항행렬을사용하여모델'MPG ~加速度+重量+加速度:重量+重量^2'을지정합니다。이모델은변수加速度重量에대한주효과항및이원상호작용항,그리고변수重量에대한2차항을포함합니다。

T = [0 0 0;1 0 0;0 1 0;1 1 0;0 2 0]
T =5×30 0 0 1 0 0 0 1 1 0 0 2 0

선형모델을피팅합니다。

mdl2 = fitlm(X,MPG,T)
mdl2 =线性回归模型:y ~ 1 + x1*x2 + x2^2估计系数:估计SE tStat pValue ___________ __________ _______ __________(截距)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统计量vs常数模型:67,p值= 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估计系数:估计SE tStat pValue ________ ______ ______ __________(截距)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统计量vs常数模型:51.6,p值= 1.07e-15

시된모델식MPG ~ 1 + Model_Year는다음에해당합니다。

英里/加仑 β 0 + β 1 Ι 一年 76 + β 2 Ι 一年 82 + ϵ

여기서 Ι 一年 76 Ι 一年 82 Model_Year의값이각각76및82일때값이1芝加芝加市시변수입니다。Model_Year변수는3개의고유한값을포함하고있으며,이는独特的함수를사용해서확할수있습니다。

独特的(Model_Year)
ans =3×170 76 82

fitlmModel_Year에서가장작은값을기준레벨(“70”)로선택하고두개의@시변수 Ι 一年 76 Ι 一年 82 를생성합니다。모델이3개의표시변수(각레벨당1개)와1개의절편항을포함하는경우설계행렬이랭크부족이되므로모델은2개의표시변수만포함합니다。

전체@ @시변수를갖는모델

mdl의모델식을절편항이없고3개의시변수를갖는모델로해석할수있습니다。

y β 0 Ι x 1 70 + β 0 + β 1 Ι x 1 76 + β 0 + β 2 Ι x 2 82 + ϵ

또는표시변수를수동으로생성하고모델식을지정하여절편항이없고3개의표시변수를갖는모델을생성할수도있습니다。

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 =线性回归模型:MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82估计系数:估计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

모델에서기준레벨선택하기

범주형변수에서범주순서를수정하여기준레벨을선택할수있습니다。먼저범주형변수一年를만듭니다。

Year = categorical(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估计系数:估计SE tStat pValue ________ _______ _______ __________(截距)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统计量vs常数模型:51.6,p值= 1.07e-15

mdl2“76”을기준레벨로사용하고두개의@ @시변수 Ι 一年 70 Ι 一年 82 를포함합니다。

범주형예측변수평가하기

mdl2의모델시화면은대응되는계수가0지여부를검정하기위해각항의p-값을포함합니다。각p-값은각시변수를조사합니다。범주형변수Model_Year를@ @시변수의그룹으로조사하려면方差分析를사용하십시오。모델의상수항을제외한각변수에대해분산분석통계량을포함하는성분분산분석표를반환하도록“组件”(디폴트값)옵션을사용합니다。

方差分析(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-값을포함합니다。

선형회귀모델을@ @본데이터에피팅합니다。응답변수와예측변수를지정하고쌍별(成对)상호작용항만모델에포함시킵니다。

본데이터를불러옵니다。

负载医院

상호작용항이있는선형모델을데이터에피팅합니다。체중을응답변수로지정하고,성별,연령및흡연여부를예측변수로지정합니다。또한,성별과흡연여부가범주형변수임을지정합니다。

医院“互动”“ResponseVar”“重量”...“PredictorVars”, {“性”“年龄”“抽烟”},...“CategoricalVar”, {“性”“抽烟”})
mdl =线性回归模型:体重~ 1 +性别*年龄+性别*吸烟者+年龄*吸烟者估计系数:估计SE tStat pValue ________ _______ ________ __________(截数)118.7 7.0718 16.785 6.821e-30性别男性68.336 9.7153 7.0339 3.3386e-10年龄0.31068 0.18531 1.6765 0.096991吸烟者_1 3.0425 10.446 0.29127 0.77149性别男性:年龄-0.49094 0.24764 -1.9825 0.050377性别男性:吸烟者_1 0.9509 3.8031 0.25003 0.80312年龄:吸烟者_1 -0.07288 0.26275 -0.27737 0.78211观察数:100,误差自由度:93,均方根误差:8.75 r平方:0.898,调整r平方:0.892 f统计量vs常数模型:137,p值= 6.91e-44

5%유의수준에서환자의체중이연령,흡연여부또는환자의성별과이러한인자의상호작용에따라크게다르지않은것으로보입니다。

시멘트조성물이해당시멘트의경화열에미치는향을측정하는哈尔德데이터세트를불러옵니다。

负载哈尔德

이데이터세트는변수成分를포함합니다。행렬成分는시멘트에존재하는네가지화학성분의조성비율을포함합니다。벡터는각시멘트` ` ` ` `본에대해180 ` `일이지난후의경화열값을포함합니다。

데이터에로버스트선형회귀모델을피팅합니다。

配料,热量,“RobustOpts”“上”
mdl =线性回归模型(稳健拟合):y ~ 1 + x1 + x2 + x3 + x4估计系数:估计SE tStat pValue ________ _______ ________ ________(截距)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平方:0.969 f统计量vs常数模型:94.6, p-value = 9.003 -07

자세한내용은로버스트피팅의결과와@ @준최소제곱피팅의결과를비교하는使用稳健回归减少离群值效应항목을참조하십시오。

10겹교차검을사용하여회귀모델의평균절대오차를계산합니다。

carsmall데이터세트를불러옵니다。加速度변수 및位移변수를예측변수로지정하고重量변수를응답변수로지정합니다。

负载carsmallX1 =加速度;X2 =位移;y =重量;

사용자지정함수regf를생성합니다(이예제의끝부분에나와있음)。이함수는회귀모델을훈련데이터에피팅한다음검정세트에대해예측된차량무게를계산합니다。이함수는예측된차량무게값과실제값을비교한다음평균절대오차(MAE)와검정세트차량무게의범위로수정된美를계산합니다。

참고:이예제에라이브스크립트파일을사용하는경우,regf함수가파일의끝에이미포함되어있습니다。그렇지않은경우,m파일의끝에이함수를만들거나MATLAB®경로에이함수를파일로추가해야합니다。

기본적으로,crossval은10겹교차검을수행합니다。X1X2y데이터에서만든훈련세트와검정세트의10개분할각각에대해regf함수를이용해mae값과수정된mae값을계산합니다。美의평균과수정된美의평균을구합니다。

rng (“默认”%用于再现性values = 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를생성합니다。

函数errors = regf(X1train,X2train,ytrain,X1test,X2test,ytest) tbltrain = table(X1train,X2train,ytrain,...“VariableNames”, {“加速”“位移”“重量”});tbltest = table(X1test,X2test,ytest,...“VariableNames”, {“加速”“位移”“重量”});MDL = fitlm(tbltrain,“重量~加速度+位移”);Yfit = predict(mdl,tbltest);MAE =均值(abs(yfit-tbltest.Weight));adjMAE = MAE/range(tbltest.Weight);errors = [MAE adjMAE];结束

입력marketing수

모두 축소

예측변수와응답변수를포함하는입력데이터로,테이블또는数据集형배열로지정됩니다。예측변수는숫자형,논리형,直言형,문자또는字符串형일수있습니다。응답변수는숫자형이거나논리형이어야합니다。

  • 기본적으로,fitlm함수는마지막변수를응답변수로받고,나머지변수를예측변수로받습니다。

  • 다른열을응답변수로설정하려면ResponseVar이름-값쌍의通讯录수를사용하십시오。

  • 열중일부를예측변수로사용하려면PredictorVars이름-값쌍의通讯录수를사용하십시오。

  • 모델사양을정의하려면식이나항행렬을사용하여modelspec수를설정하십시오。이식이나항행렬이예측변수,응답변수로사용할열을지정합니다。

테이블의변수이름은유효한matlab®식별자일필는없습니다。그러나이름이유효하지않으면모델을피팅하거나조정할때식을사용할수없습니다。예를들면다음과같은상황에서식을사용할수없습니다。

  • 식을사용하여modelspec을지정할수없습니다。

  • addTerms함수 또는removeTerms함수를사용할때추가하거나제거할항을지정하기위해식을사용할수없습니다。

  • 一步함수 또는stepwiselm함수각각을이름-값쌍通讯录수“低”“上”와함께사용할때모델의하한과상한을지정하기위해식을사용할수없습니다。

isvarname함수를사용하여资源描述에포함된변수이름을확할수있습니다。변수이름이유효하지않으면matlab.lang.makeValidName함수를사용하여변수이름을변환할수있습니다。

예측변수로,n×p행렬로지정됩니다。여기서n은관측값개수이고p는예측변수개수입니다。X의각열은하나의변수를나타내고,각행은하나의관측값을나타냅니다。

기본적으로,명시적으로제거하지않는한모델에상수항이있으므로X에1로구성된열을포함시키지마십시오。

데이터형:|

응답변수로,n×1벡터로지정됩니다。여기서n은관측값개수입니다。y의각소는X의대응행에대한응답변수입니다。

데이터형:||逻辑

모델사양으로,다음값중하나로지정됩니다。

  • 모델을명명하는문자형벡터또는字符串형스칼라。

    모델 유형
    “不变” 모델에하나의상수(절편)항만있습니다。
    “线性” 모델에하나의절편항과각예측변수에대한일차항이있습니다。
    “互动” 모델에하나의절편항,각예측변수에대한일차항,서로다른예측변수쌍의모든곱(제곱항아님)이있습니다。
    “purequadratic” 모델에하나의절편항과각예측변수에대한일차항및제곱항이있습니다。
    “二次” 모델에하나의절편항,각예측변수에대한일차항및제곱항,서로다른예측변수쌍의모든곱이있습니다。
    “聚ijk 모델이첫번째예측변수에차수까지의모든항을포함하고두번째예측변수에차수j까지의모든항을포함하는식으로진행되는다항식입니다。숫자0부터9까지를사용하여각예측변수에대해최대차수를지정합니다。모델에상호작용항이있지만각상호작용항의차수가지정된차수의최댓값을초과하지않습니다。예를들어,“poly13”에는절편항과x1, x2, x22, x23., x1* x2, x1* x22항이있으며,여기서x1과x2는각각첫번째예측변수,두번째예측변수입니다。
  • 모델의항을지정하는t×(p + 1)행렬또는항 행렬.여기서t는항개수이고,p는예측변수개수이며,+1은응답변수에해당합니다。항행렬은예측변수개수가많고항을프로그래밍방식으로생성하려는경우에유용합니다。

  • 다음형식의공식을나타내는문자형벡터또는字符串형스칼라。

    “y ~项”

    여기서条款윌킨슨@ @기법으로지정됩니다。이식에포함된변수이름은资源描述의변수이름또는Varnames로지정된변수이름이어야합니다。또한변수이름은유효한matlab식별자여야합니다。

    资源描述또는X의항순서에따라피팅된모델의항순서가결정됩니다。따라서모델의항순서가지정된식에있는항순서와다를수있습니다。

예:“二次”

예:'y ~ x1 + x2^2 + x1:x2'

데이터형:||字符|字符串

이름-값쌍의通讯录수

선택적으로名称,值수가쉼로구분되어지정됩니다。여기서的名字은수이름이고价值는대응값입니다。的名字은따옴。Name1, Value1,…,的家과같이여러개의이름-값쌍의通讯录수를어떤순서로든지정할수있습니다。

예:“拦截”,假的,“PredictorVars”,[1,3],“ResponseVar”,5‘RobustOpts’,‘物流’은상수항이없는로버스트회귀모델을지정합니다。여기서이알고리즘은디폴트조율상수를갖는로지스틱가중함수를사용하고,첫번째변수와세번째변수는예측변수이며,다섯번째변수는응답변수입니다。

범주형변수목록으로,“CategoricalVars”와함께테이블또는dataset형배열资源描述의범주형변수이름을포함하는字符串형배열이나문자형벡터로구성된셀형배열,또는어떤열이범주형인지를나타내는논리형또는숫자형인덱스벡터가쉼표로구분되어지정됩니다。

  • 데이터가테이블또는dataset형배열资源描述에포함된경우,기본적으로fitlm함수는모든범주형값,논리값,문자형배열,字符串형배열,문자형벡터로구성된셀형배열을범주형변수로처리합니다。

  • 데이터가행렬X에포함된경우,“CategoricalVars”의디폴트값은빈행렬[]입니다。즉,범주형변수로직접지정하지않는한어떠한변수도범주형변수가아닙니다。

예를들어,다음중하나를사용하여6개변수중두번째변수와세번째변수를범주형으로지정할수있습니다。

예:“CategoricalVars”,[2,3]

예:'CategoricalVars',logical([0 1 1 0 0 0 0])

데이터형:||逻辑|字符串|细胞

피팅에서제외시킬관측값으로,“排除”와함께피팅에서제외시킬관측값을나타내는논리형또는숫자형인덱스벡터가쉼표로구분되어지정됩니다。

예를들어,다음예중하나를사용하여6개관측값중에서관측값2와관측값3을제외시킬수있습니다。

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

예:'Exclude',logical([0 1 1 0 0 0 0])

데이터형:||逻辑

피팅에포함된상수항(절편)에대한시자로,“拦截”와 함께真正的(상수항포함)또는(모델에서상수항제외)가쉼` ` `로구분되어지정됩니다。

식또는행렬이아니라문자형벡터또는字符串형스칼라를사용하여모델을지정하는경우에만“拦截”를사용하십시오。

예:“拦截”,假的

피팅에사용할예측변수로,“PredictorVars”와함께테이블또는dataset형배열资源描述형의변수이름에대한字符串배열이나문자형벡터로구성된셀형배열또는예측변수열을나타내는논리형또는숫자형인덱스벡터가쉼표로구분되어지정됩니다。

字符串형값또는문자형벡터는资源描述에포함된이름이거나“VarNames”이름-값쌍의通讯录수를사용하여지정하는이름이어야합니다。

디폴트값은X에포함된모든변수또는资源描述에포함된모든변수입니다。단,ResponseVar는예외입니다。

예를들어,다음예중하나를사용하여두번째변수와세번째변수를예측변수로지정할수있습니다。

예:“PredictorVars”,[2,3]

예:'PredictorVars',logical([0 1 1 0 0 0 0])

데이터형:||逻辑|字符串|细胞

피팅에사용할응답변수로,“ResponseVar”와함께테이블또는dataset형배열资源描述의변수이름을포함하는문자형벡터나字符串형스칼라또는응답변수열을나타내는논리형또는숫자형인덱스벡터가쉼표로구분되어지정됩니다。일반적으로테이블또는dataset형배열资源描述을피팅할때는“ResponseVar”를사용해야합니다。

예를들어,다음과방법중하나로네번째변수,이를테면收益率를6개변수중응답변수로지정할수있습니다。

예:“ResponseVar”、“收益”

예:“ResponseVar”,[4]

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

데이터형:||逻辑|字符|字符串

사용할로버스트피팅유형에대한시자로,“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) 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 = resid/(tune*s*sqrt(1-h))

      여기서渣油는이전반복의잔차로구성된벡터이고,调优은조율상수이고,h는최소제곱피팅의지렛대값으로구성된벡터이며,年代는다음과같이주어진오차항의@ @준편차에대한추정값입니다。

      s = MAD/0.6745

      疯了는잔차의중앙값과잔차간의중앙값절대편차(平均绝对偏差)입니다。상수0.6745는정규분포에대해무편향추정값을생성합니다。X에p개의열이있을경우,중앙값을계산할때가장작은p개의절대편차가제외됩니다。

로버스트피팅의경우fitlm함수는m -추정을사용하여추정방정식을공식화하고迭代重加权最小二乘(女孩们)방법을사용하여방정식을풉니다。

예:“RobustOpts”,“安德鲁”

변수이름으로,“VarNames”와 함께X의열에대한이름을첫번째로포함하고응답변수y의이름을마지막으로포함하는字符串형배열또는문자형벡터로구성된셀형배열이쉼표로구분되어지정됩니다。

“VarNames”는테이블또는dataset형배열의변수에적용되지않습니다。이러한변수는이미이름을갖고있기때문입니다。

변수이름은유효한matlab식별자일필는없습니다。그러나이름이유효하지않으면모델을피팅하거나조정할때식을사용할수없습니다。예를들면다음과같은상황에서식을사용할수없습니다。

  • addTerms함수 또는removeTerms함수를사용할때추가하거나제거할항을지정하기위해식을사용할수없습니다。

  • 一步함수 또는stepwiselm함수각각을이름-값쌍通讯录수“低”“上”와함께사용할때모델의하한과상한을지정하기위해식을사용할수없습니다。

VarNames, VarNames를지정하기전에,isvarname함수를사용하여varNames에포함된변수이름을확할수있습니다。변수이름이유효하지않으면matlab.lang.makeValidName함수를사용하여변수이름을변환할수있습니다。

예:VarNames,{“马力”,“加速”,“Model_Year”,“英里”}

데이터형:字符串|细胞

관측값가중치로,“重量”와함께음이아닌스칼라값으로구성된n×1벡터가쉼@ @로구분되어지정됩니다。여기서n은관측값개수입니다。

데이터형:|

출력marketing수

모두 축소

데이터에대한응답변수의최소제곱피팅을나타내는선형모델로,LinearModel객체로반환됩니다。

“RobustOpts”이름-값쌍의값이[]또는“ols”가아닌경우,이모델은최소제곱피팅이아니지만,로버스트피팅함수를사용합니다。

세부 정보

모두 축소

항 행렬

항 행렬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는응답변수이름입니다。

  • 条款는윌킨슨` ` `기법을사용하여모델의예측변수항을` ` ` `현합니다。

예측변수와응답변수를` ` ` ` `현하려면,테이블입력값资源描述의변수이름을사용하거나VarNames를사용하여지정된변수이름을사용하십시오。VarNames의디폴트값은{x1, x2,…,‘xn’,‘y’}입니다。

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

  • 'y ~ x1 + x2 + x3'는변수가3개이며절편이있는선형모델을지정합니다。

  • 'y ~ x1 + x2 + x3 - 1'은변수가3개이며절편이없는선형모델을지정합니다。공식에는기본적으로상수항(절편)이포함되어있습니다。모델에서상수항을제외하려면공식에1을포함시켜야합니다。

공식은1을사용하여상수항을명시적으로제거하지않는한상수항을항상포함시킵니다。

윌킨슨@ @기법

윌킨슨@ @기법은모델에존재하는항을설명합니다。이표기법은모델에존재하는항과관련이있으며,이러한항의승수(계수)와는관련이없습니다。

윌킨슨@ @기법은다음과같은기호를사용합니다。

  • +-다음변수를포함함을의미합니다。

  • - - - - - --다음변수를포함하지않음을의미합니다。

  • -상호작용、즉항의곱을정의합니다。

  • -상호작용과모든낮은차수항을정의합니다。

  • -예측변수를거듭제곱합니다。이는를반복하는것과동일하며,따라서은낮은차수항도포함합니다。

  • ()-항을그룹화합니다。

다음。

윌킨슨@ @기법 ` ` ` `준` ` ` `기법으로` ` ` `현되는항
1 상수(절편)항
x1 ^ k.여기서k는양의정수입니다。 x1x12、……x1k
X1 + x2 x1x2
x1 * x2 x1x2x1 * x2
x1, x2 x1 * x2
x2 x2를포함시키지않음
X1 *x2 + x3 x1x2x3x1 * x2
X1 + x2 + x3 + X1 = x2 x1x2x3x1 * x2
X1 *x2*x3 - X1:x2:x3 x1x2x3x1 * x2x1 * x3x2 * x3
X1 *(x2 + x3) x1x2x3x1 * x2x1 * x3

자세한내용은威尔金森符号항목을참조하십시오。

  • LinearModel객체mdl의모델속성에액세스하려면점@ @기법을사용하면됩니다。예를들어,mdl。残差는모델에대한원시잔차값,피어슨(Pearson)잔차값,스튜던트화잔차값및표준화잔차값으로구성된테이블을반환합니다。

  • 모델을훈련시킨후에는새데이터에대한응답변수를예측하는C / c++코드를생성할수있습니다。C/ c++코드를생성하려면MATLAB编码器™가필합니다。자세한내용은代码生成简介항목을참조하십시오。

알고리즘

  • 주피팅알고리즘은qr분해입니다。로버스트피팅의경우fitlm함수는m -추정을사용하여추정방정식을공식화하고迭代重加权最小二乘(女孩们)방법을사용하여방정식을풉니다。

  • fitlm함수는범주형예측변수를다음과같이처리합니다。

    • 수준(범주)이l개범주형예측변수를갖는모델은L - 1개의@ @시변수를갖습니다。이모델은첫번째범주를기준레벨로사용하므로기준레벨에대한표시변수는포함하지않습니다。범주형예측변수의데이터형이分类化学式경우类别를사용하여범주순서를확하고reordercats를사용하여범주를다시정렬하여기준레벨을사용자지정할수있습니다。시변수생성에대한자세한내용은自动创建虚拟变量항목을참조하십시오。

    • fitlm함수는L - 1개의@ @시변수그룹을단일변수로처리합니다。시변수를고유한예측변수로처리하려면dummyvar을사용하여@ @시변수를수동으로만드십시오。그런다음모델을피팅할때범주형변수의기준레벨에해당하는변수를제외한표시변수를사용하십시오。범주형예측변수X의경우,dummyvar (X)의모든열과절편항을예측변수로지정하면설계행렬은랭크부족이됩니다。

    • 연속형예측변수와수준이l개범주형예측변수사이의상호작용항은L - 1개의` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `。

    • 수준이L개인범주형예측변수와수준이M개인범주형예측변수의두범주형예측변수사이의상호작용항은(l - 1)*(m - 1)개의@ @시변수로구성되어두범주형예측변수수준의모든가능한조합을포함합니다。

    • 표시변수의제곱은그자신과동일하기때문에범주형예측변수에대한고차항은지정할수없습니다。

  • fitlm함수는资源描述XY''(빈문자형벡터),""(빈string형),< >失踪<定义>값을누락값으로간주합니다。fitlm함수는피팅할때누락값이있는관측값을사용하지않습니다。피팅된모델의ObservationInfo속성은fitlm함수가피팅에서각관측값을사용하는지여부를나타냅니다。

대체 기능

  • 고차원데이터세트에대한계산시간을단축시키려면fitrlinear함수를사용하여선형회귀모델을피팅하십시오。

  • 회귀를정규화하려면fitrlinear套索또는plsregress를사용하십시오。

    • fitrlinear는고차원데이터세트에대한회귀를套索또는능형회귀를사용하여정규화합니다。

    • 套索는套索또는신축망을사용하여선형회귀에서중복된예측변수를제거합니다。

    • 는상관관계를갖는항이있는회귀를능형회귀를사용하여정규화합니다。

    • plsregress는상관관계를갖는항이있는회귀를부분최소제곱을사용하여정규화합니다。

참고 문헌

[1]杜穆切尔,W. H.和F. L.奥布莱恩。将一个健壮的选项集成到多元回归计算环境中。计算机科学与统计:第21届界面研讨会论文集。亚历山大,弗吉尼亚州:美国统计协会,1989年。

[2]霍兰德,P. W.和R. E.韦尔施。使用迭代重加权最小二乘的稳健回归统计通讯:理论与方法,A6, 1977,第813-827页。

[3]胡贝尔,P. J.稳健统计学。霍博肯,新泽西州:约翰威利父子公司,1981年。

[4] Street, J. O. R. J. Carroll和D. Ruppert。《用迭代重加权最小二乘计算稳健回归估计的注释》美国统计学家。第42卷,1988,第152-154页。

확장 기능

R2013b에개발됨