Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis...
Transcript of Ch15. General Linear LeastLeast--Squares and Nonlinear ... · 수치해석 Numerical Analysis...
수치해석수치해석Numerical AnalysisNumerical Analysis
161009161009
Ch15. Ch15. General LinearGeneral LinearCh15. Ch15. General LinearGeneral LinearLeastLeast--Squares and Nonlinear Squares and Nonlinear
RegressionRegression
15.1 15.1 15.1 15.1 다항식 회귀분석 (1/3)(1/3)(1/3)(1/3)
일부 데이터들은 직선으로 표현하기에
는 불충분하며, 이러한 경우 곡선을 이
용하여 데이터를 표현하는 것이 낫다.
다항식 회귀분석 : 최소제곱 방법을 확
Numerical AnalysisNumerical Analysis
다항식 회귀분석 : 최소제곱 방법을 확
장하여 고차다항식을 데이터에 접합시
킨다.
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
+ + =
+ + =
+ + =
∑ ∑ ∑∑ ∑ ∑ ∑∑ ∑ ∑ ∑
다음의 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
표준오차
결정계수
예제 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
예제 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= + +
예제 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
−= =
→ = (상관계수)
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
=
∑ ∑ ∑∑ ∑ ∑ ∑∑ ∑ ∑ ∑
(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
예제 15.2 (다중 선형회귀분석) (1/2)
� Q. 다음 데이터는 y = 5+4x1-3x2 로부터 계산되었다. 이
들 데이터에 다중 선형회귀분석을 수행하라.
0 0 5
2x1x y
Numerical AnalysisNumerical Analysis
22.5147
12362
10903
27
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= = = −
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= = = … =
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
∑
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−
예제 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
예제 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
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
예제 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
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
� 비선형 회귀 분석
• 비선형모델은 매개변수가 비선형적으로 종속된다.
• 비선형회귀분석도 잔차의 제곱합을 최소화시키는 매개변수를 구하
는 데 근거하지만, 비선형 경우의 해는 반복적인 방법에 의해서만
구할 수 있다
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, …)
예제 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을 사용한다.
예제 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=