Regression Analyzing Grapher UserPreferences
 
Help Info Print View Search Diffs Edit
 인덱스   찾기   Freeboard   Subjectless   Images   최근글 

회귀분석을 통한 터널 붕괴도(내공변위)에 대한 함수 모델링 프로젝트.

오전 3:08 2004-06-14, by Kenial

[Upload]sample.zip 샘플 데이터
[Upload]20040613_r_script.txt nls 스크립트

오후 9:55 2004-06-11, by Kenial

파라메터 범위(예상)

오전 12:55 2004-06-10, by Kenial

테스트용 파라메터
1-1 
  C0          .107785647 
  A          1.305090740 
  B           .074960389 
1-2 
  C0          .191568085 
  A          1.412937532 
  B           .094437384 
2(이건 좀 나중에) 
  C0         2.255114380 
  A           .259494577 
  B         8646.0555381 
3 
  C0          .167183448 
  CX         1.393850202 
  XX        19.733595112  
4 
  C0        -1.580096488 
  A         1.471346848 
  B          .088694718 
  C        -1.858608651 
  D         2.493052423 
5 
  C0        .430609326 
  CX        3.93449954 
  XX        8.83168773 
  T         2.25797694 
  M        -.58709922 

오전 10:51 2004-06-08, by Kenial

거의 마찬가지 결론이지만, r-project에서도 모수를 적절히 조절하면 같은(!) 결과를 얻을 수 있음.
대신, 모수의 값에 이상이 있을 때 그 해결점을 찾는 범위에서 spss가 좀 더 우수.

try to do : r-project에서 모수의 값의 범위를 정한 다음 각각의 값에 대한 divide-and-conquer 시도.

오전 1:22 2004-06-08, by Kenial

모수parameter 조정 성공!
[Upload]spsssyntax_parametered.txt

대략 어버버하지만 웬간한 결과치에서는 4개 이상의 방정식이 80% 이상의 r^2 값을 보임.

오전 1:03 2004-06-07, by Kenial

r-project에서의 nonlinear regression 함수 테스트 중.

tunnel <- read.table("d:tunnel.txt", TRUE)
ft1 <- nls( c ~ A * ( 1 - exp( -B * x ) ) - c0, data = tunnel,

ft1 <- nls( c ~ (( 1 - exp( -B * x ) ) * A ) - c0, data = tunnel,
ft1 <- nls( c ~ (( 1 - exp( -B * t ) ) * A ) - c0, data = tunnel,
ft1 <- nls( c ~ ( A * log(1 + (B*t)) ) - c0, data = tunnel,
ft1 <- nls( c ~ ( 1 - ( ( XX / ( XX + x ) ) ** 2 ) ) - c0, data = tunnel,
ft1 <- nls( c ~ pa * (1 - exp(-pb * x)) + pc * (1 - exp(-pd * t)) - c0, data = tunnel,
ft1 <- nls( c ~ PCX*(1- ( (PX/(PX+x)) **2 )) * (1+ PM*(1-((PT/(PT+t))**0.3))) - c0,

결국 또 삽질 작업을 했음이 밝혀짐.
기초 parameter 0으로 조정 없이
3번 모델에서 R^2 = .98826, 5번 모델에서 R^2 = .91620 수치 나옴
(5번 모델의 경우 표준오차가 상당하여 별 의미가 없는 값)

내공변위의 값은 측정치에 -1을 곱해주어야 했음.

3번 모델의 결과 :

Nonlinear Regression Summary Statistics     Dependent Variable C 
 
  Source                 DF  Sum of Squares  Mean Square 
 
  Regression              3       10.27649        3.42550 
  Residual               10         .01351   1.350632E-03 
  Uncorrected Total      13       10.29000 
 
  (Corrected Total)      12        1.15077 
 
  R squared = 1 - Residual SS / Corrected SS =     .98826 
 
                                           Asymptotic 95 % 
                          Asymptotic     Confidence Interval 
  Parameter   Estimate    Std. Error     Lower         Upper 
 
  C0          .129819687   .050150412   .018077605   .241561769 
  CX         1.139746965   .049305817  1.029886758  1.249607172 
  XX        15.949666320  1.886976217 11.745221299 20.154111341 

stable한 값은 아니지만, 초기치의 설정에 따라 제대로 된 값을 얻어낼 수 있을 듯 함.

오전 2:20 2004-06-06, by Kenial

* A * ( 1 - EXP(-B*x) ).
* NonLinear
? Regression.
MODEL PROGRAM c0=0 A=0 B=0 .
COMPUTE PRED_ = A * ( 1 - EXP(-B*x) ) - c0.
NLR c
* A * ( 1 - EXP(-B*t) ).
* NonLinear? Regression.
MODEL PROGRAM c0=0 A=0 B=0 .
COMPUTE PRED_ = A * ( 1 - EXP(-B*t) ) - c0.
NLR c
* A * ln(1 + (B*t))
* NonLinear? Regression.
MODEL PROGRAM c0=0 A=0 B=0 .
COMPUTE PRED_ = A * ln(1 + (B*t)) - c0.
NLR c
* Cx * ( 1 - ( ( XX / ( XX + x ) ) ** 2 ) ).
* NonLinear? Regression.
MODEL PROGRAM c0=0 Cx=-1.20 XX=0 .
COMPUTE PRED_ = Cx * ( 1 - ( ( XX / ( XX + x ) ) ** 2 ) ) - c0.
NLR c
* pa * (1-EXP(-pb * x)) + pc * (1-EXP(-pd * t)).
* NonLinear? Regression.
MODEL PROGRAM c0=0 PA=0 PB=0 PC=0 PD=0 .
COMPUTE PRED_ = pa * (1-EXP(-pb * x)) + pc * (1-EXP(-pd * t)) - c0.
NLR c
* PCX * ( 1 - ( ( PX / ( PX + x ) ) **2 ) ) * ( 1 + PM * ( 1- (( PT / (PT + t ) ) **0.3 ) )).
* NonLinear? Regression.
MODEL PROGRAM c0=0 PCX=0 PX=0 PT=0 PM=0 .
COMPUTE PRED_ = PCX * ( 1 - ( ( PX / ( PX + x ) ) **2 ) ) * ( 1 + PM * ( 1- (( PT / (PT + t ) ) **0.3 ) )) - c0.
NLR c

오전 1:42 2004-06-04, by Kenial

뭔가 되는 것 같기도 하고 아닌 것 같기도 하고.. 환장하겠네.~
Cm = C(x,t) - C0 ... 아 젠장 수식도 제대로 체크를 안하고 뻘짓하다니 ...

Levenberg-Marquardt Method이 아니라면... sequential quadratic programming이다!

오후 4:18 2004-06-03, by Kenial

http://groups.google.co.kr/groups?hl=ko&lr=&ie=UTF-8&newwindow=1&threadm=8kjf16%24mnf%241%40b5nntp2.channeli.net&rnum=3&prev=/groups%3Fq%3Dlevenverg-marquardt%2520algorithm%26hl%3Dko%26lr%3D%26ie%3DUTF-8%26newwindow%3D1%26sa%3DN%26tab%3Dwg

http://groups.google.co.kr/groups?q=SNLS1&btnG=%EA%B5%AC%EA%B8%80+%EA%B2%80%EC%83%89&hl=ko&lr=&ie=UTF-8&newwindow=1

http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/index.html

오전 12:17 2004-06-03, kenial

  1. 데이터 입력.
  2. 모델 1~5를 통해 모수의 값을 추정.
  3. 추정된 모수의 값으로 비선형 회귀분석 시도.
  4. 회귀분석의 Squared r값을 이용해 적절한 모델 결정.
  5. 다중공선성 체크.
  6. plot 출력.

    analyze - regression - curve estimation 후 함수의 타입을 테스트...!
    그다음 나온 b1 값을 토대로 nonlinear regression을 쌔운다
    상수항 포함/비포함을 참고
    (한글 spss 10.0에 의한 알기 쉬운 다변량분석, 노형진 저, 형설출판사)

오후 11:45 2004-05-27, kenial

샘플 데이터를 이용, c = PCX * ( 1- ((PX / (PX + x ))**2)) * ( 1 + PM * (1- (PT / (PT + t))**0.3)) 방정식의 회귀분석을 시도했으나, PT + t 값의 0일 때가 있어 divide by zero 에러를 내고 사망.
PT > a 의 일정값을 지정한 후 Squared R 값의 변화 :

a Squared R
1E-20 .04616
1E-19 .04616
1E-18 .56504
1E-17 .56458
1E-16 .56465
1E-15 .56478
1E-14 .56420
1E-13 .56447
1E-12 .56293
1E-11 .56529
1E-10 .56818
1E-09 .59836
1E-08 .62288
1E-07 .77039
1E-06 .63823
1E-05 .74458
1E-04 .89697
1E-03 .89542
1E-02 .89231
1E-01 .89485
1 .89521
1E+01 .85480
1E+02 .62513

도대체 이 결과를 어떻게 받아들여야 할지 알 수 없음.

오후 11:45 2004-05-27, kenial

2차 미팅

오전 10:00 2004-05-27, kenial

오후 6:35 2004-05-26, kenial

1차 미팅

기타분류 WorkBook


PythonPowered EditText of this page (last modified 2004-11-20 20:47:59)
FindPage by browsing, searching, or an index
Or try one of these actions: DeletePage, DeleteUploadedFile, LikePages, SpellCheck, UploadFile