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
입력 인수
예측 변수와 응답 변수를 포함하는 입력 데이터로, 테이블 또는 dataset형 배열로 지정됩니다. 예측 변수와 응답 변수는 숫자형이어야 합니다.
식을 사용하여
modelfun을 지정하는 경우 해당 식의 모델 사양에 따라 예측 변수와 응답 변수가 지정됩니다.함수 핸들을 사용하여
modelfun을 지정하는 경우 기본적으로 마지막 변수가 응답 변수이고 나머지 변수가 예측 변수입니다.ResponseVar이름-값 쌍의 인수를 사용하여 다른 열을 응답 변수로 설정할 수 있습니다. 열 중 일부를 예측 변수로 선택하려면PredictorVars이름-값 쌍의 인수를 사용하십시오.
테이블의 변수 이름은 유효한 MATLAB® 식별자일 필요는 없지만, 선행 공백이나 후행 공백을 포함해서는 안 됩니다. 이름이 유효하지 않으면 식을 사용하여 modelfun을 지정할 수 없습니다.
isvarname 함수를 사용하여 tbl에 포함된 변수 이름을 확인할 수 있습니다. 변수 이름이 유효하지 않으면 matlab.lang.makeValidName 함수를 사용하여 변수 이름을 변환할 수 있습니다.
데이터형: table
예측 변수로, n×p 행렬로 지정됩니다. 여기서 n은 관측값 개수이고 p는 예측 변수 개수입니다. X의 각 열은 하나의 변수를 나타내고, 각 행은 하나의 관측값을 나타냅니다.
데이터형: single | double
응답 변수로, n×1 벡터로 지정됩니다. 여기서 n은 관측값 개수입니다. y의 각 요소는 X의 대응 행에 대한 응답 변수입니다.
데이터형: single | double
모델의 함수 형식으로, 다음 중 하나로 지정됩니다.
함수 핸들
@또는modelfun@(b,x). 여기서modelfunb는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
비선형 모델에 대한 초기 계수 값으로, 숫자형 벡터로 지정됩니다. NonLinearModel은 beta0에서 최적 계수의 탐색을 시작합니다.
데이터형: single | double
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.
예: 'ErrorModel','combined','Exclude',2,'Options',opt는 오차 모델을 결합된 모델로 지정하고, 피팅에서 두 번째 관측값을 제외하고, 구조체 opt에 정의된 옵션을 사용하여 반복 피팅 절차를 제어합니다.
모델 계수의 이름으로, string형 배열 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.
데이터형: string | cell
오차 분산 모델의 형식으로, 다음 중 하나로 지정됩니다. 각 모델은 표준 평균 0과 단위 분산 변수 e를 독립적인 성분인 함수 값 f, 하나 또는 두 개의 모수 a 및 b와 함께 사용하여 오차를 정의합니다.
'constant'(디폴트 값) | |
'proportional' | |
'combined' |
Weights를 사용하는 경우 유일하게 허용되는 오차 모델은 'constant'입니다.
참고
'constant'가 아닌 다른 오차 모델을 사용하는 경우 options.RobustWgtFun이 값 []을 가져야 합니다.
예: 'ErrorModel','proportional'
선택한 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
피팅에서 제외할 관측값으로, 피팅에서 제외할 관측값을 나타내는 논리형 또는 숫자형 인덱스 벡터로 지정됩니다.
예를 들어, 다음 예 중 하나를 사용하여 6개 관측값 중에서 관측값 2와 관측값 3을 제외시킬 수 있습니다.
예: Exclude=[2,3]
예: Exclude=logical([0 1 1 0 0 0])
데이터형: single | double | logical
반복 피팅 절차를 제어하는 옵션으로, 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'와 함께 테이블 또는 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
R2025a 이후
야코비 행렬 랭크를 줄일지 지정하는 플래그로, 숫자형 또는 논리값 1(true)이나 0(false)으로 지정됩니다. ReduceJacobian이 true이고 야코비 행렬이 특이 행렬에 가까운 경우 fitnlm 함수는 야코비 행렬의 랭크를 줄이고 오차 자유도를 늘립니다.
fitnlm 함수는 야코비 행렬을 사용하여 모델 계수를 최적화하고 계수 표준 오차와 같은 통계량을 계산합니다. 야코비 행렬의 행은 관측값에 대응되고 열은 모델 계수에 대응됩니다. 야코비 행렬의 각 요소는 대응되는 계수에 대한 모델의 도함수이며, 대응되는 관측값에서 계산됩니다. 특이 야코비 행렬은 모델 계수가 선형 독립이 아님을 나타내므로 fitnlm 함수는 최적 값을 구할 수 없습니다. 이 경우 fitnlm 함수는 하나 이상의 계수를 수정합니다.
예: ReduceJacobian=false
데이터형: logical
피팅에 사용할 응답 변수로, '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'와 함께 X의 열에 대한 이름을 첫 번째로 포함하고 응답 변수 y의 이름을 마지막으로 포함하는 string형 배열 또는 문자형 벡터로 구성된 셀형 배열이 쉼표로 구분되어 지정됩니다.
'VarNames'는 테이블 또는 dataset형 배열의 변수에 적용되지 않습니다. 이러한 변수는 이미 이름을 갖고 있기 때문입니다.
예: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}
데이터형: string | cell
관측값 가중치로, 음이 아닌 스칼라 값으로 구성된 벡터 또는 함수 핸들로 지정됩니다.
벡터를 지정한 경우에는 n개의 요소를 가져야 합니다. 여기서 n은
tbl또는y의 행 개수입니다.함수 핸들을 지정한 경우에는 예측된 응답 값으로 구성된 벡터를 입력값으로 받고 양의 실수 가중치로 구성된 벡터를 출력값으로 반환해야 합니다.
주어진 가중치 W에 대해 NonLinearModel은 관측값 i에서의 오차 분산을 MSE*(1/W(i))로 추정합니다. 여기서 MSE는 평균제곱오차입니다.
데이터형: single | double | function_handle
출력 인수
데이터에 대한 응답 변수의 최소제곱 피팅을 나타내는 비선형 모델로, 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에 개발됨ReduceJacobian 이름-값 인수를 지정하여 피팅 시 fitnlm 함수가 사용하는 야코비 행렬의 랭크를 줄일 수 있습니다.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)