독립성분분석을 지원하는 패키지에는 fastICA와 mlica가 있다. 보통 fastICA가 널리 쓰인다.

간단한 예제를 하나 따라가면서 해보자. 먼저 2개의 값을 가지는 500개의 자료를 만들자.
S = matrix(runif(1000), 500, 2)
다음엔 혼합 행렬(mixing matrix)를 만든다.
A = matrix(c(1, 1, -1, 3), 2, 2, byrow = TRUE)
원자료와 혼합행렬을 곱하면 관찰자료가 만들어진다.
X <- S%*%A
요인분석은 종류가 매우 많기 때문에 R에서도 다양한 요인분석 패키지와 함수들이 있다. 기본적으로 최대 우도(Maximum Likelihood) 요인 분석을 지원하는 factanal() 함수가 있다. 예제에 사용할 swiss 자료는 스위스의 프랑스어 사용지역의 출생율과 관련 변수를 측정한 것이다.
> fv = factanal(swiss, factors=2)
factanal 함수는 여러 개의 옵션이 있으나 최소한 자료와 요인 수는 주어야 한다. 요인 회전은 varimax를 기본으로 한다. 그 외에 promax를 지원하며, oblimin이나 quartimin을 비롯한 다른 요인 회전은 GPArotation 패키지를 설치하면 된다.
R은 MS윈도는 물론 리눅스에서도 잘 작동한다. 여기서는 우분투 6.10 Edgy Eft 배포판을 기준으로 설명한다.
R은 Universe 패키지이므로 source.list에 Universe 저장소를 직접 추가하거나, 시냅틱에서 분류 > 저장소 > 커뮤니티에서 관리하는 오픈 소스 소프트웨어(universe) 순으로 선택한다. 저장소를 추가한 다음 쉘에서 아래 명령을 입력하거나 시냅틱에서 r-base 패키지를 찾아 설치한다.
$ sudo apt-get update $ sudo apt-get install r-base
R에는 princomp와 prcomp 두 가지 주성분분석 함수가 있다. 사용법이나 결과가 거의 비슷하지만 내부 알고리듬이 다르다. princomp는 교과서에 많이 나오는 방법처럼 공분산행렬의 고유벡터를 구하는 방법을 사용하고, prcomp는 자료 행렬을 특이값 분해(SVD:Singular Value Decomposition)하는 방법을 사용한다. 보통 prcomp를 더 선호하며 princomp는 S-Plus와 호환을 위해 존재한다.

USArrests 자료를 사용해보자. 미국의 각 주별로 도시인구비율(UrbanPop)과 인구 10만명 중 살인(Murder), 폭력(Assault), 강간(Rape) 혐의로 체포된 사람의 수에 대한 자료이다. 아래에서 scale 옵션을 TRUE로 한 이유는 도시인구비율과 체포된 사람 수가 서로 단위가 다르기 때문이다. princomp에서는 상관행렬의 PCA를 구한다.
통계 분석의 목표는 독립변수들을 가지고 종속변수를 설명하고 예측하는 것이다. 다시 말해 독립변수 x와 종속변수 y 사이에 y = f(x)와 같은 함수 관계가 있다면 이 함수 f를 찾는 것이 통계분석의 목적이다. x와 y의 성질, f의 종류에 따라 다양한 통계분석법이 있다.

- 출처: 김두섭, 강남준 (2000). 회귀분석: 기초와 응용. 나남출판.
R에서 회귀분석은 lm()함수를 이용한다. women 샘플 데이터를 이용해서 단순 회귀 분석(simple regression)을 해보자.
> data(women) > model = lm(weight ~ height, women)
lm(weight ~ height,women)은 종속변수를 weight, 독립변수를 height로 설정한 것이다. 그래프를 그려보자. plot함수는 산점도를 그리고 abline함수는 회귀분석 결과를 가지고 직선을 그려준다.
> plot(weight ~ height, women) > abline(model)

분석 결과를 보고 싶다면 summary함수를 사용한다.
R에서 분산 분석은 aov 함수를 사용한다. 샘플 데이터 중에 CO2를 사용해서 분산분석을 해보자.
> data(CO2)
상자 그림을 그려보자.
> boxplot(uptake ~ Type, data=CO2)

이제 분석을 해보자. aov함수에는 관계식과 데이터를 받는다. 관계식은 "종속변수 ~ 독립변수" 형태로 쓴다. Type에 따라 uptake가 달라지는 지 알고 싶다면 uptake ~ Type이라고 쓴다.
> ca = aov(uptake ~ Type, CO2)
R은 통계 처리를 위한 프로그래밍 언어로서 여러 사람들의 자발적 참여에 의해 개발되고 있는 자유 소프트웨어입니다. 무료로 다운받을 수 있으면서도 고가의 통계패키지보다 더 강력한 통계 기능과 화려한 그래픽을 제공합니다.
