2010년 10월 4일 월요일

통계(회귀 분석)를 통한 3차원 표면 분석(3)

Multiple Linear Regression

통계를 통해서 다음을 분석한다.

우선 아래 식을 보면 다소 복잡해 보이지 않는다?ㅋㅋ
다소 복잡하게 보일 수도 있으나, 하나 하나 뜯어보자.
ln은 자연 로그 표시이므로 하나의 상수로 간주할 수 있다.
lnS, lnA, lnE 는 각각의 값을 가진다.  (S는 시그마, E는 입실론)
n, Q, T도 모두 값을 가지겠지?



우선 실험적으로 세 개의 상수를 잡는다.
T, lnE, lnS 은 실험적으로 조절 가능한 변수이므로,
3개의 변수를 각각 변화시켜 {3^(3-1)} = 9 가지의 실험을 수행한다.
9개 라는 것이 수학적으로 3의 지수..어쩌고 할 필요 없이,

그냥 모든 경우의 수를 서로 다 찾는다고 생각하자.


결국 내가 원하는 것은 총 6 개의 문자 중에서
3 개를 실험으로 결정하고, 나머지 3 개의 상수 값을 찾는 것이다.
이 나머지 3 개를 찾는 것이 중요하니깐...
힘내자...ㅋ

이를 어떻게 찾느냐?

1) 손으로 열심히 계산...
2) 엑셀로 한방에 날림
3) 다른 소프트웨어(Origin 오리진)을 사용
4) 웹 프로그램을 이용...(ZunZun)

여기서는 오리진 Origin 을 사용해서 이를 구해본다.
============================================================================================
아래 보이는 이미지와 같이 각 열에 x y z 로 그 형태를 고쳐 넣은 후,
각각의 데이터를 입력한다.

참고로 C열을 z축으로 바꾸는 것은,
C열에 오른쪽 마우스에서 set to ... 를 누르시고, Z를 선택하시던가...
따블 클릭해서 Z로 바꾸시던가...ㅋ

============================================================================================
아래와 같이, 열 A, B, C를 쭈~~루룩 선택한 후,
저 아래 보이는 주사위 모양의 plot 명령 단축키를 누르고, scatter plot를 선택하자.



============================================================================================
의외로 참 재미없는 점들이 보인다.
저 점들도 나름 3차원처럼 보이게 만든 것처럼 보임 ㅋ

가만히 보니, A, B, C는 각각의 열을 나타내는군... x y z 축..

============================================================================================
자~ 이제 통계를 이용한 표면 분석을 실시해보자 surface analysis in 3D plot
============================================================================================
fitting 피팅을 하기 위해, 위에서 보이는 바와 같이 들어가자
Analysis - Fittings - Nonlinear surface fit - Dialog



아래와 같은 창이 뜰 것이다.
여기에서도 마찬가지로 내가 사용할 함수들의 종류를 선택해야 한다.
본인이 사용할 함수가 단순 1차 3차원 함수이므로,
Z=z0 + ax + by 로서 독립변수 x , y 를 가지고 상수 a, b, z0 를 갖는 함수이다.
아래 formula에서도 보는 바와 같이 항상 그 수식을 보고 결정한다.
본인이 원하는만큼 아주 단순한 수식은 없는 것 같다. ㅋㅋㅋ
너무 쉬운 일을 너무 고급 툴을 사용해서 풀고 있는듯..ㅋㅋ
New를 해서 만들어도 되지만,
귀찮으므로, 그냥 있는 것 중에 가장 단순한 녀석을 고름....

위의 빨간 줄 쳐 놓은 것들 어떤 것을 선택해도 상관 없다.
자신의 수식에 맞게...

단... c, d,와 같은 변수들은 다들 하나같이 0으로 넣어줘야 한다는 거...ㅋ


============================================================================================
아래와 같이, 그림의 상단에 setting 탭에서 parameters 탭으로 옮겨서,
기존의 함수의 계수  c, d를 0 으로 만들어 주는 작업을 실시한다.
Fixed 을 활성화 시켜주고, 그 값을 0 으로 고정시킨 다음에,
아래 보이는 P    S    x2    >|    >>| 에서 >| 를 한번 눌러주자.
(다시 말하면 아래 Fit Done Cancel 왼쪽 녀석들)
그럼 카이 스퀘어 값이 줄어들면서 한번 루프를 돌렸다는 말이 뜬다.

자, 이제 >| 옆에 있는 >>|를 눌러주자.
이것은 카이 스퀘어 값이 더이상 작아지지 않는 상태까지 루프를 무한 돌린다는 말로서 결국엔
통계적으로 가장 안전한 값을 얻는다는 것이다.

Reduced Chi-sqr = 0.0084532336355
COD(R^2) = 0.9636861653522
Iterations Performed = 8
Total Iterations in Session = 9
Fit converged - tolerance criterion satisfied

8 번 더 돈 다음에 fitting이 수렴했다라고 말하네욤.ㅋ

자, OK를 눌러주자 ㅋ

역시 그래프는 여전히 밋밋한 모습인데, 표가 하나 생겼고...



왼쪽 탐색창을 보면,
기존 데이터 시트를 클릭해보자...
그런데 오른쪽 프레임 아래를 보면, 기존에 없던 탭...이 생겼음을 알 수 있다.
이는 fitting을 하면 항상 그 결과를 같은 데이터 시트의 새로운 탭을 만들어서 표현하는 것이다.

자,

Fit Surface Curve1 의 처음 세 개의 열을 가지고  다시 그래프를 만들어보자
그럼 피팅 결과만 가지고 있는 그림이 나온다.

그건 별루..-_ -니깐..
본인은
기존 그래프에, 새로 피팅된 결과를 추가하는 방법을 택했다.

그래프에 마우스를 싱글 클릭하고,
오른쪽 마우스를 눌러서
Layer contents를 눌러주면 아래와 같은 창이 뜬다.
여기에 Book1 의 a2와 a3 를 추가시킨다. 2는 두 번째 열, 즉 y 다...
오케이 눌러줌;;





그리고 차트 속성을 좀 바꿔주면...
좀 더 보기 좋아진다.
내 피팅이 얼마나 돌아간지 알 수 있다.


더 이쁘게는 각자 알아서 ㅋㅋ

댓글 없음:

댓글 쓰기