Presentation is loading. Please wait.

Presentation is loading. Please wait.

proc freq data = "c:/test/hsb2";

Similar presentations


Presentation on theme: "proc freq data = "c:/test/hsb2";"— Presentation transcript:

1 proc freq data = "c:/test/hsb2";
/* c 디렉토리의 test폴더에 hsb2 데이터를 이용하여 freq라는 sas의 procedure를 실행한다   tables female / binomial(p=.5); /* tables는 freq의 대상 변수를 지정하는 것으로 여기에서는 tables female 이기 에 female이 대상변수가 된다. /* /는 옵션을 지정할 때 사용하는 것 binomial은 sas의 함수로 이항분포함수를 의미하는 것으로 p=0.5는 그 확률이 0.5인지를 검정하도록 지정한다. 0.5는 female 변수의 0 또는 먼저 코딩된 값의 비율을 의미한다   exact binomial; /* 이항함수분포의 정확검정도 시도해봐라 run; 정확검정의 양측검정 p값을 보아야

2 npar tests Spss에서 비모수 검정을 시작할 때 사용, NPTESTS도 사용됨 /binomial (.5) = female. 0.5는 female 변수의 0 또는 먼저 코딩된 값의 비율을 의미한다 이항분포함수의 p=0.5인지 검정하는 것으로 변수는 = 다음에 나오므로 해당 변 수는 female이다 주의할 점은 끝에 점이 있다 분석-비모수 검정-일표본 필드에서 female을 선택하고, 설정에서 관측확률과 가설값 비교(카이제곱검정을 선택하고 옵션은 50:50이므로 변경하지 않는다. 만일 60: 40이면 별도로 입력하 여야 함다.

3 setwd("c:/test") hsb2=read. csv("c:/test/hsb2
setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) table(female) chisq.test(table(female))  library(Rcmdr) 후에 데이터-활성 데이터셋에 있는 변수 관리하기 선택후에 수치변수를 요인으로 변환하기 female 선택 후에 숫자사용하기 newfemale 새로운 변수로 저장하고 통계-요약-빈도분포 female 선택후에 카이제곱 적합성 검정(오직하나의 변수) 클릭 후 예 비율을 입력할 수 있음

4 setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) table(female) probs<-c(0.6,0.4) 0.6과 0.4라는 (행벡터) 값을 probs라는 변수로 저장하라 chisq.test(table(female),p=probs) Female이라는 빈도를 계산 후에 chisquare검정을 하는데, 확률 p는 probs변수에 있는 (행벡터) 값을 사용한다. R의 경우는 sas와 spss와 달리, 두개의 기대 확률을 모두 써야 계산 이 된다

5 proc freq data = "c:/test/hsb2";
/* c 디렉토리의 test폴더에 hsb2 데이터를 이용하여 freq라는 sas의 procedure를 실행한다 tables race / chisq testp=( ); /* tables는 freq의 대상 변수를 지정하는 것으로 여기에서는 tables race이기에 race가 대상변수가 된다. /는 옵션을 지정할 때 사용하는 것 Chisq는 카이스퀘어 통계량을 계산하라는 명령 testp=( )는 4개 범주의 상대빈도 가정이 맞는지 검정을 하라는 명령 run;

6 npar test Spss에서 비모수 검정을 시작할 때 사용, NPTESTS도 사용됨 /chisquare = race Chisquare 검정을 하되 변수는 = 다음에 나옴. 이경우는 race가 chisquare 검정을 하는 변수임 /expected = 기대빈도는 순서대로 다음과 같다 주의할 점은 끝에 점이 있다 분석-비모수 검정 race만 남겨둠 설정에서 카이제곱검정에서 옵션을 누르 을 순서대로 입 력

7 proc freq data = "c:/test/hsb2";
/* c 디렉토리의 test폴더에 hsb2 데이터를 이용하여 freq라는 sas의 procedure를 실행한다   tables schtyp*female / expected chisq;   /* tables schtyp*female 는 schtyp을 행에 female 을 열에 놓 고 빈도수를 세는 것 / expected chisq; /* expected는 기대빈도를 출력 chisq는 카이스퀘어 통계량을 계산하는 것; run;

8 Crosstabs /* sas의 proc freq와 유사한 것  /tables = schtyp by female /*tables는 표를 만들라는 명령어, 앞에 나오는 것이 행, 뒤에 나오는 것이 열이고 sas는 *를 사용했지만 spss는 by를 사용  /statistic = chisq. /*카이스퀘어 통계량을 프린트 하는 것 분석-기술통계-교차분석 통계량 카이제곱 셀 기대빈도

9 setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2)
/*이는 sas의 data=과 유사한 기능 table(schtyp, female) /*빈도수를 세는 것으로 행렬을 지정 chisq.test(schtyp, female) /*chisq.test는 카이스퀘어 검정을 하라는 함수 fisher.test(schtyp, female)

10 library(Rcmdr) 후에 데이터-활성 데이터셋에 있는 변수 관리하기 선택후에 수치변수를 요인으로 변환하기 female 선택후에 숫자사용하기 새로운 변수 newfemale로 저장 하고 schtyp 선택후에 숫자사용하기 새로운 변수 newschtyp로 저장 하고 통계-분할표-이원표 변수 선택 통계를 눌러 fisher exact 검정을 할 수 있음

11 단일 표본에서 평균 차이가 있는가 write라는 변수의 평균이 50과 통계적으로 다른가 하는 테스트
proc ttest data = "c:/test/hsb2" h0 = 50; /* proc ttest는 ttest 프로시져를 하라는 것 ttest 프로시져는 t 검정 을 하는 프로시져 /* h0 = 50는 귀무가설의 평균이 50임을 지정 var write; /* 변수를 지정하는 것으로 변수를 지정할 때 ttest 프로시져는 var를 사용한다 var 를 쓴 다음에 변수명을 쓰면 된다 run;

12 t-test /* sas의 proc ttest와 동일 /testval = 50 /*sas의 h0=50과 동일, test value의 줄임말 /variable = write. /*sas의 var write;와 동일

13 setwd("c:/test") hsb2=read. csv("c:/test/hsb2. csv") t
setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") t.test(hsb2$write, alternative='two.sided', mu=50,conf.level=0.95) /* hsb2$write는 hsb2 데이터에 있는 write 변수를 t 검정을 하 는 것, alternative='two.sided',는 양측검정을 하는 것, mu=50는 평균이 50을 검정하라는 것, conf.level=0.95는 신뢰수준이 95% 라는 것 t.test(hsb2$write, mu=50)

14 후에 데이터셋 활성화하고, 통계-평균-일표본 T 검정 write 선택하고 mu에 50쓰기

15 proc univariate data = "c:\test\hsb2";
/*var write; var를 쓰고 변수명을 쓰면 된다 proc univariate data = "c:\test\hsb2" loccount mu0 = 50; /* loccount mu0 = 50 는 중위수 즉 미디언이 50인지를 검정하 라는 것 location count run;

16 NPTESTS /*비모수 검정을 시작한다 /ONESAMPLE TEST (write) WILCOXON(TESTVALUE=50) /*일표본 샘플 검정을 하되 변수는 write이고 Wilcoxon 부호검 정을 하되, 테스트 값은 50으로 write의 미디언이 50인지를 검 정하라는 것 /MISSING SCOPE=ANALYSIS USERMISSING=EXCLUDE /CRITERIA ALPHA=0.05 CILEVEL=95.

17 setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") wilcox.test(hsb2$write,alternative='two.sided',mu=50,conf.level =0.95) /* 미디언 검정을 할 때에는 wilcox.test 함수를 이용한다. 그리 고 변수명을 쓰고 mu=50은 미디언이 50인지를 검정하라는 것 이다. wilcox.test(hsb2$write,mu=50)

18 proc ttest data = "c:/test/hsb2";
/* 두개의 독립 표본의 평균 차이를 할 때에도 proc ttest 사용, 두개 의 독립표본이란 남자와 여자 표본을 의미 class female; /* 표본이 female이라는 것으로 구분, class female이란 female 변수 값 별로 평균 비교를 한다는 뜻 var write; /*평균차이를 볼 변수는 write run; 결과에서 Equality of Variances의 p 값이 0.05보다 크면 Pooled, 0.05 보다 작으면 Satterthwaite로 보아야 한다

19 t-test groups = female(0 1)
/* 평균 차이 검정을 하는데 집단은 female 변수에 있고 현재 female 변수의 값은 0과 1로 되어 있다 /variables = write. /* 평균을 비교하는 변수는 write이다

20 setwd("c:/test") hsb2=read. csv("c:/test/hsb2
setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) hsb2 <- within(hsb2, { newfemale <- as.factor(female)}) leveneTest(write ~ newfemale, data=hsb2, center="mean") 분산의 동질성을 검정하는데 집단은 newfemale이고, 변수는 write이 다. 데이터는 female을 newfemale로 변환한 hsb2이다. 결과에서 p가 0.05보다 작기 때문에 아래의 var.equal=FALSE이 사용되었다. P가 0.05보다 크면 var.equal=TRUE를 써야 한다 t.test(write~newfemale, alternative='two.sided', conf.level=.95, var.equal=FALSE,data=hsb2) 두집단의 평균 비교를 하는데 집단은 newfemale이고 평균을 비교하 는 변수는 write이고, 데이터는 hsb2이다

21 11월 10일 자료 1 게시판 20 21에 있는 세개 파일 다운 받아 c:\test에 저장

22 대응표본 proc ttest data = "c:/test/hsb2" ;
paired write*read; run; /* 다만 대응 표본인 경우는 class 변수명을 하지 않고 paired를 사용한 후 변수명*변수명을 하면 됨

23 T-TEST PAIRS=read WITH write.
/* t 검정을 하되 pairs는 대응표본임을 명시하고 변수 사이에 with를 씀

24 setwd("c:/test") hsb2=read. csv("c:/test/hsb2. csv") t
setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") t.test(hsb2$write,hsb2$read,paired=TRUE) /* t.test 함수를 이용하되 paired=TRUE를 써서 대응표본 임을 명시 library(Rcmdr) 통계 평균 paired t 검정 변수선택

25 Wilcoxon-Mann-Whitney test (1독립변수 2 독립적 그룹 종속변수는 순위변수)
종속변수가 순서변수, 1등급, 2등급 등 proc npar1way data = "c:/test/hsb2" wilcoxon; /* 비모수 검정 프로시저 npar1way 사용, wilcoxon 두 샘플 테 스트 사용 class female; var write; run; 정규분포 접근 z 검정을 사용하여야 함

26 npar test /m-w = write by female(0 1).
/* 옵션에서 man whitney 통계량을 계산하고 종속변수는 write이고 집단변수는 femal인데 female은 0과 1로 코딩되어 있고, 이를 표시 하기 위해 by를 사용 *Nonparametric Tests: Independent 분석-비모수검정-독립표본 검정필드에 writing 집단에 female 설정 누르고 Mann-Whitney

27 setwd("c:/test") hsb2=read. csv("c:/test/hsb2
setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) hsb2 <- within(hsb2, { newfemale <- as.factor(female)}) with(hsb2, tapply(write, newfemale, mean, na.rm=TRUE)) wilcox.test(write ~ newfemale, alternative="two.sided", data=hsb2) /*wilcox.test 이지만 sas의 wilcoxon 통계량이 아닌 MW 통계량을 보여주고 있음 library(Rcmdr) 후에 데이터-활성 데이터셋에 있는 변수 관리하기 선택후에 수치변수를 요인으로 변환하기 female 선택후에 숫자사용하기 새로운 변수 newfemale로 저장하고 통계-비모수검정 - 이표본 wilcoxon 선택기능에서 정규 근사 사용할 수 있음

28 proc glm data = "c:/test/hsb2";
/* sas에서 평균 비교의 일반적인 프로시져는 glm class prog; /* class는 집단의 변수를 지정하는 것 model write = prog; /* proc glm은 꼭 model이라는 용어를 사용하고 바로 뒤에 나오는 것이 종속변수이고 = 다음에 집단변수가 나와야 한다 means prog/scheffe; /* Prog별 평균을 나타내고, 사후분석을 scheffe 방식으로 하라는 것 을 지정한다 run;

29 oneway write by prog /POSTHOC=SCHEFFE.
/* 꼭 마지막에는 .이 있어야 함 분석-평균비교-일원배치분산분석 사후분석

30 hsb2=read. csv("c:/test/hsb2
hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) library(agricolae) model<-aov(write~prog, data=hsb2) comparison <- scheffe.test(model,"prog", group=TRUE,console=TRUE)

31 proc corr data = "c:/test/hsb2";   var read write; run;
/* sas에서 상관계수를 얻으려면 proc corr 프로시져를 사용한 다. Proc corr 다음에는 var가 오고 var 다음에 상관분석을 하고 싶은 변수를 쓴다 proc corr data = "c:/test/hsb2";   var female write; run;

32 correlations /variables = read write.
/*spss에서 상관분석을 하기 위해서는 correlations라는 함수를 이용하고 옵션에서 변수명을 지정하기 위하여 /variables 를 사 용하고 =를 붙인 후에 변수명을 쓰고 마침표를 하면 됨 분석-상관분석-이변량 상관 분석

33 setwd("c:/test") hsb2=read. csv("c:/test/hsb2
setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) plot(read,write) /* read는 x 축에 나오고, write는 y 축에 나옴 abline(lm(write~ read)) /*lm은 linear model의 약자로 선형모델분석으로 write는 y, read는 x 가 됨, abline 선을 그리는 것 cor.test(read,write) /* 상관계수를 얻으려면, cor.test 함수를 이용하고 변수사이에 콤마 를 쓰면 됨 cor.test(female,write)

34 비모수 상관계수 proc corr data = "c:/test/hsb2"; var read write;
proc corr data = "c:/test/hsb2" spearman; run; /* proc corr 문에서 spearman이라는 옵션만 추가하면 됨

35 비모수 상관분석 nonpar corr /variables = read write /print = spearman.
비모수 상관을 하려면 nonpar corr (Nonparametric correlation) /varables 다음에 =를 하고 변수 명을 쓴 후 /print=spearman은 비모수상관계수를 출력하라는 것 nonpar corr /variables = read write. 위만으로도 충분

36 비모수 상관분석 setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) cor.test(read,write,method="spearman") 비모수상관을 하려면 cor.test함수를 이용하고 괄호안에 변수를 쓰되 콤마로 구분하고 method="spearman“을 써서 비모수 상 관을 명시한다

37 단순 선형회귀 proc reg data = "c:/test/hsb2"; model write = read / stb; run;
Sas에서 회귀를 하려면 proc reg라는 프로시져를 이용하고 proc reg 다음 문장은 model을 쓴다 Model 다음에 나오는 변수가 종속변수(y)이고 종속변수 다음에 =를 쓰고 독립변수 (x)를 쓴다. 두가지 이상 변수가 있을 때 상 대적인 영향력의 크기를 알려면 /stb를 쓴다 . Standardized beta

38 단순 선형회귀 regression variables = write read /dependent = write /method = enter. Spss에서 회귀를 하려면 regression을 쓰고 variables= 다음에 변수들을 모두 쓰고 /dependent=를 쓴 후 종속변수를 쓰면 (독립변수는 당연히 지 정되고) /method=enter.를 붙여야 일반적인 회귀분석이 된다.

39 단순 선형회귀 setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) reg1 <- lm(write ~ read,data=hsb2) 회귀를 하려면 lm이라는 함수를 이용하고 linear model 종속변 수를 먼저쓰고 다음에 ~ 쓴 후 독립변수를 쓴다. Data=hsb2는 데이터가 hsb2를 의미한다 <-는 회귀분석을 한 후에 그것은 왼쪽에 있는 개체로 저장하라 는 뜻이다 summary(reg1) reg1의 요약정보를 프린트 하라는 것

40 다중회귀 proc reg data = "c:/test/hsb2";  model write = female read math science socst / stb; run; 단순회귀와 다른점은 복수의 독립변수를 쓰고 있다는 점이다

41 다중회귀 regression variable = write female read math science socst /dependent = write /method = enter. 단순회귀와 다른 점은 regression variable = 이후에 독립변수만 추가된 점이다

42 다중회귀 setwd("c:/test") hsb2=read.csv("c:/test/hsb2.csv") attach(hsb2) reg1 <- lm(write ~ female+read+ math +science+ socst,data=hsb2) 다중회귀에서 변수를 추가할 때에는 +를 쓰고 추가한다 summary(reg1) 표준화계수를 얻을려면 QuantPsyc 패키지를 설치한 후 QuantPsyc 라이브러리를 이용을 한후 lm.beta 함수를 이용하면 된다 install.packages("QuantPsyc") library(QuantPsyc) lm.beta(reg1)


Download ppt "proc freq data = "c:/test/hsb2";"

Similar presentations


Ads by Google