fitnlm
비선형 회귀 모델 피팅
구문
설명
예제
테이블에서 비선형 모델 만들기
carbig
데이터를 기반으로 자동차 주행거리에 대한 비선형 모델을 만듭니다.
데이터를 불러오고 비선형 모델을 만듭니다.
load carbig tbl = table(Horsepower,Weight,MPG); modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5); beta0 = [-50 500 -1 500 -1]; mdl = fitnlm(tbl,modelfun,beta0)
mdl = Nonlinear regression model: MPG ~ b1 + b2*Horsepower^b3 + b4*Weight^b5 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ________ ________ b1 -49.383 119.97 -0.41164 0.68083 b2 376.43 567.05 0.66384 0.50719 b3 -0.78193 0.47168 -1.6578 0.098177 b4 422.37 776.02 0.54428 0.58656 b5 -0.24127 0.48325 -0.49926 0.61788 Number of observations: 392, Error degrees of freedom: 387 Root Mean Squared Error: 3.96 R-Squared: 0.745, Adjusted R-Squared 0.743 F-statistic vs. constant model: 283, p-value = 1.79e-113
행렬 데이터에서 비선형 모델 만들기
carbig
데이터를 기반으로 자동차 주행거리에 대한 비선형 모델을 만듭니다.
데이터를 불러오고 비선형 모델을 만듭니다.
load carbig X = [Horsepower,Weight]; y = MPG; modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5); beta0 = [-50 500 -1 500 -1]; mdl = fitnlm(X,y,modelfun,beta0)
mdl = Nonlinear regression model: y ~ b1 + b2*x1^b3 + b4*x2^b5 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ________ ________ b1 -49.383 119.97 -0.41164 0.68083 b2 376.43 567.05 0.66384 0.50719 b3 -0.78193 0.47168 -1.6578 0.098177 b4 422.37 776.02 0.54428 0.58656 b5 -0.24127 0.48325 -0.49926 0.61788 Number of observations: 392, Error degrees of freedom: 387 Root Mean Squared Error: 3.96 R-Squared: 0.745, Adjusted R-Squared 0.743 F-statistic vs. constant model: 283, p-value = 1.79e-113
비선형 모델에서 피팅 옵션 조정하기
carbig
데이터를 기반으로 자동차 주행거리에 대한 비선형 모델을 만듭니다. 정확도를 높이기 위해 TolFun
옵션을 낮추어 봅니다. Display
옵션을 설정하여 반복을 관측합니다.
데이터를 불러오고 비선형 모델을 만듭니다.
load carbig X = [Horsepower,Weight]; y = MPG; modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5); beta0 = [-50 500 -1 500 -1];
TolFun
을 낮추고 반복 표시를 보고하는 옵션을 생성하고, 이 옵션을 사용하여 모델을 만듭니다.
opts = statset('Display','iter','TolFun',1e-10); mdl = fitnlm(X,y,modelfun,beta0,'Options',opts);
Norm of Norm of Iteration SSE Gradient Step ----------------------------------------------------------- 0 1.82248e+06 1 678600 788810 1691.07 2 616716 6.12739e+06 45.4738 3 249831 3.9532e+06 293.557 4 17675 361544 369.284 5 11746.6 69670.5 169.079 6 7242.22 343738 394.822 7 6250.32 159719 452.941 8 6172.87 91622.9 268.674 9 6077 6957.44 100.208 10 6076.34 6370.39 88.1905 11 6075.75 5199.08 77.9694 12 6075.3 4646.61 69.764 13 6074.91 4235.96 62.9114 14 6074.55 3885.28 57.0647 15 6074.23 3571.1 52.0036 16 6073.93 3286.48 47.5795 17 6073.66 3028.34 43.6844 18 6073.4 2794.31 40.2352 19 6073.17 2582.15 37.1663 20 6072.95 2389.68 34.4243 21 6072.74 2214.84 31.9651 22 6072.55 2055.78 29.7516 23 6072.37 1910.83 27.753 24 6072.21 1778.51 25.9428 25 6072.05 1657.5 24.2986 26 6071.9 1546.65 22.8011 27 6071.76 1444.93 21.4338 28 6071.63 1351.44 20.1822 29 6071.51 1265.39 19.0339 30 6071.39 1186.06 17.978 31 6071.28 1112.83 17.0052 32 6071.17 1045.13 16.107 33 6071.07 982.465 15.2762 34 6070.98 924.389 14.5063 35 6070.89 870.498 13.7916 36 6070.8 820.434 13.127 37 6070.72 773.872 12.5081 38 6070.64 730.521 11.9307 39 6070.57 690.117 11.3914 40 6070.5 652.422 10.887 41 6070.43 617.219 10.4144 42 6070.37 584.315 9.97115 43 6070.31 553.53 9.55489 44 6070.25 524.703 9.1635 45 6070.19 497.686 8.79506 46 6070.14 472.345 8.44785 47 6070.08 448.557 8.12028 48 6070.03 426.21 7.81092 49 6069.99 405.201 7.51845 50 6069.94 385.435 7.2417 51 6069.9 366.825 6.97956 52 6069.85 349.293 6.73104 53 6069.81 332.764 6.49523 54 6069.77 317.171 6.27127 55 6069.74 302.453 6.0584 56 6069.7 288.55 5.85591 57 6069.66 275.411 5.66315 58 6069.63 262.986 5.47949 59 6069.6 251.23 5.3044 60 6069.57 240.1 5.13734 61 6069.54 229.558 4.97784 62 6069.51 219.567 4.82545 63 6069.48 210.094 4.67977 64 6069.45 201.108 4.5404 65 6069.43 192.578 4.407 66 6069.4 184.479 4.27923 67 6069.38 176.785 4.15677 68 6069.35 169.472 4.03935 69 6069.33 162.518 3.9267 70 6069.31 155.903 3.81855 71 6069.29 149.608 3.71468 72 6069.26 143.615 3.61486 73 6069.24 137.907 3.5189 74 6069.22 132.468 3.42658 75 6069.21 127.283 3.33774 76 6069.19 122.339 3.25221 77 6069.17 117.623 3.16981 78 6069.15 113.123 3.09041 79 6069.14 108.827 3.01386 80 6069.12 104.725 2.94002 81 6069.1 100.806 2.86877 82 6069.09 97.0611 2.8 83 6069.07 93.4814 2.73358 84 6069.06 90.0583 2.66942 85 6069.05 86.7842 2.60741 86 6069.03 83.6513 2.54745 87 6069.02 80.6528 2.48947 88 6069.01 77.7821 2.43338 89 6068.99 75.0328 2.37908 90 6068.98 72.399 2.32652 91 6068.97 69.8752 2.27561 92 6068.96 67.4561 2.22629 93 6068.95 65.1367 2.17849 94 6068.94 62.9122 2.13216 95 6068.93 60.7784 2.08723 96 6068.92 58.7308 2.04364 97 6068.91 56.7655 2.00135 98 6068.9 54.8787 1.9603 99 6068.89 4349.28 18.1917 100 6068.77 2416.27 14.4439 101 6068.71 1721.26 12.1305 102 6068.66 1228.78 10.289 103 6068.63 884.002 8.82019 104 6068.6 639.615 7.62745 105 6068.58 464.84 6.64627 106 6068.56 338.878 5.82964 107 6068.55 247.508 5.14297 108 6068.54 180.878 4.56032 109 6068.53 132.084 4.06194 110 6068.52 96.2342 3.63255 111 6068.51 69.8362 3.26019 112 6068.51 50.3734 2.93541 113 6068.5 36.0205 2.65062 114 6068.5 25.4451 2.39969 115 6068.49 17.6693 2.17764 116 6068.49 1027.39 14.0164 117 6068.48 544.039 5.3137 118 6068.48 94.0569 2.86662 119 6068.48 113.637 3.73503 120 6068.48 0.51834 1.37051 121 6068.48 4.59439 0.912827 122 6068.48 1.56359 0.629276 123 6068.48 1.13825 0.432567 124 6068.48 0.296021 0.297532 Iterations terminated: relative change in SSE less than OPTIONS.TolFun
모델 이름 구문을 사용하여 비선형 회귀 지정하기
함수 핸들 또는 모델 구문을 사용하여 추정을 위한 비선형 회귀 모델을 지정합니다.
표본 데이터를 불러옵니다.
S = load('reaction');
X = S.reactants;
y = S.rate;
beta0 = S.beta;
함수 핸들을 사용하여 반응 속도 데이터에 대해 Hougen-Watson 모델을 지정합니다.
mdl = fitnlm(X,y,@hougen,beta0)
mdl = Nonlinear regression model: y ~ hougen(b,X) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ _______ b1 1.2526 0.86701 1.4447 0.18654 b2 0.062776 0.043561 1.4411 0.18753 b3 0.040048 0.030885 1.2967 0.23089 b4 0.11242 0.075157 1.4957 0.17309 b5 1.1914 0.83671 1.4239 0.1923 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 0.193 R-Squared: 0.999, Adjusted R-Squared 0.998 F-statistic vs. zero model: 3.91e+03, p-value = 2.54e-13
또는, 표현식을 사용하여 반응 속도 데이터에 대해 Hougen-Watson 모델을 지정할 수도 있습니다.
myfun = 'y~(b1*x2-x3/b5)/(1+b2*x1+b3*x2+b4*x3)';
mdl2 = fitnlm(X,y,myfun,beta0)
mdl2 = Nonlinear regression model: y ~ (b1*x2 - x3/b5)/(1 + b2*x1 + b3*x2 + b4*x3) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ _______ b1 1.2526 0.86701 1.4447 0.18654 b2 0.062776 0.043561 1.4411 0.18753 b3 0.040048 0.030885 1.2967 0.23089 b4 0.11242 0.075157 1.4957 0.17309 b5 1.1914 0.83671 1.4239 0.1923 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 0.193 R-Squared: 0.999, Adjusted R-Squared 0.998 F-statistic vs. zero model: 3.91e+03, p-value = 2.54e-13
로버스트 피팅 옵션을 사용하여 비선형 회귀 추정하기
비선형 회귀 모델에서 표본 데이터를 생성합니다.
여기서 , 및 은 계수이고, 오차항은 평균이 0이고 표준편차가 0.5인 정규분포를 가집니다.
modelfun = @(b,x)(b(1)+b(2)*exp(-b(3)*x)); rng('default') % for reproducibility b = [1;3;2]; x = exprnd(2,100,1); y = modelfun(b,x) + normrnd(0,0.5,100,1);
로버스트 피팅 옵션을 설정합니다.
opts = statset('nlinfit'); opts.RobustWgtFun = 'bisquare';
로버스트 피팅 옵션을 사용하여 비선형 모델을 피팅합니다. 여기서는 표현식을 사용하여 모델을 지정하겠습니다.
b0 = [2;2;2]; modelstr = 'y ~ b1 + b2*exp(-b3*x)'; mdl = fitnlm(x,y,modelstr,b0,'Options',opts)
mdl = Nonlinear regression model (robust fit): y ~ b1 + b2*exp( - b3*x) Estimated Coefficients: Estimate SE tStat pValue ________ _______ ______ __________ b1 1.0218 0.07202 14.188 2.1344e-25 b2 3.6619 0.25429 14.401 7.974e-26 b3 2.9732 0.38496 7.7232 1.0346e-11 Number of observations: 100, Error degrees of freedom: 97 Root Mean Squared Error: 0.501 R-Squared: 0.807, Adjusted R-Squared 0.803 F-statistic vs. constant model: 203, p-value = 2.34e-35
가중치 함수 핸들을 사용하여 비선형 회귀 모델 피팅하기
표본 데이터를 불러옵니다.
S = load('reaction');
X = S.reactants;
y = S.rate;
beta0 = S.beta;
관측값 가중치에 대한 함수 핸들을 지정합니다. 이 함수는 모델 피팅 값을 입력값으로 받고 가중치로 구성된 벡터를 반환합니다.
a = 1; b = 1; weights = @(yhat) 1./((a + b*abs(yhat)).^2);
지정된 관측값 가중치 함수를 사용하여 Hougen-Watson 모델을 반응 속도 데이터에 피팅합니다.
mdl = fitnlm(X,y,@hougen,beta0,'Weights',weights)
mdl = Nonlinear regression model: y ~ hougen(b,X) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ _______ b1 0.83085 0.58224 1.427 0.19142 b2 0.04095 0.029663 1.3805 0.20477 b3 0.025063 0.019673 1.274 0.23842 b4 0.080053 0.057812 1.3847 0.20353 b5 1.8261 1.281 1.4256 0.19183 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 0.037 R-Squared: 0.998, Adjusted R-Squared 0.998 F-statistic vs. zero model: 1.14e+03, p-value = 3.49e-11
상수가 아닌 오차 모델을 사용한 비선형 회귀 모델
표본 데이터를 불러옵니다.
S = load('reaction');
X = S.reactants;
y = S.rate;
beta0 = S.beta;
결합된 오차 분산 모델을 사용하여 Hougen-Watson 모델을 반응 속도 데이터에 피팅합니다.
mdl = fitnlm(X,y,@hougen,beta0,'ErrorModel','combined')
mdl = Nonlinear regression model: y ~ hougen(b,X) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ _______ b1 1.2526 0.86702 1.4447 0.18654 b2 0.062776 0.043561 1.4411 0.18753 b3 0.040048 0.030885 1.2967 0.23089 b4 0.11242 0.075158 1.4957 0.17309 b5 1.1914 0.83671 1.4239 0.1923 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 1.27 R-Squared: 0.999, Adjusted R-Squared 0.998 F-statistic vs. zero model: 3.91e+03, p-value = 2.54e-13
입력 인수
tbl
— 입력 데이터
table형 | dataset형 배열
예측 변수와 응답 변수를 포함하는 입력 데이터로, 테이블 또는 dataset형 배열로 지정됩니다. 예측 변수와 응답 변수는 숫자형이어야 합니다.
식을 사용하여
modelfun
을 지정하는 경우 해당 식의 모델 사양에 따라 예측 변수와 응답 변수가 지정됩니다.함수 핸들을 사용하여
modelfun
을 지정하는 경우 기본적으로 마지막 변수가 응답 변수이고 나머지 변수가 예측 변수입니다.ResponseVar
이름-값 쌍의 인수를 사용하여 다른 열을 응답 변수로 설정할 수 있습니다. 열 중 일부를 예측 변수로 선택하려면PredictorVars
이름-값 쌍의 인수를 사용하십시오.
테이블의 변수 이름은 유효한 MATLAB® 식별자일 필요는 없지만, 선행 공백이나 후행 공백을 포함해서는 안 됩니다. 이름이 유효하지 않으면 식을 사용하여 modelfun
을 지정할 수 없습니다.
isvarname
함수를 사용하여 tbl
에 포함된 변수 이름을 확인할 수 있습니다. 변수 이름이 유효하지 않으면 matlab.lang.makeValidName
함수를 사용하여 변수 이름을 변환할 수 있습니다.
데이터형: table
X
— 예측 변수
행렬
예측 변수로, n×p 행렬로 지정됩니다. 여기서 n은 관측값 개수이고 p는 예측 변수 개수입니다. X
의 각 열은 하나의 변수를 나타내고, 각 행은 하나의 관측값을 나타냅니다.
데이터형: single
| double
y
— 응답 변수
벡터
응답 변수로, n×1 벡터로 지정됩니다. 여기서 n은 관측값 개수입니다. y
의 각 요소는 X
의 대응 행에 대한 응답 변수입니다.
데이터형: single
| double
modelfun
— 모델의 함수 형식
함수 핸들 | 'y
~
f
(b1,b2,...,bj,x1,x2,...,xk)'
형식의 식을 나타내는 문자형 벡터 또는 string형 스칼라
y
f
(b1,b2,...,bj,x1,x2,...,xk)'모델의 함수 형식으로, 다음 중 하나로 지정됩니다.
함수 핸들
@
또는modelfun
@(b,x)
. 여기서modelfun
b
는beta0
과 요소 개수가 동일한 계수 벡터입니다.x
는X
의 열 개수 또는tbl
의 예측 변수 열과 열 개수가 동일한 행렬입니다.
modelfun
(b,x)
는x
와 동일한 행 개수를 포함하는 열 벡터를 반환합니다. 벡터의 각 행은 이에 대응되는x
행에 대해modelfun
을 계산한 결과입니다. 즉,modelfun
은 모든 데이터 행에 대해 연산을 수행하고 하나의 함수 호출에서 모든 계산을 반환하는 벡터화된 함수입니다.modelfun
은 유의미한 계수를 얻기 위해 실수를 반환해야 합니다.'
형식의 식을 나타내는 문자형 벡터 또는 string형 스칼라. 여기서y
~f
(b1,b2,...,bj,x1,x2,...,xk)'f
는 스칼라 계수 변수b1
,...,bj
와 스칼라 데이터 변수x1
,...,xk
의 스칼라 함수를 나타냅니다. 식에 포함되는 변수 이름은 유효한 MATLAB 식별자여야 합니다.
데이터형: function_handle
| char
| string
beta0
— 초기 계수 값
숫자형 벡터
비선형 모델에 대한 초기 계수 값으로, 숫자형 벡터로 지정됩니다. NonLinearModel
은 beta0
에서 최적 계수의 탐색을 시작합니다.
데이터형: single
| double
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: 'ErrorModel','combined','Exclude',2,'Options',opt
는 오차 모델을 결합된 모델로 지정하고, 피팅에서 두 번째 관측값을 제외하고, 구조체 opt
에 정의된 옵션을 사용하여 반복 피팅 절차를 제어합니다.
CoefficientNames
— 모델 계수의 이름
{'b1','b2',...,'bk
'}
(디폴트 값) | string형 배열 | 문자형 벡터로 구성된 셀형 배열
k
'}모델 계수의 이름으로, string형 배열 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.
데이터형: string
| cell
ErrorModel
— 오차 분산 모델의 형식
'constant'
(디폴트 값) | 'proportional'
| 'combined'
오차 분산 모델의 형식으로, 다음 중 하나로 지정됩니다. 각 모델은 표준 평균 0과 단위 분산 변수 e를 독립적인 성분인 함수 값 f, 하나 또는 두 개의 모수 a 및 b와 함께 사용하여 오차를 정의합니다.
'constant' (디폴트 값) | |
'proportional' | |
'combined' |
Weights
를 사용하는 경우 유일하게 허용되는 오차 모델은 'constant'
입니다.
참고
'constant'
가 아닌 다른 오차 모델을 사용하는 경우 options.RobustWgtFun
이 값 []
을 가져야 합니다.
예: 'ErrorModel','proportional'
ErrorParameters
— 오차 모델 모수의 초기 추정값
숫자형 배열
선택한 ErrorModel
에 대한 오차 모델 모수의 초기 추정값으로, 숫자형 배열로 지정됩니다.
오차 모델 | 파라미터 | 디폴트 값 |
---|---|---|
'constant' | a | 1 |
'proportional' | b | 1 |
'combined' | a, b | [1,1] |
Weights
를 사용하는 경우 'constant'
오차 모델만 사용할 수 있습니다.
참고
'constant'
가 아닌 다른 오차 모델을 사용하는 경우 options.RobustWgtFun
이 값 []
을 가져야 합니다.
예를 들어, 'ErrorModel'
이 값 'combined'
를 갖는 경우 다음과 같이 a에 대한 시작 값으로 1을 지정하고 b에 대한 시작 값으로 2를 지정할 수 있습니다.
예: 'ErrorParameters',[1,2]
데이터형: single
| double
Exclude
— 제외시킬 관측값
논리형 또는 숫자형 인덱스 벡터
피팅에서 제외시킬 관측값으로, 'Exclude'
와 함께 피팅에서 제외시킬 관측값을 나타내는 논리형 또는 숫자형 인덱스 벡터가 쉼표로 구분되어 지정됩니다.
예를 들어, 다음 예 중 하나를 사용하여 6개 관측값 중에서 관측값 2와 관측값 3을 제외시킬 수 있습니다.
예: 'Exclude',[2,3]
예: 'Exclude',logical([0 1 1 0 0 0])
데이터형: single
| double
| logical
Options
— 반복 피팅 절차를 제어하는 옵션
[ ] (디폴트 값) | 구조체
반복 피팅 절차를 제어하는 옵션으로, statset
으로 생성되는 구조체로 지정됩니다. 관련 필드는 호출 statset('fitnlm')
에서 반환되는 구조체의 비어 있지 않은 필드입니다.
옵션 | 의미 | 디폴트 값 |
---|---|---|
DerivStep | 유한 차분 도함수 계산에서 사용되는 상대 오차. 양의 스칼라, 또는 Statistics and Machine Learning Toolbox™ 함수가 options 구조체를 사용하여 추정한 모수로 구성된 벡터와 동일한 크기의, 양의 스칼라로 구성된 벡터. | eps^(1/3) |
Display | 피팅 알고리즘이 표시하는 정보의 양.
| 'off' |
FunValCheck | 모델 함수에서 유효하지 않은 값(예: NaN 또는 Inf )을 검사할지 여부를 나타내는 문자형 벡터 또는 string형 스칼라. | 'on' |
MaxIter | 허용되는 최대 반복 횟수. 양의 정수. | 200 |
RobustWgtFun | 로버스트 피팅에 사용할 가중치 함수. 정규화된 잔차를 입력값으로 받고 로버스트 가중치를 출력값으로 반환하는 함수 핸들일 수도 있습니다. 함수 핸들을 사용하는 경우 Tune 상수를 제공하십시오. 로버스트 옵션 항목을 참조하십시오. | [] |
Tune | 로버스트 피팅에서 가중치 함수를 적용하기 전에 잔차를 정규화하는 데 사용되는 조율 상수. 양의 스칼라. 가중치 함수가 함수 핸들로 지정된 경우에 필요합니다. | 디폴트 값은 RobustWgtFun 에 따라 달라집니다. 자세한 내용은 로버스트 옵션 항목을 참조하십시오. |
TolFun | 목적 함수 값에 대한 종료 허용오차. 양의 스칼라. | 1e-8 |
TolX | 모수에 대한 종료 허용오차. 양의 스칼라. | 1e-8 |
데이터형: struct
PredictorVars
— 예측 변수
string형 배열 | 문자형 벡터로 구성된 셀형 배열 | 논리형 또는 숫자형 인덱스 벡터
피팅에 사용할 예측 변수로, 'PredictorVars'
와 함께 테이블 또는 dataset형 배열 tbl
의 변수 이름에 대한 string형 배열이나 문자형 벡터로 구성된 셀형 배열 또는 예측 변수 열을 나타내는 논리형 또는 숫자형 인덱스 벡터가 쉼표로 구분되어 지정됩니다.
string형 값 또는 문자형 벡터는 tbl
에 포함된 이름이거나 'VarNames'
이름-값 쌍의 인수를 사용하여 지정하는 이름이어야 합니다.
디폴트 값은 X
에 포함된 모든 변수 또는 tbl
에 포함된 모든 변수입니다. 단, ResponseVar
는 예외입니다.
예를 들어, 다음 예 중 하나를 사용하여 두 번째 변수와 세 번째 변수를 예측 변수로 지정할 수 있습니다.
예: 'PredictorVars',[2,3]
예: 'PredictorVars',logical([0 1 1 0 0 0])
데이터형: single
| double
| logical
| string
| cell
ResponseVar
— 응답 변수
tbl
의 마지막 열 (디폴트 값) | 변수 이름 | 논리형 또는 숫자형 인덱스 벡터
피팅에 사용할 응답 변수로, 'ResponseVar'
과 함께 테이블 또는 dataset형 배열 tbl
의 변수 이름 또는 응답 변수 열을 나타내는 논리형 또는 숫자형 인덱스 벡터가 쉼표로 구분되어 지정됩니다.
모델을 지정하면 응답 변수가 지정됩니다. 그렇지 않으면, 테이블 또는 dataset형 배열을 피팅할 때 'ResponseVar'
이 fitnlm
에서 응답 변수로 사용해야 하는 변수를 나타냅니다.
예를 들어, 다음과 방법 중 하나로 네 번째 변수, 이를 테면 yield
를 6개 변수 중 응답 변수로 지정할 수 있습니다.
예: 'ResponseVar','yield'
예: 'ResponseVar',[4]
예: 'ResponseVar',logical([0 0 0 1 0 0])
데이터형: single
| double
| logical
| char
| string
VarNames
— 변수의 이름
{'x1','x2',...,'xn','y'}
(디폴트 값) | string형 배열 | 문자형 벡터로 구성된 셀형 배열
변수 이름으로, 'VarNames'
와 함께 X
의 열에 대한 이름을 첫 번째로 포함하고 응답 변수 y
의 이름을 마지막으로 포함하는 string형 배열 또는 문자형 벡터로 구성된 셀형 배열이 쉼표로 구분되어 지정됩니다.
'VarNames'
는 테이블 또는 dataset형 배열의 변수에 적용되지 않습니다. 이러한 변수는 이미 이름을 갖고 있기 때문입니다.
예: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}
데이터형: string
| cell
Weights
— 관측값 가중치
ones(n,1)
(디폴트 값) | 음이 아닌 스칼라 값으로 구성된 벡터 | 함수 핸들
관측값 가중치로, 음이 아닌 스칼라 값으로 구성된 벡터 또는 함수 핸들로 지정됩니다.
벡터를 지정한 경우에는 n개의 요소를 가져야 합니다. 여기서 n은
tbl
또는y
의 행 개수입니다.함수 핸들을 지정한 경우에는 예측된 응답 값으로 구성된 벡터를 입력값으로 받고 양의 실수 가중치로 구성된 벡터를 출력값으로 반환해야 합니다.
주어진 가중치 W
에 대해 NonLinearModel
은 관측값 i
에서의 오차 분산을 MSE*(1/W(i))
로 추정합니다. 여기서 MSE는 평균제곱오차입니다.
데이터형: single
| double
| function_handle
출력 인수
mdl
— 비선형 모델
NonLinearModel
객체
데이터에 대한 응답 변수의 최소제곱 피팅을 나타내는 비선형 모델로, NonLinearModel
객체로 반환됩니다.
Options
구조체가 비어 있지 않은 RobustWgtFun
필드를 포함하는 경우, 이 모델은 최소제곱 피팅이 아니지만 RobustWgtFun
로버스트 피팅 함수를 사용합니다.
비선형 모델 객체 mdl
에 대한 속성과 메서드는 NonLinearModel
클래스 페이지를 참조하십시오.
세부 정보
로버스트 옵션
가중치 함수 | 수식 | 디폴트 조율 상수 |
---|---|---|
"andrews" | w = (abs(r)<pi) .* sin(r) ./ r | 1.339 |
"bisquare" (디폴트 값) | w = (abs(r)<1) .* (1 - r.^2).^2 | 4.685 |
"cauchy" | w = 1 ./ (1 + r.^2) | 2.385 |
"fair" | w = 1 ./ (1 + abs(r)) | 1.400 |
"huber" | w = 1 ./ max(1, abs(r)) | 1.345 |
"logistic" | w = tanh(r) ./ r | 1.205 |
"talwar" | w = 1 * (abs(r)<1) | 2.795 |
"welsch" | w = exp(-(r.^2)) | 2.985 |
알고리즘
참고 문헌
[1] Seber, G. A. F., and C. J. Wild. Nonlinear Regression. Hoboken, NJ: Wiley-Interscience, 2003.
[2] DuMouchel, W. H., and F. L. O'Brien. “Integrating a Robust Option into a Multiple Regression Computing Environment.” Computer Science and Statistics: Proceedings of the 21st Symposium on the Interface. Alexandria, VA: American Statistical Association, 1989.
[3] Holland, P. W., and R. E. Welsch. “Robust Regression Using Iteratively Reweighted Least-Squares.” Communications in Statistics: Theory and Methods, A6, 1977, pp. 813–827.
버전 내역
R2013b에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)