posted by Yuki-H. 2011. 1. 19. 11:37

프로그램 정보

  • R - http://www.r-project.org/
    • 수치 분석용 패키지 MATLAB 등이 있지만 본 프로그램은 오픈소스용 프로그램
  • MASS
    • Robust Regression 관련 패키지, 예제를 보고 기본 패키지인 줄 알았으나 아니였음, 이 패키지 찾는다고 고생함.-_-;;;

관련 예제 링크

적용 예

  • 하고자 하는 일
    • 2 차원 그래프 상에 X,Y 축에 각각 데이터들의 좌표 정보들만 가지고 있을 때 이 들 좌표 정보와 가장 맞아 떨어지는 기울기 정보를 찾고자 하기 위함이다.
  • 기본적인 방법
    • R 스크립트에서 데이터를 로드 해 roubst linear regression 과 linear regression 으로 기울기 정보를 추정하는 스크립트를 자동으로 작성한다.
    • 자동으로 작성하는 스크립트는 아래에 참조
  • robust regression 이 추정이 실패했을 경우,
    • R을 실행해 해당 데이터 값을 화면에 출력하고 robust regression 결과와 linear regression 결과를 그래프로 출력하여 보았다. 그 중 눈으로 봤을 때 가장 적합한 것을 선택하여 추정값으로 이용함.

관련 스크립트 - R용 회귀 분석 정보 스크립트 작성 코드

  • 사용법
    makeRBatchFile <생성할 스크립트 파일명> <데이터 파일명>
  • 데이터 형식
    X, Y
    65.0, 529.0
    31.0, 100.0
    25.0, 625.0
    18.0, 36.0
    54.0, 2916.0
    0.0, 729.0
  • 소스코드
    function makeRBatchFile() {
           rm -rf $1
           touch $1
           chmod a+x $1
           echo '#!/opt/R-2.12.1/bin/Rscript' >> $1
           echo 'library(MASS)' >> $1
           echo 'lst=read.table("'"$2"'", sep=",", header=TRUE)' >> $1
           echo 'lst2=lst[]' >> $1
           echo 'cat("'"$2"'\n")' >> $1
           echo 'm1=rlm(Y~X, data=lst2)' >> $1
           echo 'cat("rlm result:")' >> $1
           echo 'coef(summary(m1))' >> $1
           echo 'm2=lm(Y~X, data=lst2)' >> $1
           echo 'cat("lm result:")' >> $1
           echo 'coef(summary(m2))' >> $1
           echo 'cat("\n")' >> $1
    }