15장 최소제곱회귀분석bml.pusan.ac.kr/Lecture/Undergraduates/NumAnalysis/15...Applied...
Transcript of 15장 최소제곱회귀분석bml.pusan.ac.kr/Lecture/Undergraduates/NumAnalysis/15...Applied...
15장 최소제곱 회귀분석
15.1 다항식 회귀분석
15.2 다중 선형회귀분석
15.3 일반적인 선형최소제곱
15.4 QR 분해법과 역슬래시 연산자
15.5 비선형회귀분석
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
15.1 다항식 회귀분석 (1/4)
앞 장에서 최소제곱 기준을사용하여 직선 식을 유도하였으나, 일부 데이터들은 직선으로 표현하기에는 불충분하며, 이러한 경우 곡선을 이용하여 데이터를 표현하는 것이낫다.
다항식 회귀분석 : 최소제곱방법을 확장하여 고차다항식을 데이터에 접합시킨다.
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
15.1 다항식 회귀분석 (2/4)
예를 들어 다음과 같은 2차 다항식을 데이터에 접합시킨다고 가정하자.
잔차의 제곱합 :
다항식의 각 미지계수에 대하여 위 식의 미분을 취하면,
Sr = ei2
i=1
n
∑ = yi − a0 − a1xi − a2xi2( )2
i=1
n
∑
20 1 2y a a x a x e= + + +
20 1 2
0
20 1 2
1
2 20 1 2
2
2 ( )
2 ( )
2 ( )
ri i i
ri i i i
ri i i i
S y a a x a xaS x y a a x a xaS x y a a x a xa
∂= − − − −
∂∂
= − − − −∂∂
= − − − −∂
∑
∑
∑15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
15.1 다항식 회귀분석 (3/4)
위 식들을 0으로 놓고 다시 정리하면, 다음과 같은 정규방정식을 구할 수 있다.
계수값들은 측정값들로부터 바로 계산할 수 있다.
따라서 최소제곱 2차 다항식을 결정하는 문제는 세 개의선형 연립방정식을 푸는 문제와 같다.
( ) ( )( ) ( ) ( )( ) ( ) ( )
20 1 2
2 30 1 2
2 3 4 20 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
+ + =
+ + =
+ + =
∑ ∑ ∑∑ ∑ ∑ ∑∑ ∑ ∑ ∑
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
15.1 다항식 회귀분석 (4/4)
2차원 경우는 다음의 m차 다항식으로 쉽게 확장될 수 있다.
앞의 해석을 확장하면, m차 다항식의 계수를 결정하는m+1 개의 선형연립방정식을 푸는 문제와 같다
이 경우 표준오차와 결정계수는 각각 다음과 같다.
sy / x =Sr
n − m +1( )
r2 =St − Sr
St
표준오차 결정계수
20 1 2
mmy a a x a x a x e= + + + + +
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.1 (다항식회귀분석) (1/4)
012345
2.17.7
13.627.240.961.1
544.44314.47140.03
3.12239.22
1272.11
0.143321.002861.081600.804870.619590.09434
Σ 152.6 2513.39 3.74657
ix iy ( )220 1 2i i iy a a x a x− − −2( )iy y−
Q. 다음 표의 처음 두 열의 데이터에 2차 다항식을접합시켜라.
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.1 (다항식회귀분석) (2/4)
풀이) 주어진 데이터로부터 다음을 계산할 수 있다.
따라서 선형연립방정식은 다음과 같다.
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
= = =
= = =
= = =
= =
∑ ∑∑ ∑∑ ∑∑
0
1
2
6 15 55 152.615 55 225 585.655 225 979 2488.8
aaa
=
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.1 (다항식회귀분석) (3/4)
>> N=[ 6 15 55; 15 55 225; 55 225 979];
>> N=[ 152.6 585.6 2488.8];
>> a = N\r
a =
2.4786
2.3593
1.8607
최소제곱 2차 다항식은 다음과 같다.
MATLAB으로 풀면,
22.4786 2.3593 1.8607y x x= + +
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.1 (다항식회귀분석) (4/4)
다항식 회귀분석에 기초한 추정값의 표준오차 :
결정계수 :
( )/3.74657 1.1175
6 2 1y xs = =− +
2 2513.39 3.74657 0.998512513.39
0.99925
r
r
−= =
→ =
상관계수
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
15.2 다중 선형회귀분석 (1/3)
y가 두 개 이상의 독립변수(x1, x2, …)에 대해 선형함수인 경우를보자.- 회귀분석 평면
0 1 1 2 2y a a x a x e= + + +
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
15.2 다중 선형회귀분석 (2/3)
계수에 대해 미분하면,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
S y a a x a xaS x y a a x a xaS x y a a x a xa
∂= − − − −
∂∂
= − − − −∂∂
= − − − −∂
∑
∑
∑
1, 2, 12
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 yx x x x a x yx x x x a x y
=
∑ ∑ ∑∑ ∑ ∑ ∑∑ ∑ ∑ ∑
잔차의 제곱합을 최소로 하는 계수는 각 미분값을 0으로 놓을 때 얻어지며, 이를 행렬식으로 표현하면
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.2 (다중 선형회귀분석) (1/2)
022.5147
012362
510903
27
2x
Q. 다음 데이터는 y = 5+4x1-3x2로부터 계산되었다. 이들 데이터에 다중 선형회귀분석을 수행하라.
1x y
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.2 (다중 선형회귀분석) (2/2)
풀이) 주어진 데이터로부터 다음을 계산할 수 있다.
따라서 선형연립방정식은 다음과 같다.
0
1
2
6 16.5 14 5416.5 76.25 48 243.514 48 54 100
aaa
=
510903
27
02
2.5 147
012362
04
6.251
1649
0149
364
0253
2414
020
22.5012
189
0101801854
54 16.5 14 76.25 54 48 243.5 100
y 1x 2x 21x 2
2x 1 2x x 1x y 2x y
0 1 25, 4, 3a a a= = = −
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
m차원 문제로의 확장은 다음 식을 사용한다.
이 경우 표준오차와 결정계수는 각각 다음과 같다.
다중선형회귀분석은 일반적 형태의 멱방정식을 유도하는 데도 역시 유용하다.
15.2 다중 선형회귀분석 (3/3)
sy / x =Sr
n − m +1( )
0 1 1 2 2 m my a a x a x a x e= + + + + +
1 20 1 2
maa amy a x x x= +
r2 =St − Sr
St
0 1 1 2 2log log log log logm m
y a a x a xa x
= + +
+ +
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
단순선형회귀분석, 다항식 회귀분석, 그리고 다중선형회귀분석은 모두 일반적인 선형최소제곱 모델에 속한다.
여기서 z0, z1,..., zm은 m+1 개의 기저함수들이다.
- 단순선형회귀분석과 다중선형회귀분석:
- 다항식 회귀분석
기저함수는 계수 a0, a1..을 제외한 어떤 함수도 가능하다.
15.3 일반적인 선형최소제곱 (1/3)
0 1 1 2 21, , , , m mz z x z x z x= = = … =
0 1 1 2 20 m my a z a z a z a z e= + + + + +
20 1 21, , , , m
mz z x z x z x= = = … =
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
일반적인 선형최소제곱 방정식은 다음과 같은 행렬식으로쓸 수 있다.
여기서 y = 종속변수의 측정값, a = 미지 계수, e = 잔차,그리고 z는,
zji 는 i 점에서 계산된 j번째 기저 함수이다.
잔차의 제곱합 :
15.3 일반적인 선형최소제곱 (2/3)
y{ }= Z[ ] a{ }+ e{ }
Z[ ]=
z01 z11 zm1z02 z12 zm2
z0n z1n zmn
Sr = ei2
i=1
n
∑ = yi − ajz jij=0
m
∑
2
i=1
n
∑
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
각 계수에 대하여 미분을 취하고, 그 결과를 0으로 놓으면,다음과 같은 정규방정식을 얻을 수 있다.
결정계수 :
최적접합 곡선과 데이터 사이의 잔차 :
15.3 일반적인 선형최소제곱 (3/3)
Z[ ]T Z[ ][ ] a{ }= Z[ ]T y{ }{ }
( )( )
22
2
ˆ1 1 i it r r
t t i i
y yS S SrS S y y
−−= = − = −
−∑∑
= 최소제곱접합의 예측값y
{ } [ ]{ }y Z a−
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.3 (MATLAB을 이용한 다항식회귀분석) (1/3)
Q. 예제 15.1을 행렬 연산을 사용하여 반복하라.풀이)
>> x= [0 1 2 3 4 5]' ; %접합시킬 데이터를 입력함
>> y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;
>> z = [ones(size(x)) x x.^2] %[z]행렬을 생성함
z =
1 0 0
1 1 1
1 2 4
1 3 9
1 4 16
1 5 25
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.3 (MATLAB을 이용한 다항식회귀분석) (2/3)
>> z'*z % [z]T[z]는 정규방정식에 대한 계수행렬임을 증명
ans =
6 15 55
15 55 255
55 225 979
>> a = (z'*z)\(z‘*y) % 최소제곱 2차 다항식의 계수를 구함(식14.10)
ans =
2.4786
2.3593
1.8607
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.3 (MATLAB을 이용한 다항식회귀분석) (3/3)
>> Sr = sum((y-z*a).^2) % 잔차의 합 계산
Sr =
3.7466
>> r2 = 1-Sr/sum((y-mean(y)).^2) % r2 계산
r2 =
0.9985
>> syx = sqrt(Sr/(length(x)-length(a))) % sy/x 계산
syx =
1.1175
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
15.4 QR 분해법과 역슬래시 연산자
정규방정식은 불량조건을 가질 수 있으므로 반올림오차에 민감할 수 있다. 이런 면에서 두 가지 고급해석 기법인QR 분해법과 특이값 분리는 더욱 강건한 방법들이다.
다음의 경우 MATLAB에서 QR 분해법이 자동적으로 실행된다.
(1) 다항식을 접합시키기 위해 내장함수 polyfit을 실행할 때(2) 과결정 시스템을 왼쪽 나눗셈으로 풀 때
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.4 (polyfit과 왼쪽 나눗셈을 이용한 다항식회귀분석)
Q. 예제 15.3을 polyfit과 왼쪽 나눗셈을 사용하여 반복하라.
풀이)
>> x= [0 1 2 3 4 5]' ; %접합시킬 데이터를 입력함
>> y= [2.1 7.7 13.6 27.2 40.9 61.1]' ;
>> z = [ones(size(x)) x x.^2] %[z]행렬을 생성함
>> a = polyfit(x,y,2) % polyfit 함수 사용
a =
1.8607 2.3593 2.4786
>> a =z\y % 역슬래시 사용
a =
2.4786
2.3593
1.8607
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
일반적인 공학과 과학 분야의 문제에서 데이터를 접합할때, 일반적인 선형최소제곱 모델의 형태에 맞게 조작할 수없는 경우가 많다.
비선형모델은 매개변수가 비선형적으로 종속된다.
비선형회귀분석도 잔차의 제곱합을 최소화시키는 매개변수를 구하는 데 근거하지만, 비선형 경우의 해는 반복적인방법에 의해서만 구할 수 있다.
15.5 비선형 회귀분석 (1/2)
10 (1 )a xy a e e−= − +
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
비선형회귀분석을 위한 방법 :
(a) Gauss-Newton법 (Chapra and Canale, 2002)(b) 최소제곱접합을 직접 구하기 위하여 최적화기법을 사용함 :- 잔차의 제곱합을 계산하기 위하여 위 식을 다음과 같은 함수로 표현한다.
- 함수를 최소화시키는 a0와 a1을 결정하기 위하여 최적화 기법을 사용한다.
15.5 비선형 회귀분석 (2/2)
1
2
0 1 01
( , ) (1 )i
na x
ii
f a a y a e−
=
= − − ∑
[x, fval] =fminsearch(fun, x0, options, p1, p2, …)
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.5 (MATLAB을 이용한 비선형회귀분석) (1/3)
Q. 예제 14.4에서 로그를 이용한 선형화를 통하여
표 14.1의 데이터에 멱모델을 접합시켰음을 기억하라.
이 멱모델은 다음과 같다.
이 예제를 반복하되 비선형회귀분석을 사용하라.
계수에 대한 초기조건은 1을 사용한다.
1.98420.2741 F v=
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.5 (MATLAB을 이용한 비선형회귀분석) (2/3)
function f = fSSR(a, xm, ym)
yp = a(1)*xm.^a(2);
F = sum((ym-yp).^2);
>> x = [10 20 30 40 50 60 70 80];
>> y = [25 70 380 550 610 1220 830 1450];
풀이)
제곱합을 계산하기 위한 M-파일 함수
데이터 입력
15
Applied Numerical Methods 장 일반적인 선형최소제곱과 비선형회귀분석
예제 15.5 (MATLAB을 이용한 비선형회귀분석) (3/3)
>> fminsearch(@fSSR, [1, 1], [ ], x, y)
ans =
2.5384 1.4359
함수의 최소화
1.43592.5384 F v=
최적접합 모델:
15