WinBUGS 베이지안 통계 프로그램 

베이지안을 바탕으로 Markove chain Monte Carlo (MCMC)방법을 이용한 통계 프로그램입니다. 석사 페이퍼쓰면서 이용하는 중인데 자료 찾은걸 바탕으로 정리하고 싶어서 포스팅합니다. exe파일이라서 윈도우에서 설치할 수 있어요. 


WinBUGS 설치방법 

사이트 : https://www.mrc-bsu.cam.ac.uk/software/bugs/the-bugs-project-winbugs/

설치방법은 동영상보고 참고했습니다. 




WinBUGS에서 중요한 점

가끔 오류나고 그러는데 (에러메시지는 제가 정리를 안해둬서요) 관리자모드로 실행해야합니다. R2WinBUGS패키지 이용해서 WinBugs프로그램 불러오는 경우 역시 R을 실행할때도 관리자모드로 실행해야 오류가 안뜹니다




 전 HIV 데이타를 가지고 WinBugs을 이용해 parameters을 구하는 중인데요. 

모델을 적고, 이니셜벨류를 지정하고 (혹은 알아서 generate할수도 있습니다) 데이터를 입력하게되면 stat을 이용해서 parameters값을 보거나 trace기능을 통해 계산되는 과정을 볼 수 있습니다. 



제가 참고한 사이트 pdf버전 올려드리니 참고하면 될 듯 합니다. 


http://homepage.stat.uiowa.edu/~gwoodwor/BBIText/AppendixBWinbugs.pdf


http://www.stats.ox.ac.uk/~cholmes/Courses/BDA/Winbugs/winbugs-help.pdf



R2WinBUGS 패키지 

R을 이용해서 WinBUGS를 사용할 수 있고요. 예를들어, 시뮬레이션을 통해 데이터를 생성한 후, parameters의 평균값을 구할때 보통 R을 이용해 코드를 짜고 거기에 WinBUGS를 불러와서 각 데이터의 parameters값을 구할 수 있는데요. 아래 이미지 보면 제 컴퓨터 캡쳐화면이고요. Console보면 7, 8, 9 등... 7번째 8번째 9번째 데이터를 만들어서 거기에 따른 값을 WinBUGS을 통해 구해진걸 보여지는 상황입니다. 200번 구해서 평균값을 구할 예정이고요.


제가 참고한 자료 올립니다. 

 

http://www.dme.ufrj.br/mcmc/R2WinBUGS.pdf

http://plantecology.syr.edu/fridley/bio793/bayes.html

https://www.unc.edu/courses/2010fall/ecol/563/001/docs/lectures/lecture13.htm

 




에러메시지에 관한 내용은 아래 파일에서 참고하세요. 

http://www.politicalbubbles.org/bayes_beach/manual14.pdf 


반응형

SAS Base, A00-211 Crambible,

SAS 크램바이블 SAS 베이스 자격증, SAS 문제풀이


QUESTION NO: 152

The following SAS program is submitted:


data work.test;
First = 'Ipswich, England';
City_Country = substr(First,1,7)!!', '!!'England'; 

run;


Which one of the following is the length of the variable CITY_COUNTRY in the output data set?


A. 6 

B. 7 

C. 17 

D. 25



|| 와 !! 는 문자를 연결해주는 역할을 합니다. 

Ipswich, England = 16, 

',(공백)' = 2 

England = 7 




Answer: D 













QUESTION NO: 153

The following SAS program is submitted: 


data work.test;
First = 'Ipswich, England';
City = substr(First,1,7);

City_Country = City!!', '!!'England'; 
run;

Which one of the following is the value of the variable CITY_COUNTRY in the output data set?


A. Ipswich!!
B. Ipswich, England 

C. Ipswich, 'England' 

D. Ipswich , England




참고로 city변수는 first의 변수와 length가 16으로 같습니다. city의 값은 first 변수의 첫번째 덩어리가 되는거죠. 그래서 Ipswich_________ (뒤에는 공백 9칸) 값이 됩니다. 그리고 쉼표로 구분되어지고 다시 England가 붙게 되어요. 


만약 C처럼 표현하고 싶으면 trim 기능을 이용해야합니다. 


City_Country = City!!', '!!'England' -> "Ipswich_________, England"

City_Country = TRIM(City)!!', '!!'England' -> "Ipswich, England"





Answer: D 



반응형

SAS Base, A00-211 Crambible, SAS 크램바이블 

SAS 베이스 자격증, SAS 문제풀이


QUESTION NO: 150

The following SAS program is submitted: 


data work.test;
Author = 'Christie, Agatha';
First = substr(scan(author,2,' ,'),1,1);

run;

Which one of the following is the value of the variable FIRST in the output data set?


A. A
B. C
C. Agatha
D. '' (missing character value) 



149번 꼭 확인하고 오세요~ First 변수의 output이 뭔지 물어보는 질문입니다. 

아래 이미지의 첫번째 아웃풋은 149번 문제 답이었고요. 그 아래가 이 문제의 답 입니다. 


First = substr(scan(author,2,' ,'),1,1); 여길 보면 '공백,' 이렇게 되어있습니다. 따옴표 안에 공백, 이렇게 되어있어서 공백, 이 묶음이 구분자가 됩니다. 





참고로~ 

substr(scan(author,2,' ,'),3,2); 구분자로 구분되어진거의 두번째 덩어리에서, 3번째 부터 시작한 2개의 자리 값을 보여지는 결과입니다. 



반응형

SAS Base, A00-211 Crambible, SAS 크램바이블 

SAS 베이스 자격증, SAS 문제풀이


QUESTION NO: 149

The following SAS program is submitted: 


data work.test;
Author = 'Agatha Christie';
First = substr(scan(author,1,' ,'),1,1);

run;

Which one of the following is the length of the variable FIRST in the output data set? 


A.1 

B. 6

C. 15 

D. 200


크램바이블에서 답은 D로 되어있는데요. 사실 SAS 9.4 버전에서는 답이 200이 맞지만 버전이 바뀐 뒤로는 200이 아니라 15가 답입니다. output은 아래 그림과 같고요. 


scan 함수의 길이가 따로 지정되지 않으면 첫번째 값(argument)이 길이로 지정된다고 합니다. 





Answer: D C


반응형

SAS Base, A00-211 Crambible, SAS 크램바이블 

SAS 베이스 자격증, SAS 문제풀이



QUESTION NO: 148


The following SAS program is submitted: 


data work.retail;
cost = '20000';
total = .10 * cost;

run;


Which one of the following is the value of the variable TOTAL in the output data set?

A. 2000
B. '2000'
C. . (missing numeric value) 

D. '' (missing character value)




cost 변수가 따옴표안에 들어가 문자형 값을 나타내지만 알아서 문자형을 숫자형으로 변환해서 total값으로 들어가게 됩니다. 물론 log 파일에는 "NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column) 이라고 알려줍니다. 


Answer: A 



반응형

+ Recent posts