728x90

SAS 또는 SPSS 에서 R로 갈아타는 것이 가능한지 궁금해 하는 사람들이 많을 겁니다.

저도 그런 사람 중 하나입니다. R 강의 중에도 가끔 듣는 질문이기도 합니다. 

"무조건 R로 다 됩니다. 아무 걱정말고 R로 갈아타세요..."  무책임한 말인 듯 합니다.

뭐 하나 하나 예를 들어가며 그 가능성을 설명하면 그나마 걱정이 덜해질 듯 합니다.

그래서 우선 통계기법부터 하나씩 시작해 봅니다. 

궁금한 부분이 있으면 댓글을 부탁드립니다.

 

(1-1) 카이제곱법 SAS 예제

/* 카이제곱법 간단한 형태 */

DATA a1;INPUT gender $ hob count ;

CARDS;

F 1 5

F 2 15

F 3 20

F 4 10

M 1 30

M 2 20

M 3 15

M 4 15

;

PROC FREQ;TABLES gender*hob/CHISQ;WEIGHT count;  # FREQ 프로시져를 사용하되 옵션으로 WEIGHT 를 사용

RUN;

 

SAS에서는 카이제곱법을 적용하기 위해 SAS/STAT 제품의 FREQ 프로시져를 이용합니다.

 

(1-2) 카이제곱법 R 예제

count <- c(15,35,20,25,25,40,30,20)

a1 <- matrix(count,nrow=2,byrow=T)

a1  * 데이터 a1 을 확인

chisq.test(a1)

 

R에서는 {stats} 패키지에 들어 있는 chisq.test( ) 함수를 이용합니다.

패키지 [stats} 는 R을 설치하면 기본적으로 설치되며, 메모리에 올라옵니다.

 

(2-1) t 검정 SAS 예제

/* t-검정의 간단한 형태 */

DATA a1;INPUT group score @@;

CARDS;

1 60 2 64

1 66 2 69

1 72 2 75

1 78 2 81

1 84 2 87

1 80 2 92

;

PROC TTEST;CLASS group;VAR score;

RUN;

 

SAS에서는 t검정을 적용하기 위해 SAS/STAT 제품의 TTEST 프로시져를 이용합니다.

 

(2-2) t검정 R 예제

x1 <- c(60,66,72,78,84,80)

x2 <- c(64,69,75,81,87,92)

t.test(x1,x2)

t.test(x1,x2,var.equal=T) # 분산이 같은 경우

var.test(x1,x2)

 

R에서는 {stats} 패키지에 들어 있는 t.test( ) 함수를 이용합니다.
아시겠지만 t검정 이전에 먼저 분산이 같은가?를 먼저 검정하시고(var.test)

분산이 같은 경우 var.equal=TRUE 라는 옵션을 사용해야 합니다.

var.equal=T 를 생략하면 기본적으로(default)로 분산이 다른 경우로

간주하고 결과가 나오니 각별히 주의하셔야 합니다.

 

(3-1) 분산분석법 SAS 예제

/* 분산분석법의 간단한 형태 */

DATA a1;INPUT group score @@;         

CARDS;  

1 60 2 64 3 83

1 66 2 69  3 76

1 72 2 75 3 82

1 78 2 81 3 97

1 84 2 87 3 98

1 80 2 92 3 99

;

PROC ANOVA; 
CLASS group;               
MODEL score=group;MEANS group;  

RUN;

 

(3-2)분산분석법 R 예제

x1 <- c(60,66,72,78,84,90)

x2 <- c(64,69,75,81,87,92)

x3 <- c(83,76,82,97,98,99)

 

gender <- c("M","M","M","F","F","F")

(gr<-c(rep(c("A","B","C"),each=6)))

(score <- c(x1,x2,x3))

(tot <- data.frame(gr,score))

str(tot)

out <- aov(score~gr,data=tot)  
summary(out)

 

R에서는 {stats} 패키지에 들어 있는 aov( ) 함수를 이용합니다.

 

(4-1) 상관분석 SAS 예제

/* 상관분석 간단한 형태 */

DATA a1;
INPUT gender $ wei hei age ;
CARDS;
F 65 171 23 
F 66 172 24 
F 69 175 38 
M 67 173 42 
M 71 174 43
M 72 178 39
;
PROC CORR;VAR wei hei age; 
RUN;

 

SAS에서는 상관분석을 적용하기 위해 SAS/STAT 제품의CORR 프로시져를 이용합니다.

 

(4-2) 상관분석 R 예제

wei <- c(65,66,69,67,68,70)
hei <- c(171,172,176,173,177,178)
age <- c(23,24,38,43,40,42)
cor.test(hei,wei)                    #  키와 몸무게 상관계수
cov(hei,wei)                    #  키와 몸무게 공분산 
cor.test(hei,wei,method="pearson")   #  키와 몸무게 Pearson 상관계수 

 

R에서는 {stats} 패키지에 들어 있는 cor.test( ) 함수를 이용합니다.

 

(5-1) 회귀분석 SAS 예제

 

/* 회귀분석 간단한 형태 */

DATA a1;

INPUT gender $ wei hei age ;

CARDS;

F 65 171 23

F 66 172 24

F 69 175 38

M 67 173 42

M 71 174 43

M 72 178 39

;

PROC REG;MODEL wei= hei ;

RUN;

 

SAS에서는 회귀분석을 적용하기 위해 SAS/STAT 제품의 REG 프로시져를 이용합니다.

 

 

 

(5-2) 회귀분석 R 예제

 

wei <- c(65,66,69,67,68,70)

hei <- c(171,172,176,173,177,178)

age <- c(23,24,38,43,40,42)

lm(wei~hei+age 

 

R에서는 {stats} 패키지에 들어 있는 lm( ) 함수를 이용합니다.

 

 

+ Recent posts