728x90
목차

1. 상관관계에 대해서

2. Fitting 하기

3. 상관계수 R2에 대해서

4. Linest 함수

5. Linest 함수의 추가요소(R2 값 얻기)

 

 

320x100

 

 

1. 상관관계에 대해서

높은 품질의 제품은 정확한 계측기술로 얻을 수 있다는게 개인적인 생각입니다.
하지만 비용을 적게 들이는 평가 기술을 개발해야 제품에 적용할 수 있습니다.

그러기 위해서는 여러가지 요인의 상관성을 분석을 해야 하는데 회귀분석이라고 합니다.
그러나 저는 이 과정을 Fitting이라고 부릅니다. 이걸 잘하면 비용 절감을 효율적으로 이룰 수 있습니다.
상황은 보통 아래와 같습니다.

CASE ①. 외부 계측기로 1시간 측정해야 하는 A와 내부에서 계측 가능한 B
CASE ②. 완성품으로 알 수 있는 A와 단품에서 알 수 있는 B

B는 상대적으로 비용이 적게 드는 평가 항목이니 상관성을 잘 확보하면 A를 측정하는 것과 같은 효과를 낼 수 있습니다.

 

 

 

2. Fitting 하기

예시 DATA 를 분산형 그래프로 그려 보겠습니다.

 

왼쪽의 DATA를 분산형으로 그래프를 그리면 이렇게 됩니다.

 

보통의 경우 A가 더 정확하지만 B로 진행할때 절약이 됩니다.
아래 DATA를 분산형 그래프로 그리면 A가 증가하면 B도 증가한다는 것을 알 수 있습니다.
그런데 정확하게 얼마가 들어가느냐를 알기 위해서 추세선을 그립니다.

 

 

수식을 챠트에 표시하게 하면 "Y=2.1223x + 2.3716" 이라는 방정식을 얻었습니다.

또 상관계수 R2 = 0.9523도 얻을 수 있습니다.
실험의 오차가 있겠지만 그래도 B는 A의 2배가 약간 넘는 것으로 보이네요.

 

3. 상관계수 R2에 대해서


또 R2 값이 주어지는데 이는 실제 실험한 DATA가 이 추세선에서 벗어 나는 정도입니다.
RMS방식으로 완벽하게 일치하면 값이 1로 나옵니다.
기준이야 적용하기 마련이지만 0.95이상이면 A와 B는 충분히 "상관있다"고 결론 내릴 수 있습니다.

선에서 얼마나 멀리있느냐가 R2 입니다.


1차 함수, 즉 선형성만 확인하는 경우가 많습니다. 하지만 상황에 따라서 다차방적식을 고려해야 하죠.
추세선 속성에서 [다항식]을 선택하면 차수를 높일 수 있습니다.

추세선 옵션 아래에서 "R-제곱 값을 차트에 표시"하면 얻을 수 있습니다.

 

 

3차까지 높였을 때 0.96까지 R2가 상승하는 것을 알 수 있습니다.
다만 4차 이후에는 변곡점의 모양으로 봤을때 큰수에서 신뢰성이 떨어집니다.

 

 

사실 차수가 높아지면 숫자가 커질때 문제가 될 수 있습니다.
고차 방정식의 경우 ① X 축을 0~1까지 스케일링 해서 사용할 수 있을때 혹은
② DATA의 크기가 한도가 있고 거의 거기까지 실험을 했을 때 사용할 수 있습니다.

이것을 못할 땐 그냥 선형방정식만 보고 판단하는게 더 나을 수 있다는 것이죠.

 

 

4. Linest 함수


그래프를 일일히 그리지 않고 바로 숫자로 분석하는 Linest 함수를 소개합니다.


LINEST(known_y's, [known_x's], [const], [stats])

 

  • known_y's : 필수 요소입니다. y = mx + b 식에서 이미 알고 있는 y 값의 집합입니다.
  • [known_x's] : 선택 요소입니다. y = mx + b 식에서 이미 알고 있는 x 값의 집합입니다.
    입력하지 않으면 1, 2, 3, 4, … 이 들어갑니다.
  • [const] : b가 True이면 정상적으로 계산 False면 0으로 고정됩니다.
  • [stats] : 선택요소로 True면 추가 통계값을 반환합니다.

 

Linest는 2개이상의 결과값을 반환합니다.
=LINEST(C23:C32,B23:B32,1,0) 라는 수식을 적으면 "Y=2.125x + 2.354" 의 2개 숫자를 반환합니다.
그래서 INDEX 함수를 추가로 사용해야 합니다. 아래 표를 보시면 INDEX의 활용법을 알수 있습니다.

 

수식 =INDEX(LINEST(C23:C32,B23:B32,1,0),1) =INDEX(LINEST(C23:C32,B23:B32,1,0),2)
항목 a b
2.125 2.354

 

다항식을 적용하면 좀더 길어집니다.
12차까지 적용할 수 있으면 하는 방법은 

LINEST(known_y's, [known_x's]^{1,2,3, ... , 12}, [const], [stats])
이 다차방정식으로 들어가면 여러가지 솔루션을 마련할 수 있습니다.

 

예시 : =INDEX(LINEST(C23:C32,B23:B32^{1,2,3},1,0),1)

수식 =INDEX(LINEST(C23:C32,B23:B32^{1,2,3},1,0),1) =INDEX(LINEST(C23:C32,B23:B32^{1,2,3},1,0),2) =INDEX(LINEST(C23:C32,B23:B32^{1,2,3},1,0),3) =INDEX(LINEST(C23:C32,B23:B32^{1,2,3},1,0),4)
항목 a b c d
-0.045 0.714 -1.067 5.795

 

 

5. Linest 함수의 추가요소(R2 값 얻기)


LINEST(known_y's, [known_x's], [const], [stats])
Linest의 구성중 [stats]가 TRUE(1)를 알아 보겠습니다.

[stats]을 1이나 True로 입력하면 입체적인 DATA가 됩니다.

 

NA는 빈칸입니다.

 

예시 : =LINEST(C21:C30,B21:B30^{1,2,3},1,1)

 

노란색이 R2에요

 

이렇게 되면 2차 행렬 형식으로 index를 작성하면 됩니다.
여기서 우리가 가장 궁금한 R2는 (3,1)입니다. 이걸 가장 많이 사용합니다.
입력 방법 : =INDEX(LINEST(C23:C32,B23:B32^{1,2,3},1,1),3,1)
각 항목을 도움말을 그대로 사용했습니다.

 

 

통계 설명
m1,m2,...,mn, b 계수 m1,m2,...,mn입니다.
se1,se2,...,sen 계수 m1,m2,...,mn에 대한 표준 오차값입니다.
seb 상수 b에 대한 표준 오차값(const가 FALSE이면 seb = #N/A)입니다.
R2 결정 계수입니다. y 값의 추정값과 실제값을 비교하며 값의 범위는 0부터 1까지입니다. 계수가 1이면 표본에 완전한 상관 관계가 성립하고 y 값의 추정값과 실제값 사이에는 아무런 차이가 없습니다. 결정 계수가 0이면 해당 회귀 방정식은 y 값을 예측하는 데 아무 도움이 되지 않습니다. 2가 계산된 방법에 대한 자세한 내용은 이 항목의 의 1부에서 "비고"를 참조하세요.
sey y 추정값에 대한 표준 오차입니다.
F F 통계량 또는 F-관측값입니다. F 통계량을 사용하여 종속 변수와 독립 변수 사이에서 관측된 관계가 우연히 발생된 것인지 여부를 확인할 수 있습니다.
dy 자유도입니다. 자유도를 사용하여 통계 테이블에서 F-critical 값을 찾을 수 있습니다. 표에서 찾은 값을 LINEST에서 반환한 F 통계와 비교하여 모델에 대한 신뢰 수준을 파악합니다.
ssreg 회귀 제곱의 합입니다.
ssresid 잔차 제곱의 합입니다. ssreg와 ssresid를 계산하는 방법에 대한 자세한 내용은 뒷부분의 "주의"를 참조하세요.

 

728x90
반응형

+ Recent posts