Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

모수적 피팅

라이브러리 모델을 사용한 모수적 피팅

모수적 피팅에서는 데이터에 피팅하는 하나 이상의 모델에 대한 계수(파라미터)를 찾는 작업이 수행됩니다. 데이터는 통계적 성질을 갖는다고 간주되며, 다음과 같은 2개의 성분으로 나뉩니다.

데이터 = 결정적 성분 + 확률적 성분

결정적 성분은 모수적 모델로 지정되고, 확률적 성분은 종종 데이터와 연관된 오차로 설명됩니다.

데이터 = 모수적 모델 + 오차

모델은 독립 변수(예측 변수)와 하나 이상의 계수에 대한 함수입니다. 오차는 특정 확률 분포(보통 가우스 분포)를 따르는 데이터의 임의 변동을 나타냅니다. 이런 변동은 여러 요인에서 기인할 수 있지만, 측정된 데이터를 취급할 때는 항상 어느 정도 존재합니다. 체계적 변동도 존재할 수 있지만, 이는 데이터를 제대로 표현하지 못하는 피팅 모델을 야기할 수 있습니다.

모델 계수는 물리적 유의성을 갖는 경우가 많습니다. 예를 들어, 방사성 핵종의 단일 붕괴 방식에 해당하는 데이터를 수집하여 붕괴의 반감기(T1/2)를 추정하려 한다고 가정하겠습니다. 방사성 붕괴 법칙에서는 방사성 물질의 활동이 시간의 흐름에 따라 지수적으로 붕괴한다고 설명합니다. 따라서 피팅에 사용할 모델은 다음과 같이 지정됩니다.

y=y0eλt

여기서 y0은 시간 t = 0에서의 핵의 개수고 λ는 붕괴 상수입니다. 데이터는 다음 방정식으로 설명할 수 있습니다.

data=y0eλt+error

y0과 λ는 모두 피팅에 의해 추정되는 계수입니다. T1/2 = ln(2)/λ이므로 붕괴 상수의 피팅된 값은 피팅된 반감기를 산출합니다. 그러나 데이터에 일부 오차가 포함되어 있으므로 데이터로부터 정확하게 방정식의 결정적 성분을 파악할 수는 없습니다. 따라서 계수 및 반감기 계산에는 어느 정도의 불확실성이 수반됩니다. 불확실성이 허용 가능한 수준이라면 여기서 데이터 피팅이 완료됩니다. 불확실성이 허용 가능하지 않은 수준이라면 더 많은 데이터를 수집하거나 측정 오차를 줄이고 새로운 데이터를 수집한 후 모델 피팅을 반복하는 등 불확실성을 낮추는 과정을 수행해야 할 수 있습니다.

모델을 관장하는 이론이 없는 여타 문제에서는 항을 추가하거나 제거하여 모델을 수정하거나 완전히 다른 모델로 대체해 볼 수도 있습니다.

Curve Fitting Toolbox™의 모수적 라이브러리 모델은 다음 섹션에 설명되어 있습니다.

대화형 방식으로 모델 유형 선택하기

곡선 피팅 앱의 드롭다운 목록에서 피팅할 모델 유형을 선택합니다.

곡선 또는 곡면에는 어떤 피팅 유형을 사용할 수 있을까요? 선택한 데이터에 따라 피팅 범주 목록에는 곡선 또는 곡면 범주가 표시됩니다. 다음 표에서는 곡선과 곡면에 대해 사용 가능한 옵션을 설명합니다.

피팅 범주곡선곡면
회귀 모델
다항식가능(최대 9차)가능(최대 5차)
지수가능 
푸리에가능 
가우스가능 
멱급수가능 
유리가능 
사인 합가능 
베이불가능 
보간
보간가능
방법:
최근접이웃
선형
3차
형태 보존(PCHIP)
가능
방법:
최근접이웃
선형
3차
쌍조화
박판 스플라인
평활화
평활화 스플라인가능 
Lowess 가능
사용자 지정
사용자 지정 수식가능가능
Custom Linear Fitting 가능

모든 피팅 범주에서 결과 창을 보면 모델 항, 계수의 값, 적합도 통계량을 확인할 수 있습니다.

피팅에 문제가 있을 경우 결과 창의 메시지를 참고하여 더 나은 설정을 찾아낼 수 있습니다.

피팅 설정 선택하기

곡선 피팅 앱에서는 피팅을 개선하기 위해 변경할 수 있는 일련의 피팅 유형 및 설정을 제공합니다. 먼저 디폴트 값을 사용해 본 다음 다른 설정으로 시험해 보십시오.

사용 가능한 피팅 옵션을 사용하는 방법에 대한 개요는 피팅 옵션 및 최적화된 시작점 지정하기 항목을 참조하십시오.

하나의 피팅 Figure 내에서 여러 설정을 시도해 볼 수도 있고, 여러 피팅을 만들어서 비교해 볼 수도 있습니다. 여러 피팅을 만든 경우에는 곡선 피팅 앱에서 여러 피팅 유형과 설정을 나란히 비교할 수 있습니다. Create Multiple Fits in Curve Fitting App 항목을 참조하십시오.

프로그래밍 방식으로 모델 유형 선택하기

fit 함수를 호출할 때 라이브러리 모델 이름을 문자열로 지정할 수 있습니다. 예를 들어, 2차식 poly2를 지정하려면 다음을 입력하십시오.

f = fit( x, y, 'poly2' )

사용 가능한 모든 라이브러리 모델 이름을 보려면 곡선과 곡면 피팅 라이브러리 모델 목록 항목을 참조하십시오.

fittype 함수를 사용하여 라이브러리 모델에 대한 fittype 객체를 생성하고, fittypefit 함수에 대한 입력값으로 사용할 수도 있습니다.

설정할 수 있는 파라미터를 확인하려면 fitoptions 함수를 사용하십시오. 예를 들면 다음과 같습니다.

fitoptions(poly2)

다른 예를 보려면 대화형 방식으로 모델 유형 선택하기에 나와 있는 표에서 각 모델 유형의 섹션을 참조하십시오. 모델 생성 및 분석에 사용되는 모든 함수에 대해 자세히 알아보려면 Curve and Surface Fitting 항목을 참조하십시오.

정규화 사용하기

곡선 피팅 앱의 모델 유형 대부분은 정규화 옵션을 공유합니다. 이 옵션을 선택하면 툴은 변수에 Normalize 설정을 적용하여 정규화된 데이터로 다시 피팅합니다. 명령줄에서는 Normalizefitoptions 함수에 대한 입력 인수로 사용할 수 있습니다. fitoptions 함수 도움말 페이지를 참조하십시오.

일반적으로 입력값(예측 변수 데이터라고도 함)은 정규화하는 것이 좋습니다. 이렇게 하면 크기가 서로 다른 변수의 수치적 문제를 완화할 수 있습니다. 예를 들어, 곡면 피팅 입력값이 500 ~ 4500 r/min 범위 내의 엔진 속도이고 0 ~ 1 범위 내의 엔진 부하 백분율이라고 가정하겠습니다. 두 입력값 사이의 크기 차이가 상당히 크기 때문에, 정규화를 사용하면 피팅이 대체로 개선됩니다. 그러나 입력값의 단위나 크기가 같은 경우(예: 지리 데이터의 동방위와 북방위)에는 정규화의 유용함이 줄어듭니다. 이 옵션을 사용하여 입력값을 정규화하면 피팅된 계수의 값은 원래 데이터에 비해 달라집니다.

곡선 또는 곡면을 피팅하여 계수를 추정하는 경우나 계수에 물리적 유의성이 있는 경우에는 정규화 체크박스의 선택을 취소하십시오. 곡선 피팅 앱의 플롯은 정규화 옵션이 설정된 경우나 설정되지 않은 경우 모두 원래 척도를 사용합니다.

명령줄에서 피팅 전에 데이터 정규화 옵션을 설정하려면 디폴트 fit options 구조체를 만들고 Normalizeon으로 설정한 후 다음 이 옵션을 사용해 피팅하십시오.

options = fitoptions;
options.Normal = 'on';
options
options =
    Normalize: 'on'
    Exclude: [1x0 double]
    Weights: [1x0 double]
    Method: 'None'

load census
f1 = fit(cdate,pop,'poly3',options)

피팅 옵션 및 최적화된 시작점 지정하기

피팅 옵션 소개

대화형 방식 피팅 옵션은 이어지는 섹션에 설명되어 있습니다. 동일한 피팅 옵션을 프로그래밍 방식으로 지정하려면 명령줄에서 피팅 옵션 지정하기 항목을 참조하십시오.

곡선 피팅 앱에서 대화형 방식으로 피팅 옵션을 지정하려면 피팅 옵션 버튼을 클릭하여 피팅 옵션 대화 상자를 여십시오. 보간과 평활화 스플라인을 제외한 모든 피팅 범주에는 구성 가능한 피팅 옵션이 있습니다.

사용 가능한 옵션은 선형 모델, 비선형 모델, 비모수적 피팅 유형 중 어느 것을 사용하여 데이터를 피팅하는지에 따라 달라집니다.

  • 다음에서 설명하는 모든 옵션은 비선형 모델에서 사용 가능합니다.

  • 다항식 선형 모델 대화 상자에서 사용 가능한 유일한 피팅 옵션은 하한상한 계수 제약 조건입니다. 다항식의 경우 피팅 옵션 대화 상자를 열지 않고 곡선 피팅 앱에서 로버스트를 설정할 수 있습니다.

  • 비모수적 피팅 유형(보간, 평활화 스플라인 및 lowess)에는 추가적인 피팅 옵션 대화 상자가 없습니다.

단일 항 지수의 피팅 옵션이 다음에 나와 있습니다. 계수 시작값과 제약 조건은 인구 조사 데이터에 해당하는 것입니다.

피팅 방법과 알고리즘

  • 방법 — 피팅 방법.

    방법은 사용하는 라이브러리 또는 사용자 지정 모델에 따라 자동으로 선택됩니다. 선형 모델의 경우 방법은 LinearLeastSquares입니다. 비선형 모델의 경우 방법은 NonlinearLeastSquares입니다.

  • 로버스트 — 로버스트 최소제곱 피팅 방법을 사용할지 여부를 지정합니다.

    • Off — 로버스트 피팅을 사용하지 않습니다(디폴트 값).

    • On — 디폴트 로버스트 방법을 사용하여 피팅합니다(겹제곱 가중치).

    • LAR — 최소 절대 잔차(LAR)를 최소화하여 피팅합니다.

    • Bisquare — 잔차의 제곱합을 최소화하여 피팅하고, 겹제곱 가중치를 사용하여 이상값 가중치를 줄입니다. 대부분의 경우 이는 로버스트 피팅에서 가장 좋은 선택입니다.

  • 알고리즘 — 피팅 절차에 사용되는 알고리즘:

    • Trust-Region — 디폴트 알고리즘으로, 하한 또는 상한 계수 제약 조건을 지정한 경우 반드시 이를 사용해야 합니다.

    • Levenberg-Marquardt — Trust-Region 알고리즘이 적절한 피팅을 생성하지 못하고 계수 제약 조건이 없는 경우 Levenberg-Marquardt 알고리즘을 시도해 보십시오.

유한 차분 파라미터

  • DiffMinChange — 유한 차분 야코비 행렬에 대한 계수의 최소 변화량입니다. 디폴트 값은 10-8입니다.

  • DiffMaxChange — 유한 차분 야코비 행렬에 대한 계수의 최대 변화량입니다. 디폴트 값은 0.1입니다.

DiffMinChangeDiffMaxChange는 다음 방정식에 적용됩니다.

  • 모든 비선형 사용자 지정 수식(즉 사용자가 작성한 비선형 방정식)

  • Curve Fitting Toolbox에서 제공하는 일부 비선형 방정식

반면 DiffMinChangeDiffMaxChange는 선형 방정식에 적용되지 않습니다.

피팅 수렴 조건

  • MaxFunEvals — 허용되는 함수(모델) 실행의 최대 횟수입니다. 디폴트 값은 600입니다.

  • MaxIter — 허용되는 피팅 반복의 최대 횟수입니다. 디폴트 값은 400입니다.

  • TolFun — 함수(모델) 값과 연관된 중지 조건에 사용되는 종료 허용오차입니다. 디폴트 값은 10-6입니다.

  • TolX — 계수와 연관된 중지 조건에 사용되는 종료 허용오차입니다. 디폴트 값은 10-6입니다.

계수 파라미터

  • 계수 — 피팅할 미지의 계수에 대한 기호입니다.

  • 시작점 — 계수 시작값입니다. 디폴트 값은 모델에 따라 달라집니다. 유리, 베이불 및 사용자 지정 모델의 경우 디폴트 값은 [0,1] 범위 내에서 임의로 선택됩니다. 다른 모든 비선형 라이브러리 모델의 경우 시작값은 데이터 세트에 따라 달라지며 발견적 방식으로 계산됩니다. 아래의 최적화된 시작점을 참조하십시오.

  • 하한 — 피팅된 계수의 하한입니다. 이 툴은 Trust-Region 피팅 알고리즘에서만 한계를 사용합니다. 대부분의 라이브러리에서 디폴트 하한은 -Inf입니다. 이는 계수에 제약 조건이 없음을 나타냅니다. 그러나 유한 디폴트 하한을 갖는 모델도 소수 있습니다. 예를 들어, 가우스 모델에는 너비 파라미터가 0보다 작을 수 없다는 제약 조건이 있습니다. 아래의 디폴트 제약 조건을 참조하십시오.

  • 상한 — 피팅된 계수의 상한입니다. 이 툴은 Trust-Region 피팅 알고리즘에서만 한계를 사용합니다. 모든 라이브러리에서 디폴트 상한은 Inf입니다. 이는 계수에 제약 조건이 없음을 나타냅니다.

이러한 피팅 옵션에 대한 자세한 내용은 Optimization Toolbox™ 문서의 lsqcurvefit 함수를 참조하십시오.

최적화된 시작점 및 디폴트 제약 조건

다음 표에는 라이브러리 및 사용자 지정 모델에 대한 디폴트 계수 시작점과 제약 조건이 나와 있습니다. 시작점이 최적화된 경우에는 현재 데이터 세트에 따라 발견적 방식으로 계산됩니다. [0,1] 구간 내에 임의의 시작점이 정의되며, 선형 모델에는 시작점이 필요하지 않습니다.

모델에 제악 조건이 없는 경우, 계수는 하한도 상한도 갖지 않습니다. 피팅 옵션 대화 상자를 사용하여 사용자 고유의 값을 제공하면 디폴트 시작점과 제약 조건을 재정의할 수 있습니다.

디폴트 시작점 및 제약 조건

모델

시작점

제약 조건

사용자 지정 선형

해당 사항 없음

없음

사용자 지정 비선형

임의

없음

지수

최적화됨

없음

푸리에

최적화됨

없음

가우스

최적화됨

ci > 0

다항식

해당 사항 없음

없음

멱급수

최적화됨

없음

유리

임의

없음

사인 합

최적화됨

bi > 0

베이불

임의

a, b > 0

사인 합 모델과 푸리에 급수 모델은 특히 시작점에 민감하며, 최적화된 값은 관련 방정식에서 몇 개 항에 대해서만 정확할 수 있음을 유의하십시오.

명령줄에서 피팅 옵션 지정하기

피팅 전에 디폴트 fit options 구조체를 만들고 데이터를 정규화하도록 옵션을 설정합니다.

options = fitoptions;
options.Normal = 'on';
options
options =
    Normalize: 'on'
    Exclude: [1x0 double]
    Weights: [1x0 double]
    Method: 'None'

Normalize, Exclude 또는 Weights 필드를 설정한 후 다른 피팅 방법에 동일한 옵션을 사용하여 데이터를 피팅하려는 경우 디폴트 fit options 구조체를 수정하는 것이 편리합니다. 예를 들어, 다음과 같이 입력합니다.

load census
f1 = fit(cdate,pop,'poly3',options);
f2 = fit(cdate,pop,'exp1',options);
f3 = fit(cdate,pop,'cubicsp',options);

fit 함수의 세 번째 출력 인수로 데이터 종속적인 피팅 옵션이 반환됩니다. 예를 들어, 평활화 스플라인의 평활화 파라미터는 데이터 종속적입니다.

[f,gof,out] = fit(cdate,pop,'smooth');
smoothparam = out.p
smoothparam =
    0.0089

피팅 옵션을 사용하여 새 피팅에 대한 디폴트 평활화 파라미터를 수정합니다.

options = fitoptions('Method','Smooth','SmoothingParam',0.0098);
[f,gof,out] = fit(cdate,pop,'smooth',options);

피팅 옵션을 사용하는 방법에 대한 자세한 내용은 fitoptions 함수 도움말 페이지를 참조하십시오.