본문 바로가기

R8

R을 이용한 3차원 PCA plot 그리기 3차원의 scatter plot을 그리기 주성분분석(PCA)에서는 1,2주성분에 대해서 각각 x,y의 2차원상에서 plot을 그려서 보여준다. 그런데 어느 논문에서 각 개체의 1부터 7까지 주성분을 모두([1,2주성분],[3,4주성분],[5,6주성분],[7,8주성분] - 총 4개의 그래프를 죄다 보여주는)보여주는 것을 보고는 저럴 필요가지 있을까라는 생각이 들긴 했지만, 그렇다면 개체의 1,2,3 주성분(x,y,z축으로)을 3차원으로 보여주는 것도 괜찮을 것 같다는 생각이 들었다. 우선 R의 rgl패키지의 plot3d()를 이용할것이므로 rgl 패키지를 설치한다. >library(rgl) >datap1=prcomp(data,scale=TRUE) >p2plot3d(p2[,1:3]) 또는 prcomp() 대.. 2009. 6. 25.
PCA(Principal Components Analysis) - Using R 각 라면에 대하여 면발, 라면 그릇의 모양(크기), 국물맛에 대한 점수가 있다고 한다면, 3개의 변수(면, 그릇, 국물)를 가지고 PCA 분석을 해보자. 1. 데이터를 read.table()을 이용해서 로드한다. 2. 이제 각 변수를 표준화하고, 이에 대한 상관행렬을 구한다. 3. EigenValue, EigenVector 값을 구한다. 첫번째 주성분(PC1)의 기여율은 Cumulative Proportion이 0.524 즉, 52%의 기여율을 보인다. 이것은 PC1이 분석대상의 데이터가 가지고 있던 정보가 PC1 주성분에 어느정도 집약 되어 있는지에 대한 대략적인 크기가 된다. 4. 각각에 대한 제1주성분, 제2주성분 점수를 구한다. 5. 제1주성분 점수와 제2주성분 점수를 토대로 그래프 작성 생성된 .. 2009. 6. 23.
대량의 R 코드를 클러스터에 분산하기 수백개의 R 코드를 돌려야 할 일이 있다면, 한대의 컴퓨터에서는 100일이 걸릴일이라면 100대의 컴퓨터라면 100일 + 알파,, 요 알파는 각 컴퓨터에 로그인하고 R 코드를 옮기고, 명령어를 통해서 실행하고, 그결과를 취합하고,,, 여간 알파에 드는 시간이 많이 드는것이 아니다. 그래서 클러스터와 job 매니지먼트가 있다. 여기서는 리눅스 기반의 클러스터에 효율적으로 R 코드를 수백대의 컴퓨터에 실행하고 그 결과를 손쉽게 얻는 방법을 소개한다. 기본적으로 R의 경우에는 Interaction 프로그램으로 사용자와의 대화 형식으로 코드를 작성하게 된다. 명령->응답->명령->응답,,,의 형식 따라서 R 코드를 Bash에서 사용하기 위해서는 --quite, --no-save의 옵션을 통해서 처음 나오는 R에.. 2008. 11. 6.
RRDtool의 데이터를 가져와서 그래프 그리기 클러스터에서 시스템 모니터링을 위해 Ganglia를 사용하고 있는데, ganglia는 RRDtool을 이용해서 시스템의 온갖 정보를 저장하고 그래프로 출력을 해준다. 단점이라고는 할 수 없지만, 내가 원하는 데이터만 내가 원하는 형태로 그래프로 출력하기 위해서는 RRD 데이터를 가져와서(fetch) 그래프로 그리는 수 밖엔 없다. 어제는 클러스터의 6개월간의 시스템 로드 현황을 그래프로 그릴 일이 있었는데, ganglia에서는 시간, 일, 주, 달, 년 단위로 밖에는 그래프로 그려 주지 않기 때문에 6개월간만을 그리기 위해서는 직접 RRD 데이터를 가져와서 그리는 수 밖에는 없다. 여기에서는 RRDtool의 데이터를 가져와서 R을 통해서 그래프를 그리는 과정에 대해서 설명하려고 한다. 어딘가에는 나 같은.. 2008. 7. 10.