Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
수치해석Numerical Analysis
161009
Ch14. Linear RegressionCh14. Linear Regression
Part 4. Part 4. Part 4. Part 4. 소개소개소개소개 (1/4)(1/4)(1/4)(1/4)
� 곡선접합곡선접합곡선접합곡선접합((((ccccurve fitting)urve fitting)urve fitting)urve fitting)이란이란이란이란????
• 데이터는 연속체를 따라 이산적인 값으로 주어지는 경우가 많다.
• 이산적인 값 사이에 있는 점에서의 값을 어떻게 추정할 수 있나?
• 복잡한 함수를 단순한 형태로 만들 수는 있는가?
• 곡선접합에는 일반적으로 두 가지 방법이 있으며, 이들은 데이터와
관련된 오차의 크기를 기준으로 구분된다
� ⇒
Numerical Analysis
� 상당한 크기의 오차를 포함하거나 "산재한" 경우 (⇒ 최소제곱 회
귀분석 )
- 데이터의 일반적인 경향을 나타내는 단일 곡선을 유도
- 유도된 곡선은 점들로 이루어진 집단의 경향을 따르도록 설계
� 데이터가 매우 정확하게 알려져 있는 경우 (⇒ 보간법)
- 각 점을 직접 통과하는 곡선이나 일련의 곡선을 구함
- 잘 알려져 있는 이산 점들의 사이의 값을 추정
Part Part Part Part 4. 4. 4. 4. 소개소개소개소개 (2/4)(2/4)(2/4)(2/4)
Numerical Analysis
다섯 개의 데이터 점을 “최적”의 곡선으로 접합하는 세 가지 방법:(a) 최소제곱 회귀분석, (b) 선형보간법, (c) 곡선보간법
Part Part Part Part 4. 4. 4. 4. 소개소개소개소개 (3/4)(3/4)(3/4)(3/4)
� 곡선접합과 실제 공학과 과학 문제
• 실험 데이터를 접합시킬 때 두 가지 형태의 응용문제를 만남
� 경향분석 : 예측을 위하여 데이터의 경향을 이용하는 과정
- 높은 정확도를 가진 데이터 → 보간다항식 사용
- 정확성이 떨어지는 데이터 → 최소제곱 회귀분석 사용
Numerical Analysis
- 정확성이 떨어지는 데이터 → 최소제곱 회귀분석 사용
- 종속변수의 값을 예측하기 위해 사용
� 관측된 데이터 범위를 벗어나는 경우에는 외삽법을 사용
� 관측된 데이터 범위 내에서는 보간법을 사용
Part Part Part Part 4. 4. 4. 4. 소개소개소개소개 (4/4)(4/4)(4/4)(4/4)
� 가상실험
- 관측된 데이터를 기존의 수학적 모델과 비교
� 모델 계수를 모르는 경우에 데이터를 가장 잘 접합할 수 있는
모델 계수를 결정
� 알려진 모델 계수의 타당성을 실험하기 위해 예측한 값과
관측된 값을 비교
Numerical Analysis
• 곡선접합은 다른 수치해법에서도 중요
- 적분 값
- 미분방정식의 근사 해
• 곡선접합은 복잡한 함수를 간단한 함수로 근사할 때도 사용
Part Part Part Part 4. 4. 4. 4. 구성구성구성구성
• 14장 : 최소제곱 회귀분석
• 15장 : 일반적인 선형최소제곱과 비선형회귀분석
• 16장 : Fourier 해석
• 17장 : 다항식 보간법
• 18장 : 스플라인과 소구간별 보간법
Numerical Analysis
• 18장 : 스플라인과 소구간별 보간법
14. 14. 14. 14. 직선의직선의직선의직선의 접합접합접합접합
v (m/s) 10 20 30 40 50 60 70 80
F (N) 25 70 380 550 610 1220 830 1450
힘 (N)과 속도 (m/sec)에 관한 실험 데이터
Numerical Analysis
이러한 자료를 반영하는 “최적”의 선 또는 곡선은?
14.1 14.1 14.1 14.1 통계학통계학통계학통계학 복습복습복습복습 (1/2)(1/2)(1/2)(1/2)
• 기초 통계학– 통계학의 기초 개념
� 데이터 분포의 중심 위치
- 산술평균
� 데이터 집합의 분산 정도
- 표준편차
n
yy
i∑=
1−=n
Ss ty
Numerical Analysis
여기서 n – 1 = 자유도 (한 점에 대해 분포라는 것은 없다)
- 분산 또는
- 분산계수 (coefficient of variance: c.v.)
분포에 대해 정규화된 척도
1−=n
sy
∑ −= 2)( yyS it
1
)( 2
2
−
−=∑n
yys
i
y
( )1
/22
2
−
−=
∑∑n
nyys
ii
y
%100c.v. ×=y
sy
14.1 14.1 14.1 14.1 통계학통계학통계학통계학 복습복습복습복습 (2/2)(2/2)(2/2)(2/2)
� 정규 분포
• 데이터 분포: 데이터가 평균값 주위에 분포된 형태를 파악
- 히스토그램은 시각적으로 간단하게 표시한 것
측정값들을 구간 별로 분류해서 그림
- 정규분포 신뢰도 68%: 의 구간에 측정값이 분포하는 비율
95%: 의 구간에 측정값이 분포하는 비율ysy 2±ysy ±
Numerical Analysis
데이터 점의 수가 증가하면히스토그램은 정규분포라고불리는 완만하고 종 모양인
곡선에 접근함
14.2 14.2 14.2 14.2 난수와난수와난수와난수와 시뮬레이션시뮬레이션시뮬레이션시뮬레이션
� Matlab 함수: rand vs. randn
• Rand: Uniformly distributed pseudorandom numbers
• Randn: Normally distributed pseudorandom numbers
Numerical Analysis
14.3 14.3 14.3 14.3 선형선형선형선형 최소제곱최소제곱최소제곱최소제곱 회귀분석회귀분석회귀분석회귀분석 ((((1/8)1/8)1/8)1/8)
• 최소제곱 회귀분석
- 데이터에 상당한 오차가 포함되어 있는 경우
- 일반적인 형태나 경향을 맞추는 근사함수를 유도
- 각 데이터 점과 곡선 사이의 차이를 제곱한 것의 합을 최소화시키
는 곡선
- 관측 값을 직선으로 접합시키는 경우: (x1 ,y1), (x2 ,y2), …,(xn
Numerical Analysis
1 1 2 2 n
,yn)
여기서 a0 = 절편
a1 = 기울기
e = 모델과 관측 값 사이의 오차 또는 잔차
xaaye 10 −−=
exaay ++= 10
14.3 14.3 14.3 14.3 선형선형선형선형 최소제곱최소제곱최소제곱최소제곱 회귀분석회귀분석회귀분석회귀분석 ((((2/8)2/8)2/8)2/8)
� "최적" 접합을 위한 기준
(a)주어진 모든 데이터에 대한 잔차의 합을
최소화시키는 것
(b) 잔차의 절대값의 합을 최소화시키는 것
∑∑==
−−=n
i
ii
n
i
i xaaye1
10
1
)(
Numerical Analysis
(b) 잔차의 절대값의 합을 최소화시키는 것
(c) 데이터 점이 직선으로부터 떨어진 최대거리를
최소화 시키는 것 (최소-최대 기준)
∑∑==
−−=n
i
ii
n
i
i xaaye1
10
1
inie
...1maxmin=
14.3 14.3 14.3 14.3 선형선형선형선형 최소제곱최소제곱최소제곱최소제곱 회귀분석회귀분석회귀분석회귀분석 ((((3/8)3/8)3/8)3/8)
� "최적" 접합을 위한 기준
• 잔차의 제곱 합을 최소화하는 방법
• 어떻게 계수 a0와 a1을 구할 수 있는가?
∑∑==
−−==n
i
ii
n
i
ir xaayeS1
2
10
1
2 )( → 최소제곱
Numerical Analysis
14.314.314.314.3 선형선형선형선형 최소제곱최소제곱최소제곱최소제곱 회귀분석회귀분석회귀분석회귀분석 ((((4/8)4/8)4/8)4/8)
� 직선의 최소제곱 접합
각각의 미지의 계수에 대하여 미분한다.
미분식들이 0인 경우에 합이 최소가 된다.
∑ −−−=∂
∂)(2 10
0
iir xaaya
S∑ −−−=
∂
∂])[(2 10
1
iiir xxaaya
S
∑∑∑ −−= ii xaay 100 ∑∑∑ −−= 2
100 iiii xaxayx
Numerical Analysis
정리하면
위의 정규방정식을 풀면 두 계수 값을 결정할 수 있다.
∑∑∑ ∑∑∑
( ) ∑∑ =+ ii yaxna 10 ( ) ( ) ∑∑∑ =+ iiii yxaxax 1
2
0
( )221
∑∑∑∑∑
−
−=
ii
iiii
xxn
yxyxna xaya 10 −=
예제 14.4 (선형회귀분석) (1/2)
Q. 주어진 데이터를 직선으로 접합하라.
i1234
10203040
2570
380550
100400900
1,600
2501,400
11,40022,000
ix iy2
ix ii yx
Numerical Analysis
45678
4050607080
550610
1,220830
1,450
1,6002,5003,6004,9006,400
22,00030,50073,20058,100
116,000
Σ 360 5,135 20,400 312,850
예제 14.4 (선형회귀분석) (2/2)
Sol) 875.6418
135,5 45
8
360==== yx
47024.19)360()400,20(8
)135,5(360)850,312(821 =
−
−=a
2857.234)45(47024.19875.6410 −=−=a
vF 47024.192857.234 +−=
Numerical Analysis
vF 47024.192857.234 +−=
14.3 14.3 14.3 14.3 선형선형선형선형 최소제곱최소제곱최소제곱최소제곱 회귀분석회귀분석회귀분석회귀분석 (5/8)(5/8)(5/8)(5/8)
� 선형회귀분석 오차의 정량화
• 잔차의 제곱 합의 유사성
⇔ ∑=
−−=n
i
iir xaayS1
2
10 )(∑ −= 2)( yyS it
Numerical Analysis
선형회귀분석의 잔차는 데이터 점과 직선 사이의 수직거리를 나타냄
– 두 가지 조건:
� 직선과 점들 사이의 거리가 전체 구간에서 비슷한 경우
� 직선 주위의 점들의 분포가 정규분포인 경우
⇒ 최적의 a0와 a1의 값을 도출 : 최대근접원리
⇒ 추정 값의 표준오차 ( = 회귀분석 직선에 대한 표준편차)
14.3 14.3 14.3 14.3 선형선형선형선형 최소제곱최소제곱최소제곱최소제곱 회귀분석회귀분석회귀분석회귀분석 (6/8(6/8(6/8(6/8))))
S
Numerical Analysis
y /x = 특정한 값 x 에 대응하는 예측 값 y 의 오차
n – 2 = Sr을 구하기 위해 두 점에서 유도된 a0와 a1이 이미 사용되었음
또는 "두 점을 연결하는 직선 주위에는 데이터의 분포라는 것이 없다.“
- 회귀분석 직선 주위의 분포 정도를 정량화
- 접합법의 "적정성"을 정량화
/2
ry x
Ss
n=
−
14.3 14.3 14.3 14.3 선형선형선형선형 최소제곱최소제곱최소제곱최소제곱 회귀분석회귀분석회귀분석회귀분석 (7/8(7/8(7/8(7/8))))
회귀분석 데이터의 비교: (a) 평균값 주위의 데이터 분포 (b) 직선 주위의 데이터 분포
Numerical Analysis
회귀분석 데이터의 비교: (a) 평균값 주위의 데이터 분포 (b) 직선 주위의 데이터 분포[ (a)에서 (b)로 갈수록 분포의 폭이 감소됨]
선형회귀분석의 비교: (a) 작은 잔차, (b) 큰 잔차
14.3 14.3 14.3 14.3 선형선형선형선형 최소제곱최소제곱최소제곱최소제곱 회귀분석회귀분석회귀분석회귀분석 (8/8(8/8(8/8(8/8))))
• 결정계수
또는
여기서 r = 상관계수
t
rt
S
SSr
−=2
( ) ( )( )
( ) ( )2222 ∑∑∑∑
∑∑∑−−
−=
iiii
iiii
yynxxn
yxyxnr
Numerical Analysis
- Sr = 0 이면 r2 = 1 → 완전 접합
- Sr = St 이면 r2 = 0 → 접합이 데이터를 나타내는데 이점이 없음
14.4 14.4 14.4 14.4 비선형 관계의 선형화 (1/3)(1/3)(1/3)(1/3)
� 종속변수(y)와 독립변수(x) 사이의 비선형 관계는 어떻게
처리하나?
→ 다항식 회귀분석, 비선형 모델, 비선형 모델을 선형으로 변환
• 비선형 모델
- 지수 모델 예) 인구 성장, 방사능 감소x
ey 1βα=
Numerical Analysis
- 지수 모델 예) 인구 성장, 방사능 감소
- 멱방정식
- 포화성장률 방정식 예) 제한된 조건에서의 인구 성장률
ey 11α=
22
βα= xy
x
xy
+βα=
3
3
14.4 14.4 14.4 14.4 비선형 관계의 선형화 (2/3) (2/3) (2/3) (2/3)
Numerical Analysis
(a)지수 방정식, (b) 멱방정식, (c) 포화성장률 방정식, (d), (e), (f)는 변환을 통해 (a), (b), (c)를 선형화시킨 방정식
14.4 14.4 14.4 14.4 비선형 관계의 선형화 (3/3) (3/3) (3/3) (3/3)
• 비선형 모델을 선형 모델로의 변환
- 지수 방정식
→
- 멱방정식
→
xey 11
βα= xy 11lnln β+α=
22
βα= xy xy logloglog 22 β+α=
Numerical Analysis
→
- 포화성장률 방정식
→
2α= xy xy logloglog 22 β+α=
x
xy
+βα=
3
3xy
111
3
3
3 α
β+
α=
예제 14.6 (멱방정식을 이용한 데이터의 접합) (1/2)
Q. 표의 데이터에 log 변환을 시켜 직선으로 접합하라.
i
123
102030
2570
380
1.0001.3011.477
1.3981.8452.580
1.0001.6932.182
1.3982.4013.811
ix iy ix iyix ixiy loglog log (log )2 log
Numerical Analysis
345678
304050607080
380550610
1,220830
1,450
1.4771.6021.6991.7781.8451.903
2.5802.7402.7853.0862.9193.161
2.1822.5672.8863.1623.4043.622
3.8114.3904.7325.4885.3866.016
Σ 12.606 20.515 20.516 33.622
예제 14.6 (멱방정식을 이용한 데이터의 접합) (2/2)
Sol)
( )221
log)(log
loglogloglog
∑∑∑∑∑
−
−=
ii
iiii
xxn
yxyxna xaya 10 −=
5644.28
515.20 5757.1
8
606.12==== yx
9842.1)515.20(606.12)622.33(8=
−=a
Numerical Analysis
최소제곱접합은 다음과 같다.
→
( → )
9842.1)606.12()516.20(8
)515.20(606.12)622.33(821 =
−
−=a
5620.0)5757.1(9842.15644.20 −=−=a
xy log9842.15620.0log +−=9842.12741.0 vF =
xy logloglog 22 β+α= 22
βα= xy
14.5 14.5 14.5 14.5 컴퓨터컴퓨터컴퓨터컴퓨터 응용응용응용응용 (1/5)(1/5)(1/5)(1/5)
Numerical Analysis
14.5 14.5 14.5 14.5 컴퓨터컴퓨터컴퓨터컴퓨터 응용응용응용응용 (2/5)(2/5)(2/5)(2/5)
>> x=[10 20 30 40 50 60 70 80];
>> y=[25 70 380 550 610 1220 830 1450];
>> linregr(x,y)
r2 =
0.8805
ans =
Numerical Analysis
19.4702 -234.2857
>> linregr(log10(x),log10(y))r2 =
0.9481ans =
1.9842 -0.5620
14.5 14.5 14.5 14.5 컴퓨터컴퓨터컴퓨터컴퓨터 응용응용응용응용 (3/5)(3/5)(3/5)(3/5)
� MATLAB M-파일: polyfit and polyval
>>>>>>>> p = polyfit(x, y, n) p = polyfit(x, y, n) p = polyfit(x, y, n) p = polyfit(x, y, n) % n% n% n% n차차차차 다항식다항식다항식다항식 접합접합접합접합
1
1
21)( +
− ++++= nn
nn pxpxpxpxf L
Numerical Analysis
>>>>>>>> y = polyval(p, x) y = polyval(p, x) y = polyval(p, x) y = polyval(p, x) % % % % 함수값함수값함수값함수값 계산계산계산계산
직선은 일차식이므로 polyfit(x, y, 1)을 이용.
14.5 14.5 14.5 14.5 컴퓨터컴퓨터컴퓨터컴퓨터 응용응용응용응용 (4/5)(4/5)(4/5)(4/5)
>> >> >> >> 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];
>> >> >> >> P=polyfit(x,y,1); P=polyfit(x,y,1); P=polyfit(x,y,1); P=polyfit(x,y,1); %%%%최소제곱접합최소제곱접합최소제곱접합최소제곱접합(1(1(1(1차차차차))))
>> >> >> >> Curve_f=P(1).*x+P(2);Curve_f=P(1).*x+P(2);Curve_f=P(1).*x+P(2);Curve_f=P(1).*x+P(2);
>> >> >> >> a=P(1); b=P(2); [a b]a=P(1); b=P(2); [a b]a=P(1); b=P(2); [a b]a=P(1); b=P(2); [a b]
ans =ans =ans =ans =
Numerical Analysis
ans =ans =ans =ans =
19.4702 19.4702 19.4702 19.4702 ----234.2857234.2857234.2857234.2857
>> >> >> >> plot(x, y, 'ro', x, Curve_f, 'b');plot(x, y, 'ro', x, Curve_f, 'b');plot(x, y, 'ro', x, Curve_f, 'b');plot(x, y, 'ro', x, Curve_f, 'b');
>> >> >> >> xlabel('X'); ylabel('Y'); xlabel('X'); ylabel('Y'); xlabel('X'); ylabel('Y'); xlabel('X'); ylabel('Y');
>>title('Least Square Curve Fitting')>>title('Least Square Curve Fitting')>>title('Least Square Curve Fitting')>>title('Least Square Curve Fitting')
14.5 14.5 14.5 14.5 컴퓨터컴퓨터컴퓨터컴퓨터 응용응용응용응용 (5/5)(5/5)(5/5)(5/5)
>> >> >> >> P=polyfit(x,y,1); P=polyfit(x,y,1); P=polyfit(x,y,1); P=polyfit(x,y,1);
>> >> >> >> yy = polyval(P,45)yy = polyval(P,45)yy = polyval(P,45)yy = polyval(P,45)
yy =yy =yy =yy =
641.8750641.8750641.8750641.8750
>> >> >> >> Q=polyfit(x,y,2)Q=polyfit(x,y,2)Q=polyfit(x,y,2)Q=polyfit(x,y,2)
Numerical Analysis
>> >> >> >> Q=polyfit(x,y,2)Q=polyfit(x,y,2)Q=polyfit(x,y,2)Q=polyfit(x,y,2)
Q =Q =Q =Q =
0.0372 16.1220 0.0372 16.1220 0.0372 16.1220 0.0372 16.1220 ----178.4821178.4821178.4821178.4821
>> >> >> >> z=polyval(Q,45)z=polyval(Q,45)z=polyval(Q,45)z=polyval(Q,45)
z =z =z =z =
622.3437622.3437622.3437622.3437