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( ) 함수를 이용합니다.
'FAQ & 궁금한 것 > 자주하는 질문(FAQ)' 카테고리의 다른 글
표본분산을 구할 때 (n-1)로 나누는 이유 (0) | 2021.04.08 |
---|---|
(g) SPSS, SAS, R 비교 (0) | 2020.09.21 |
(2)g 통계기법 4가지-t검정,ANOVA,상관분석/회귀분석, 카이제곱법 (0) | 2020.09.19 |
최대우도추정법 (0) | 2020.08.21 |
4-2(g) 샘플데이터(잠정)과 적용통계기법 (0) | 2020.07.21 |