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

대화형 방식 피팅

기본 피팅 UI

MATLAB® 기본 피팅 UI를 사용하면 다음 작업을 대화형 방식으로 수행할 수 있습니다.

  • 스플라인 보간, 형태 보존 보간 또는 최대 10차 다항식을 사용하여 데이터 모델링

  • 데이터에 하나 이상의 피팅을 함께 플로팅

  • 피팅의 잔차 플로팅

  • 모델 계수 계산

  • 잔차의 노름(Norm) 계산(모델이 데이터를 얼마나 잘 피팅하는지 분석하는 데 사용할 수 있는 통계량)

  • 모델을 사용하여 데이터 보간 또는 데이터 바깥쪽에 외삽

  • 대화 상자 외부에서 사용할 수 있도록 계수와 계산된 값을 MATLAB 작업 공간에 저장

  • 새 데이터에 대해 피팅을 다시 계산하고 플롯을 재현하는 MATLAB 코드 생성

참고

기본 피팅 UI는 2차원 플롯에만 사용할 수 있습니다. 고급 피팅과 회귀 분석에 대한 내용은 Curve Fitting Toolbox™ 문서와 Statistics and Machine Learning Toolbox™ 문서를 참조하십시오.

기본 피팅 준비하기

기본 피팅 UI는 피팅 전에 데이터를 오름차순으로 정렬합니다. 데이터 세트의 크기가 크고 값이 오름차순으로 정렬되어 있지 않으면 기본 피팅 UI가 피팅 전에 데이터를 전처리하는 데 시간이 더 오래 걸립니다.

먼저 데이터를 정렬하면 기본 피팅 UI 속도를 높일 수 있습니다. 데이터 벡터 xy에서 정렬된 벡터 x_sortedy_sorted를 생성하려면 다음과 같이 MATLAB sort 함수를 사용하십시오.

[x_sorted, i] = sort(x);
y_sorted = y(i);

기본 피팅 UI 열기

기본 피팅 UI를 사용하려면 먼저 xy 데이터만 생성하는 임의의 MATLAB 플로팅 명령을 사용하여 Figure 창에 데이터를 플로팅해야 합니다.

기본 피팅 UI를 열려면 Figure 창의 맨 위에 있는 메뉴에서 툴 > 기본 피팅을 선택하십시오.

오른쪽 아래 코너에 있는 화살표 버튼 을 두 번 클릭하여 완전히 확장하면 창에 3개의 패널이 표시됩니다. 이러한 패널을 사용하여 다음을 수행할 수 있습니다.

  • 모델과 플로팅 옵션 선택

  • 모델 계수와 잔차의 노름(Norm) 검토 및 내보내기

  • 보간된 값과 외삽 값 검토 및 내보내기

패널을 하나씩 확장하거나 축소하려면 인터페이스의 오른쪽 아래 코너에 있는 화살표 버튼을 클릭하십시오.

예제: 기본 피팅 UI 사용하기

이 예제에서는 기본 피팅 UI를 사용하여 다항 회귀의 코드를 피팅, 시각화, 분석, 저장 및 생성하는 방법을 보여줍니다.

인구 조사 데이터 불러오기와 플로팅하기

파일 census.mat에는 1790년부터 1990년까지 10년 간격으로 조사한 미국 인구 데이터가 들어 있습니다.

데이터를 불러오고 플로팅하려면 MATLAB 프롬프트에 다음 명령을 입력하십시오.

load census
plot(cdate,pop,'ro')

load 명령은 MATLAB 작업 공간에 다음 변수를 추가합니다.

  • cdate — 1790년부터 1990년까지의 연도가 10년 단위로 포함되어 있는 열 벡터입니다. 이 변수는 예측 변수입니다.

  • popcdate의 각 연도별 미국 인구가 포함되어 있는 열 벡터입니다. 이 변수는 응답 변수입니다.

데이터 벡터는 연도를 기준으로 오름차순으로 정렬됩니다. 플롯은 인구를 연도에 대한 함수로 표시합니다.

이제 데이터에 방정식을 피팅하여 시간 경과에 따른 인구 증가를 모델링할 수 있습니다.

3차 다항식 피팅을 통해 인구 조사 데이터 예측하기

  1. Figure 창에서 툴 > 기본 피팅을 선택하여 기본 피팅 대화 상자를 엽니다.

  2. 기본 피팅 대화 상자의 플롯 피팅(Plot fits) 영역에서 3차(cubic) 체크박스를 선택하여 데이터에 3차 다항식을 피팅합니다.

    MATLAB은 선택된 옵션을 사용하여 데이터를 피팅하고, 다음과 같이 그래프에 3차 회귀선을 추가합니다.

    피팅을 계산할 때 MATLAB에서 문제가 발생하고 다음과 같은 경고를 발생시킵니다.

    다항식의 조건이 나쁩니다. 각기 다른 X값을 가진 점을 추가하거나, 차수가 낮은 다항식을 선택하거나, "X 데이터 정규화"를 선택하십시오.

    이 경고는 모델에 대해 계산된 계수가 응답 변수(측정된 인구)의 랜덤 오차에 민감하다는 것을 나타냅니다. 또한 더 적합한 피팅을 얻을 수 있는 방법도 제안합니다.

  3. 3차 피팅을 계속 사용합니다. 인구 조사 데이터에 새로운 관측값을 추가할 수 없으므로, 피팅을 다시 계산하기 전에 값을 z 점수로 변환하여 피팅을 향상시킵니다. 대화 상자에서 x 데이터 정규화(Center and scale X data) 체크박스를 선택하여 기본 피팅 툴이 변환을 수행하도록 합니다.

    데이터 정규화가 동작하는 방식을 알아보려면 기본 피팅 툴이 피팅을 계산하는 방식 알아보기 항목을 참조하십시오.

  4. 이제 방정식을 확인하고 잔차를 표시합니다. x 데이터 정규화(Center and scale X data) 체크박스와 3차(cubic) 체크박스 이외에 다음 옵션도 선택합니다.

    • 수식 표시(Show equations)

    • 잔차 플로팅(Plot residuals)

    • 잔차의 노름(Norm) 표시(Show norm of residuals)

잔차 플로팅(Plot residuals)을 선택하면 서브플롯이 막대 그래프로 생성됩니다. 다음 Figure에는 선택한 기본 피팅 UI 옵션의 결과가 표시되어 있습니다.

이 3차 피팅은 1790년 이전은 제대로 예측하지 못하고 있으며, 인구가 감소하는 것으로 나타납니다. 이 모델은 1790년 이후에는 데이터를 잘 근사하는 것으로 보입니다. 그러나 잔차의 패턴은 이 모델이 최소제곱 피팅의 기본이 되는 정규 오차의 가정을 충족하지 않음을 보여줍니다. 범례에 표시된 data 1 선은 관측된 x(cdate) 및 y(pop) 데이터 값입니다. 3차(cubic) 회귀선은 데이터 값을 정규화한 후의 피팅을 나타냅니다. 툴이 변환된 z 점수를 사용하여 피팅을 계산하더라도, 이 Figure에는 원래 데이터 단위가 표시됩니다.

비교를 위해, 플롯 피팅(Plot fits) 영역에서 다른 다항 방정식을 선택하여 인구 조사 데이터에 피팅해 보십시오.

3차 피팅 파라미터 보기와 저장하기

기본 피팅 대화 상자에서 화살표 버튼 을 클릭하여 수치 결과(Numerical results) 패널에 추정된 계수와 잔차의 노름(Norm)을 표시합니다.

특정 피팅을 보려면 피팅(Fit) 목록에서 해당 피팅을 선택하십시오. 그러면 기본 피팅 대화 상자에 계수가 표시되지만, Figure 창에 피팅이 플로팅되지는 않습니다.

참고

플롯에 피팅을 표시하려면 해당하는 플롯 피팅(Plot fits) 체크박스를 선택해야 합니다.

수치 결과 패널에서 작업 공간에 저장(Save to workspace) 버튼을 클릭하여 피팅 데이터를 MATLAB 작업 공간에 저장합니다. 작업 공간에 피팅 저장 대화 상자가 열립니다.

모든 체크박스를 선택한 상태에서 확인(OK)을 클릭하여 다음과 같이 피팅 파라미터를 MATLAB 구조체로 저장합니다.

fit
fit = 
     type: 'polynomial degree 3'
    coeff: [0.9210 25.1834 73.8598 61.7444]

이제, 기본 피팅 UI 외부에서 MATLAB 프로그래밍에 피팅 결과를 사용할 수 있습니다.

결정계수 R2 도출하기

결정계수, 즉 R 제곱(R2으로 표기)을 계산하여 다항 회귀가 관측된 데이터를 얼마나 잘 예측하는지 확인할 수 있습니다. R2 통계량은 0에서 1 사이의 값으로, 종속 변수의 값을 예측하는 데 있어 독립 변수가 얼마나 유용한지를 측정합니다.

  • R2 값이 0에 가까우면 피팅이 모델 y = constant보다 그다지 개선되지 않음을 나타냅니다.

  • R2 값이 1에 가까우면 독립 변수가 종속 변수의 변량 대부분을 설명하고 있음을 나타냅니다.

R2을 계산하려면 먼저 피팅을 계산한 다음 이 피팅에서 잔차를 구하십시오. 잔차는 관측된 종속 값과 피팅이 예측하는 값 사이의 부호 있는 차이를 의미합니다.

residuals = yobserved - yfitted

기본 피팅 툴은 이 툴이 계산하는 모든 피팅에 대해 잔차를 생성할 수 있습니다. 잔차 그래프를 보려면 잔차 플로팅(Plot residuals) 체크박스를 선택하십시오. 잔차는 막대 플롯, 선 플롯 또는 산점도 플롯으로 표시할 수 있습니다.

잔차 값을 구한 후에는 작업 공간에 저장할 수 있으며, 그런 다음 R2을 계산할 수 있습니다. 이 예제의 윗부분을 완료하여 인구 조사 데이터에 3차 다항식을 피팅한 후 다음 단계를 수행하십시오.

3차 피팅에 대해 잔차 데이터와 R2 계산하기

  1. 수치 결과 탭이 표시되어 있지 않으면 오른쪽 아래의 화살표 버튼 을 클릭하여 이 탭을 엽니다.

  2. 피팅(Fit) 드롭다운 메뉴에 3차(cubic)가 표시되어 있지 않으면 이 옵션을 선택합니다.

  3. 작업 공간에 저장(Save to workspace)을 클릭하여 피팅 계수, 잔차의 노름(Norm), 잔차를 저장합니다.

    3개의 체크박스와 3개의 텍스트 필드가 있는 작업 공간에 피팅 저장 대화 상자가 열립니다.

  4. 3개의 체크박스를 모두 선택하여 피팅 계수, 잔차의 노름, 잔차 값을 저장합니다.

  5. 저장된 변수를 3차 피팅에 속하는 것으로 표시합니다. 각 디폴트 이름에 3을 추가하여 변수 이름을 변경합니다(예: fit3, normresid3, resids3). 대화 상자의 값을 다음 그림과 유사하게 지정해야 합니다.

  6. 확인(OK)을 클릭합니다. 기본 피팅이 잔차를 숫자로 구성된 열 벡터로 저장하고, 피팅 계수는 구조체로, 잔차의 노름은 스칼라로 저장합니다.

    기본 피팅이 잔차의 노름에 대해 계산한 값은 12.2380입니다. 이 수치는 3차 피팅의 잔차 제곱합의 제곱근입니다.

  7. 선택적으로, 기본 피팅 툴이 제공한 잔차의 노름 값을 확인할 수 있습니다. 다음을 입력하여, 방금 저장한 resids3 배열에서 직접 잔차의 노름을 계산합니다.

    mynormresid3 = sum(resids3.^2)^(1/2)
    
    mynormresid3 =
        12.2380

  8. 종속 변수 pop총 제곱합을 계산하여 R2 값을 구합니다. 총 제곱합은 변수의 평균과 각 값의 차이의 제곱합입니다. 예를 들어, 다음 코드를 사용합니다.

    SSpop = (length(pop)-1) * var(pop)
    
    SSpop =
        1.2356e+005
    
    var(pop)은 인구 벡터의 분산을 계산합니다. 이 분산값을 관측값 개수에서 1을 뺀 값과 곱하여 자유도를 설명합니다. 총 제곱합과 잔차의 노름은 모두 양의 스칼라입니다.

  9. 이제, 다음과 같이 normresid3의 제곱과 SSpop을 사용하여 R2을 계산합니다.

    rsqcubic = 1 - normresid3^2 / SSpop
    
    rsqcubic =
        0.9988
    

  10. 마지막으로, 선형 피팅에 대해 R2을 계산하고 방금 도출한 3차 피팅에 대한 R2 값과 이 값을 비교합니다. 기본 피팅 UI에서도 선형 피팅 결과를 제공합니다. 선형 결과를 얻으려면 2~6단계를 반복하되, 다음과 같이 약간 다르게 작업을 수행하십시오.

    • 최소제곱 선형 회귀 계수와 통계량을 계산하려면 수치 결과 창의 피팅(Fit) 드롭다운에서 3차(cubic) 대신 1차(linear)를 선택하십시오.

    • 작업 공간에 저장 대화 상자에서 각 변수 이름에 1을 추가하여 이 변수가 선형 피팅에서 도출된 것임을 표시하고 확인(OK)을 클릭합니다. 이제 작업 공간에는 변수 fit1, normresid1, resids1이 존재합니다.

    • 9단계에서 3차 피팅에 대해 수행한 것처럼 변수 normresid1(98.778)을 사용하여 선형 피팅에 대해 R2을 계산합니다.

      rsqlinear = 1 - normresid1^2 / SSpop
      
      rsqlinear =
          0.9210
      

    이 결과는 인구 데이터의 선형 최소제곱 피팅이 인구 데이터 분산의 92.1%를 설명한다는 것을 나타냅니다. 이 데이터의 3차 피팅은 해당 분산의 99.9%를 설명하므로, 3차 피팅이 더 잘 예측하는 것으로 보입니다. 그러나, 3차 피팅은 3개의 변수(x, x2, x3)를 사용하여 예측하기 때문에 기본 R2 값은 피팅이 얼마나 견고한지를 완전히 반영하지 못합니다. 다변량 피팅의 적합도를 평가하는 데 더 적절한 측정값은 조정된 R2입니다. 조정된 R2을 계산하고 사용하는 방법에 대해서는 잔차와 피팅의 적합도(Goodness of Fit) 항목을 참조하십시오.

주의

R2은 다항식 모델이 데이터에 얼마나 적절한지가 아니라 다항 방정식이 종속 변수를 얼마나 잘 예측하는지를 측정합니다. 본질적으로 예측 불가능한 데이터를 분석할 경우, R2 값이 작으면 독립 변수가 종속 변수를 정확히 예측하지 못함을 나타냅니다. 그러나, 이것이 반드시 피팅이 잘못되었다는 의미는 아닙니다.

선형 피팅에 대해 잔차 데이터와 R2 계산하기.  다음 예제에서는 기본 피팅 UI를 사용하여 선형 피팅을 수행하고, 그 결과를 작업 공간에 저장한 후, 선형 피팅에 대해 R2을 계산합니다. 그런 다음 선형 피팅의 R2 값을 예제 3차 피팅에 대해 잔차 데이터와 R2 계산하기에서 도출한 3차 피팅의 R2 값과 비교할 수 있습니다.

  1. 수치 결과 탭이 표시되어 있지 않으면 오른쪽 아래의 화살표 버튼 을 클릭하여 이 탭을 엽니다.

  2. 플롯 피팅(Plot fits) 영역에서 1차(linear) 체크박스를 선택합니다.

  3. 피팅(Fit) 드롭다운 메뉴에 1차(linear)가 표시되어 있지 않으면 이 옵션을 선택합니다. 계수 및 잔차의 노름(Norm) 영역에 선형 피팅에 대한 통계량이 표시됩니다.

  4. 작업 공간에 저장(Save to workspace)을 클릭하여 피팅 계수, 잔차의 노름(Norm), 잔차를 저장합니다.

    3개의 체크박스와 3개의 텍스트 필드가 있는 작업 공간에 피팅 저장 대화 상자가 열립니다.

  5. 3개의 체크박스를 모두 선택하여 피팅 계수, 잔차의 노름, 잔차 값을 저장합니다.

  6. 저장된 변수를 선형 피팅에 속하는 것으로 표시합니다. 각 디폴트 이름에 1을 추가하여 변수 이름을 변경합니다(예: fit1, normresid1, resids1).

  7. 확인(OK)을 클릭합니다. 기본 피팅이 잔차를 숫자로 구성된 열 벡터로 저장하고, 피팅 계수는 구조체로, 잔차의 노름은 스칼라로 저장합니다.

    기본 피팅이 잔차의 노름에 대해 계산한 값은 98.778입니다. 이 수치는 선형 피팅의 잔차 제곱합의 제곱근입니다.

  8. 선택적으로, 기본 피팅 툴이 제공한 잔차의 노름 값을 확인할 수 있습니다. 다음을 입력하여, 방금 저장한 resids1 배열에서 직접 잔차의 노름을 계산합니다.

    mynormresid1 = sum(resids1.^2)^(1/2)
    
    mynormresid1 =
        98.7783

  9. 종속 변수 pop총 제곱합을 계산하여 R2 값을 구합니다. 총 제곱합은 변수의 평균과 각 값의 차이의 제곱합입니다. 예를 들어, 다음 코드를 사용합니다.

    SSpop = (length(pop)-1) * var(pop)
    
    SSpop =
        1.2356e+005
    
    var(pop)은 인구 벡터의 분산을 계산합니다. 이 분산값을 관측값 개수에서 1을 뺀 값과 곱하여 자유도를 설명합니다. 총 제곱합과 잔차의 노름은 모두 양의 스칼라입니다.

  10. 이제, 다음과 같이 normresid1의 제곱과 SSpop을 사용하여 R2을 계산합니다.

    rsqlinear = 1 - normresid1^2 / SSpop
    
    rsqcubic =
        0.9210
    

    이 결과는 인구 데이터의 선형 최소제곱 피팅이 인구 데이터 분산의 92.1%를 설명한다는 것을 나타냅니다. 이 데이터의 3차 피팅은 해당 분산의 99.9%를 설명하므로, 3차 피팅이 더 잘 예측하는 것으로 보입니다. 그러나 3차 피팅에는 4개의 계수(x, x2, x3, 상수)가 있는 반면, 선형 피팅에는 2개의 계수(x와 상수)가 있습니다. 단순 R2 통계량은 다른 자유도를 설명하지 않습니다. 다항식 피팅을 평가하는 데 더 적절한 측정값은 조정된 R2입니다. 조정된 R2을 계산하고 사용하는 방법에 대해서는 잔차와 피팅의 적합도(Goodness of Fit) 항목을 참조하십시오.

주의

R2은 다항식 모델이 데이터에 얼마나 적절한지가 아니라 다항 방정식이 종속 변수를 얼마나 잘 예측하는지를 측정합니다. 본질적으로 예측 불가능한 데이터를 분석할 경우, R2 값이 작으면 독립 변수가 종속 변수를 정확히 예측하지 못함을 나타냅니다. 그러나, 이것이 반드시 피팅이 잘못되었다는 의미는 아닙니다.

인구 값 보간하기와 외삽하기

3차 모델을 사용하여 1965년(원래 데이터에 제공되지 않은 연도)의 미국 인구를 보간한다고 가정하겠습니다.

  1. 기본 피팅 대화 상자에서 버튼을 클릭하여 현재 피팅을 실행할 x 값의 벡터를 지정합니다.

  2. 값 또는 유효한 MATLAB 표현식(예: x, 1:2:10 또는 [10,15])을 입력하십시오 필드에 다음 값을 입력합니다.

    1965
    

    참고

    정규화되지 않은 x 값을 사용하십시오. 3차 다항식 피팅을 통해 인구 조사 데이터 예측하기에서 x 값을 스케일링하여 계수를 구하도록 선택했더라도 먼저 정규화할 필요는 없습니다. 기본 피팅 툴이 필요한 조정을 자동으로 수행합니다.

  3. 실행(Evaluate)을 클릭합니다.

    x 값과 f(x)의 대응값이 피팅에서 계산되어 아래와 같이 테이블에 표시됩니다.

  4. 실행된 결과 플로팅(Plot evaluated results) 체크박스를 선택하여 보간된 값을 아래와 같이 다이아몬드 마커로 표시합니다.

  5. 작업 공간에 저장(Save to workspace)을 클릭하여 1965년의 보간된 인구를 MATLAB 작업 공간에 저장합니다.

    그러면 다음 대화 상자가 열리고, 여기에서 변수 이름을 지정합니다.

  6. 확인(OK)을 클릭합니다. 다음 섹션 결과를 재현하는 코드 파일 생성하기에 나와 있는 단계를 수행하려면 Figure 창을 열어 두십시오.

결과를 재현하는 코드 파일 생성하기

기본 피팅 세션을 완료한 후에는 새 데이터에 대해 피팅을 다시 계산하고 플롯을 재현하는 MATLAB 코드를 생성할 수 있습니다.

  1. Figure 창에서 파일 > 코드 생성을 선택합니다.

    그러면 함수가 생성되어 MATLAB 편집기에 표시됩니다. 이 코드는 기본 피팅 대화 상자에서 대화형 방식으로 수행한 작업을 프로그래밍 방식으로 재현하는 방법을 보여줍니다.

  2. createfigure의 첫 라인에서 함수 이름을 좀 더 구체적인 이름(예: censusplot)으로 변경합니다. 코드 파일 이름을 censusplot.m으로 지정하여 현재 폴더에 저장합니다. 함수는 다음 라인으로 시작합니다.

    function censusplot(X1, Y1, valuesToEvaluate1)

  3. 다음을 입력하여 무작위로 섭동된 새로운 인구 조사 데이터를 생성합니다.

    randpop = pop + 10*randn(size(pop));
  4. 다음을 입력하여 새 데이터로 플롯을 재현하고 피팅을 다시 계산합니다.

    censusplot(cdate,randpop,1965)

    원래 그래프에 플로팅된 x,y 값(data 1)과 마커의 x 값 등 세 개의 입력 인수가 필요합니다.

    다음 Figure는 생성된 코드로 만든 플롯을 표시합니다. 새 플롯은 y 데이터 값, 3차 피팅 방정식, 막대 그래프의 잔차 값을 제외하고 코드를 생성한 원래 Figure의 모양과 예상대로 일치합니다.

기본 피팅 툴이 피팅을 계산하는 방식 알아보기

기본 피팅 툴은 polyfit 함수를 호출하여 다항식 피팅을 계산합니다. 그리고 polyval 함수를 호출하여 피팅을 실행합니다. polyfit은 입력값을 분석하여 요청된 피팅 차수에 대해 데이터 조건이 좋은지 여부를 확인합니다.

조건이 나쁜 데이터가 발견되면, polyfit은 가능한 한 적합하게 회귀를 계산하지만 피팅을 개선할 여지가 있다는 내용의 경고를 반환합니다. 기본 피팅 예제 섹션 3차 다항식 피팅을 통해 인구 조사 데이터 예측하기에 이 경고가 표시되어 있습니다.

모델의 신뢰성을 개선할 수 있는 한 가지 방법은 데이터 점을 추가하는 것입니다. 그러나 데이터 세트에 항상 관측값을 추가할 수 있는 것은 아닙니다. 또 다른 방법은 예측 변수를 변환하여 정규화하는 것입니다. (이 예제에서 예측 변수는 인구 조사 날짜로 구성된 벡터입니다.)

polyfit 함수는 다음과 같이 z 점수를 계산하여 정규화합니다.

z=xμσ

여기서 x는 예측 변수 데이터이고, μ는 x의 평균이며, σ는 x의 표준편차입니다. z 점수는 데이터의 평균을 0으로 만들고 표준편차를 1로 만듭니다. 기본 피팅 UI에서 x 데이터 정규화(Center and scale X data) 체크박스를 선택하여 예측 변수 데이터를 z 점수로 변환합니다.

정규화 후에는 모델 계수가 y 데이터에 대해 z의 함수로 계산됩니다. 이러한 계수는 y에 대해 x의 함수로 계산된 계수와 다르며 더 견고합니다. 모델의 형식과 잔차의 노름(Norm)은 변경되지 않습니다. 기본 피팅 UI는 피팅이 원래 x 데이터와 동일한 스케일로 플로팅되도록 z 점수를 자동으로 다시 스케일링합니다.

정규화된 데이터가 최종 플롯을 생성하기 위한 중개자로 사용되는 방식을 이해하려면 명령 창에서 다음 코드를 실행하십시오.

close
load census
x = cdate;
y = pop;
z = (x-mean(x))/std(x); % Compute z-scores of x data

plot(x,y,'ro') % Plot data as red markers
hold on        % Prepare axes to accept new graph on top

zfit = linspace(z(1),z(end),100);
pz = polyfit(z,y,3); % Compute conditioned fit
yfit = polyval(pz,zfit);

xfit = linspace(x(1),x(end),100);
plot(xfit,yfit,'b-') % Plot conditioned fit vs. x data

아래 그림과 같이, 정규화된 3차 다항식이 파란색 선으로 플로팅됩니다.

코드에서 z의 계산은 데이터를 정규화하는 방법을 보여줍니다. polyfit 함수는 다음과 같이 사용자가 이 함수를 호출할 때 세 개의 반환 인수를 제공하는 경우 자체적으로 변환을 수행합니다.

[p,S,mu] = polyfit(x,y,n)
반환된 회귀 파라미터 p는 이제 정규화된 x를 기반으로 합니다. 반환된 벡터 mu에는 x의 평균과 표준편차가 포함됩니다. 자세한 내용은 polyfit 함수 도움말 페이지를 참조하십시오.