22
수치해석 수치해석 Numerical Analysis Numerical Analysis 161009 161009 Ch15. Ch15. General Linear General Linear Least Least-Squares and Nonlinear Squares and Nonlinear Regression Regression

Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

수치해석수치해석Numerical AnalysisNumerical Analysis

161009161009

Ch15. Ch15. General LinearGeneral LinearCh15. Ch15. General LinearGeneral LinearLeastLeast--Squares and Nonlinear Squares and Nonlinear

RegressionRegression

Page 2: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

15.1 15.1 15.1 15.1 다항식 회귀분석 (1/3)(1/3)(1/3)(1/3)

일부 데이터들은 직선으로 표현하기에

는 불충분하며, 이러한 경우 곡선을 이

용하여 데이터를 표현하는 것이 낫다.

다항식 회귀분석 : 최소제곱 방법을 확

Numerical AnalysisNumerical Analysis

다항식 회귀분석 : 최소제곱 방법을 확

장하여 고차다항식을 데이터에 접합시

킨다.

Page 3: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

2차 다항식을 데이터에 접합시킨다고 가정하자.

잔차의 제곱합 :

다항식의 각 미지계수에 대하여 위 식의 미분을 취하고, 각 식을 0으로정리하면 선형 연립 방정식을 구할 수 있다.

15.1 15.1 15.1 15.1 다항식 회귀분석 (2/3)(2/3)(2/3)(2/3)

2

0 1 2y a a x a x e= + + +

Sr = ei2

i=1

n

∑ = yi − a0 − a1xi − a2xi2( )2

i=1

n

Numerical AnalysisNumerical Analysis

정리하면 선형 연립 방정식을 구할 수 있다.

2

0 1 2

0

2

0 1 2

1

2 2

0 1 2

2

2 ( )

2 ( )

2 ( )

ri i i

ri i i i

ri i i i

Sy a a x a x

a

Sx y a a x a x

a

Sx y a a x a x

a

∂= − − − −

∂= − − − −

∂= − − − −

( ) ( )( ) ( ) ( )( ) ( ) ( )

2

0 1 2

2 3

0 1 2

2 3 4 2

0 1 2

( ) i i i

i i i i i

i i i i i

n a x a x a y

x a x a x a x y

x a x a x a x y

+ + =

+ + =

+ + =

∑ ∑ ∑∑ ∑ ∑ ∑∑ ∑ ∑ ∑

Page 4: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

다음의 m차 다항식으로 쉽게 확장

앞의 해석을 확장하면, m차 다항식의 계수를 결정하는 m+1개의선형연립방정식을 푸는 문제와 같다

15.1 15.1 15.1 15.1 다항식 회귀분석 (3/3)(3/3)(3/3)(3/3)

s =Sr

2

0 1 2

m

my a a x a x a x e= + + + + +L

표준오차

Numerical AnalysisNumerical Analysis

sy / x =Sr

n − m+1( )

r2 =St − SrSt

표준오차

결정계수

Page 5: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 15.1 (다항식회귀분석) (1/3)

� Q. 다음 표의 처음 두 열의 데이터에 2차 다항식을 접합

시켜라.

0 2.1 544.44 0.14332

ix iy ( )22

0 1 2i i iy a a x a x− − −2( )iy y−

Numerical AnalysisNumerical Analysis

12345

7.713.627.240.961.1

314.47140.03

3.12239.22

1272.11

1.002861.081600.804870.619590.09434

Σ 152.6 2513.39 3.74657

Page 6: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 15.1 (다항식회귀분석) (2/3)

Sol) 주어진 데이터로부터 다음을 계산할 수 있다.

4

2 2

3

2 15 979

6 152.6 585.6

2.5 55 2488.8

25.43 225

i i

i i i

i i i

i

m x x

n y x y

x x x y

y x

= = =

= = =

= = =

= =

∑ ∑∑ ∑∑ ∑∑

Numerical AnalysisNumerical Analysis

따라서 선형연립방정식은

최소제곱 2차 다항식은

0

1

2

6 15 55 152.6

15 55 225 585.6

55 225 979 2488.8

a

a

a

=

22.4786 2.3593 1.8607y x x= + +

Page 7: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 15.1 (다항식회귀분석) (3/3)

다항식 회귀분석에 기초한 추정값의 표준오차 :

결정계수 :

( )/

3.746571.1175

6 2 1y xs = =

− +

Numerical AnalysisNumerical Analysis

2 2513.39 3.746570.99851

2513.39

0.99925

r

r

−= =

→ = (상관계수)

Page 8: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

15.2 15.2 15.2 15.2 다중다중다중다중 선형회귀분석선형회귀분석선형회귀분석선형회귀분석 (1/2)(1/2)(1/2)(1/2)

� y가 두 개 이상의 독립변수(x1, x2, …)에 대해 선형함수인

경우

(2차원의 경우)

• 회귀분석 평면

• 잔차의 제곱합

0 1 1 2 2y a a x a x e= + + +

Numerical AnalysisNumerical Analysis

• 잔차의 제곱합

• 미분하여 각 식이 0이 되도록 하면

( )∑∑==

−−−==n

i

iii

n

i

ir xaxaayeS1

2

,22,110

1

2

0 1 1, 2 2,

0

1, 0 1 1, 2 2,

1

2, 0 1 1, 2 2,

2

2 ( )

2 ( )

2 ( )

ri i i

ri i i i

ri i i i

Sy a a x a x

a

Sx y a a x a x

a

Sx y a a x a x

a

∂= − − − −

∂= − − − −

∂= − − − −

1, 2, 1

2

1, 1, 1, 2, 2 1,

2

2, 1, 2, 2, 3 2,

i i i

i i i i i i

i i i i i i

n x x a y

x x x x a x y

x x x x a x y

=

∑ ∑ ∑∑ ∑ ∑ ∑∑ ∑ ∑ ∑

Page 9: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

(m차원의 경우)

• 회귀분석 평면

• 잔차의 제곱합

15.2 15.2 15.2 15.2 다중다중다중다중 선형회귀분석선형회귀분석선형회귀분석선형회귀분석 (2/2)(2/2)(2/2)(2/2)

S

0 1 1 2 2 m my a a x a x a x e= + + + + +L

Sr = ei2

i=1

n

∑ = yi − a0 − a1x1,i − a2x2,i −Lamxm,i( )2i=1

n

Numerical AnalysisNumerical Analysis

• 표준오차

• 결정계수

sy / x =Sr

n− m+1( )

r2 =St − SrSt

Page 10: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 15.2 (다중 선형회귀분석) (1/2)

� Q. 다음 데이터는 y = 5+4x1-3x2 로부터 계산되었다. 이

들 데이터에 다중 선형회귀분석을 수행하라.

0 0 5

2x1x y

Numerical AnalysisNumerical Analysis

22.5147

12362

10903

27

Page 11: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

Sol) 주어진 데이터로부터 다음을 계산할 수 있다.

예제 15.2 (다중 선형회귀분석) (2/2)

51090327

02

2.5 147

012362

04

6.2511649

0149364

02532414

020

22.5012189

0101801854

y1x 2x

2

1x2

2x 1 2x x 1x y 2x y

Numerical AnalysisNumerical Analysis

따라서 선형연립방정식은 다음과 같다.

54 16.5 14 76.25 54 48 243.5 100

0

1

2

6 16.5 14 54

16.5 76.25 48 243.5

14 48 54 100

a

a

a

=

0 1 25, 4, 3a a a= = = −

Page 12: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

15.3 15.3 15.3 15.3 일반적인일반적인일반적인일반적인 선형최소제곱선형최소제곱선형최소제곱선형최소제곱 (1/3)(1/3)(1/3)(1/3)

� 단순선형회귀분석, 다항식 회귀분석, 그리고 다중선형

회귀분석은 모두 일반적인 선형최소제곱 모델에 포함

여기서 z0, z1,..., zm 은 m+1 개의 기저함수들이다.

y = a0z0 + a1z1 + a2z2 +Lamzm + e

Numerical AnalysisNumerical Analysis

• 단순선형회귀분석과 다중선형회귀분석:

• 다항식 회귀분석

-기저함수는 계수 a0, a1..을 제외한 어떤 함수도 가능하다.

0 1 1 2 21, , , , m mz z x z x z x= = = … =

2

0 1 21, , , , m

mz z x z x z x= = = … =

Page 13: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

15.3 15.3 15.3 15.3 일반적인일반적인일반적인일반적인 선형최소제곱선형최소제곱선형최소제곱선형최소제곱 (2/3)(2/3)(2/3)(2/3)

• 일반적인 선형최소제곱 방정식은 행렬로 변환가능

여기서, y = 종속변수의 측정값, a = 미지 계수, e = 잔차, 그리고 z는,

y{ }= Z[ ] a{ }+ e{ }

Z[ ]=

z01 z11 L zm1z02 z12 L zm2

Numerical AnalysisNumerical Analysis

zji: i 점에서 계산된 j번째 기저 함수, m: 변수의 개수, n: 데이터 점의 개수

• 일반적으로 [Z]는 정방행렬이 아님.

• 잔차의 제곱합 :

Z[ ]= 02 12 m2

M M O Mz0n z1n L zmn

Sr = ei2

i=1

n

∑ = yi − a jz jij=0

m

2

i=1

n

Page 14: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

15.3 15.3 15.3 15.3 일반적인일반적인일반적인일반적인 선형최소제곱선형최소제곱선형최소제곱선형최소제곱 (3/3)(3/3)(3/3)(3/3)

• 각 계수에 대하여 미분을 취하고, 그 결과를 0으로 놓으면

� 결정계수 :

Z[ ]T Z[ ][ ] a{ }= Z[ ]T y{ }{ }

( )( )

2

2

2

ˆ1 1

i it r r

t t i i

y yS S Sr

S S y y

−−= = − = −

∑∑

= 최소제곱접합의 예측값y

Numerical AnalysisNumerical Analysis

� 최적접합 곡선과 데이터 사이의 잔차 :

• cf) Pseudo Inverse

( )t t i iS S y y−∑

{ } [ ]{ }y Z a−

Page 15: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 15.3 (다항식회귀분석) (1/2)

� Q. 예제 15.1을 행렬 연산을 사용하여 반복하라.

Sol)

>> >> >> >> x= [0 1 2 3 4 5]' ; x= [0 1 2 3 4 5]' ; x= [0 1 2 3 4 5]' ; x= [0 1 2 3 4 5]' ; %접합시킬 데이터를 입력함>> >> >> >> y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;>> >> >> >> z = [ones(size(x)) x x.^2] z = [ones(size(x)) x x.^2] z = [ones(size(x)) x x.^2] z = [ones(size(x)) x x.^2] %[z]행렬을 생성함z = z = z = z =

1 0 01 0 01 0 01 0 0

Numerical AnalysisNumerical Analysis

1 0 01 0 01 0 01 0 01 1 11 1 11 1 11 1 11 2 41 2 41 2 41 2 41 3 91 3 91 3 91 3 91 4 161 4 161 4 161 4 161 5 25 1 5 25 1 5 25 1 5 25

>> >> >> >> z'*z z'*z z'*z z'*z % [z]T[z]는 정규방정식에 대한 계수행렬임을 증명ansansansans = = = =

6 15 556 15 556 15 556 15 5515 55 25515 55 25515 55 25515 55 25555 225 979 55 225 979 55 225 979 55 225 979

Page 16: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 14.3 (다항식회귀분석) (2/2)

>> >> >> >> a = (z'*z)a = (z'*z)a = (z'*z)a = (z'*z)\\\\(z‘*y) (z‘*y) (z‘*y) (z‘*y) % 최소제곱 2차 다항식의 계수를구함(식14.10) ansansansans = = = =

2.47862.47862.47862.47862.35932.35932.35932.35931.8607 1.8607 1.8607 1.8607

>> >> >> >> SrSrSrSr = sum((y= sum((y= sum((y= sum((y----z*a).^2) z*a).^2) z*a).^2) z*a).^2) % 잔차의 합 계산

Numerical AnalysisNumerical Analysis

SrSrSrSr = = = = 3.74663.74663.74663.7466

>> >> >> >> r2 = 1r2 = 1r2 = 1r2 = 1----Sr/sum((ySr/sum((ySr/sum((ySr/sum((y----mean(y)).^2) mean(y)).^2) mean(y)).^2) mean(y)).^2) % r2 계산r2 = r2 = r2 = r2 =

0.99850.99850.99850.9985>> >> >> >> syxsyxsyxsyx = = = = sqrtsqrtsqrtsqrt((((SrSrSrSr/(length(x)/(length(x)/(length(x)/(length(x)----length(a))) length(a))) length(a))) length(a))) % sy/x 계산syxsyxsyxsyx = = = =

1.11751.11751.11751.1175

Page 17: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

15.4 15.4 15.4 15.4 QR QR QR QR 분해법과분해법과분해법과분해법과 역슬래시역슬래시역슬래시역슬래시 연산자연산자연산자연산자

� 정규방정식은 불량조건을 가질 수 있으므로, 반올림오차

에 민감

� QR 분해법과 특이값 분리(Singluar Value

Decomposition)

• 다음의 경우 MATLAB에서 QR 분해법이 자동적으로 실행

Numerical AnalysisNumerical Analysis

• 다음의 경우 MATLAB에서 QR 분해법이 자동적으로 실행

(1) 다항식을 접합시키기 위해 내장함수 polyfit을 실행할 때

(2) 과결정 시스템을 왼쪽 나눗셈으로 풀 때

Cf) study QR decomposition, SVD

Page 18: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 15.4 (polyfit과 왼쪽 나눗셈을 이용한 다항식회귀분석)

� Q. 예제 15.3을 polyfit과 왼쪽 나눗셈을 사용하여 반복.

Sol)

>> >> >> >> x= [0 1 2 3 4 5]' ; x= [0 1 2 3 4 5]' ; x= [0 1 2 3 4 5]' ; x= [0 1 2 3 4 5]' ; %접합시킬 데이터를 입력함>> >> >> >> y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;

Numerical AnalysisNumerical Analysis

>> >> >> >> y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;>> >> >> >> z = [ones(size(x)) x x.^2] z = [ones(size(x)) x x.^2] z = [ones(size(x)) x x.^2] z = [ones(size(x)) x x.^2] %[z]행렬을 생성함>> >> >> >> a = a = a = a = polyfitpolyfitpolyfitpolyfit(x,y,2)(x,y,2)(x,y,2)(x,y,2) % % % % polyfit 함수 사용a =

1.8607 2.3593 2.4786>> >> >> >> a =za =za =za =z\\\\yyyy % 역슬래시 사용a =

2.47862.35931.8607

Page 19: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

15.5 15.5 15.5 15.5 비선형비선형비선형비선형 회귀분석회귀분석회귀분석회귀분석 (1/2)(1/2)(1/2)(1/2)

� 비선형 회귀분석이 필요한 경우

• 데이터를 접합할 때, 일반적인 선형최소제곱 모델의 형태로 조작할

수 없는 경우가 존재. Ex)

• 선형최소제곱 모델의 형태로 조작하여 계산된 선형 접합은 원변수

가 아닌 변환된 변수에 대하여 최선.

1

0 (1 )a x

y a e e−= − +

Numerical AnalysisNumerical Analysis

� 비선형 회귀 분석

• 비선형모델은 매개변수가 비선형적으로 종속된다.

• 비선형회귀분석도 잔차의 제곱합을 최소화시키는 매개변수를 구하

는 데 근거하지만, 비선형 경우의 해는 반복적인 방법에 의해서만

구할 수 있다

Page 20: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

15.5 15.5 15.5 15.5 비선형비선형비선형비선형 회귀분석회귀분석회귀분석회귀분석 (2/2)(2/2)(2/2)(2/2)

� 비선형회귀분석을 위한 방법 :

• Gauss-Newton법 (Chapra and Canale, 2002)

� Taylor 급수 이용

• 최소제곱접합을 직접 구하기 위하여 최적화기법 이용

ex) 2

( , ) (1 )n

a xf a a y a e

− = − −∑

Numerical AnalysisNumerical Analysis

함수를 최소화시키는 a0와 a1을 결정

1

0 1 0

1

( , ) (1 )ia x

i

i

f a a y a e−

=

= − − ∑

[x, fval] =fminsearch(fun, x0, options, p1, p2, …)

Page 21: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 15.5 (MATLAB을 이용한 비선형회귀분석) (1/2)

� Q. 예제 14.6에서 로그를 이용한 선형화를 통하여 표

14.1의 데이터에 멱모델을 계산.

이 예제를 반복하되 비선형회귀분석을 사용하라. 계수에

대한 초기조건은 1을 사용한다.

1.98420.2741 F v=

v (m/s) 10 20 30 40 50 60 70 80

F (N) 25 70 380 550 610 1220 830 1450

Numerical AnalysisNumerical Analysis

대한 초기조건은 1을 사용한다.

Page 22: Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis 161009 Ch15. General Linear LeastLeast--Squares and Nonlinear Squares and Nonlinear Regression

예제 15.5 (MATLAB을 이용한 비선형회귀분석) (2/2)

Sol)function f = function f = function f = function f = fSSRfSSRfSSRfSSR(a, (a, (a, (a, xmxmxmxm, , , , ymymymym))))ypypypyp = a(1)*= a(1)*= a(1)*= a(1)*xm.^axm.^axm.^axm.^a(2);(2);(2);(2);F = sum((F = sum((F = sum((F = sum((ymymymym----ypypypyp).^2);).^2);).^2);).^2);

>> >> >> >> x = [10 20 30 40 50 60 70 80];x = [10 20 30 40 50 60 70 80];x = [10 20 30 40 50 60 70 80];x = [10 20 30 40 50 60 70 80];>> >> >> >> y = [25 70 380 550 610 1220 830 1450]; y = [25 70 380 550 610 1220 830 1450]; y = [25 70 380 550 610 1220 830 1450]; y = [25 70 380 550 610 1220 830 1450]; >>>>>>>>fminsearchfminsearchfminsearchfminsearch(@(@(@(@fSSRfSSRfSSRfSSR, [1, 1], [ ], x, y), [1, 1], [ ], x, y), [1, 1], [ ], x, y), [1, 1], [ ], x, y)ansansansans =

제곱합을 계산하기 위한

M-파일 함수

Numerical AnalysisNumerical Analysis

ansansansans =2.5384 1.4359

1.43592.5384 F v=

1.98420.2741 F v=