Friday, April 27, 2012

Using Excel for Bioinformatics Data: Five Issues, Five Solutions

아래 링크는 5AM이라는 bioinformatics 회사에서 제공한 white paper로 생물학자들이 데이터를 분석하는데  excel을 많이 애용하는데, 이때 주의해야 할 점을 요약해 놓았다.


http://info.5amsolutions.com/bid/120220/Using-Excel-for-Bioinformatics-Data-Five-Issues-Five-Solutions




1. Manipulation of Gene Symbols

  • issue : 사용자가 넣어주는 데이터를 보고 excel이 알아서 formatting 을 한다는것. 예를 들어 SEP5 나 DEC-2 같은 경우 excel이 날짜 데이터로 인식하고 5-SEP, 2-DEC로 변경한다.
  • solution
    1. excel로 파일을 import 하기 전에 파일을 처리 할 수 있다면 gene symbol에 space나 apostrophe ( ' ) 를 넣어서 excel이 text 로 인식하게끔 한다.
    2. import wizard (그러니까 데이터를 import 할때 뜨는 팝업창 같은거) 에서 컬럼 서식을 "general" 대신 "text" 로 변경해준다.
2. The Incomplete Sort
  • issue : excel sheet의 일부 컬럼만 영역으로 선택해서 sorting 하게 되면 가끔 spreadsheet corruption 이 일어난다. 특히나 컬럼을 hidden 했을땐 이런 일이 종종 일어난다. 물론 대부분 excel이 컬럼 영역을 확장할 것인가를 물어보지만 물어보지 않을때도 있다.
  • solution : spread sheet 의 왼쪽 상단을 눌러서 전체 영역을 선택하는 습관을 가져라
3. Hidden Characters
  • issue : 웹에서 혹은 문서에서 특정 영역을 카피해다가 excel에 paste 하면 hidden character가 딸려 들어가서 특정 formula를 사용해서 에러가 날 때 까지 인지를 못할 경우가 발생
  • solution : excel이 TRIM and CLEAN data를 위한 formulas를 제공한다. 아니면 notepad 같은 걸로 거쳐서 거기서 다시 copy해서 excel로 옮기면 된다.
4. Information Through Formats
  • 이건은 생략한다. 딱히 뭐가 문젠지.. 굳이 이야기 하자면 글자색같은 format으로 정보를 넣으면 나중에 sorting  할때 혹은 그냥 text로 저장할때 그 색깔에 넣은 정보가 고스란히 날라간다는 문제점을 이야기 하는건데.. 주의하자는 거다.
5. Mistaken SYLK Files
  • issue : excel에서 text 파일의 첫 두 문자가 ID 이면 자동으로 SYLK(symbolic link 파일) 로 인식해서 에러 메시지를 낸다.
  • solution : ID 대문자를 id 소문자로 변환해도 이런 에러를 피할수 있으며 혹은 apostrophe 를 붙이거나 아니면 그 컬럼의 위치를 다른 곳으로 바꾼다.

Wednesday, April 4, 2012

python extension

tabix 를 python으로 importing 하기 위한 장혜식님의 c 코드를 이해하기 위해 필요한 것들을 정리 해본다.

일단 compiled language 로 작성된 code를 python에서 import 하기 위해선 "extension" 시켜야 하는데 이에 대한 기본적인 내용은 아래 사이트에서 찾아볼 수 있다.

<python - Further Extension using C>



<.so 와 .dll>
한빛 미디어에서 나온 유닉스,리눅스 프로그래밍 필수 유틸리티 gcc 부분 참조

Wednesday, March 28, 2012

knou 통계학 개론 4

제 8장 회귀분석


상관분석(correlation analysis) : 관련있는 두 변수간의 관련성을 통계적으로 분석하는 것으로 본격적으로 두 변수의 관련성을 가지고 회귀분석에 들어가기 전에 자료를 정비하는 것

상관분석의 단계
  1. 두 변수간의 상관성을 눈으로 산점도 작성
  2. 두 변수간의 상관성을 수치화
  3. 상관계수가 통계적으로 유효한지 검정
1. 산점도 작성
  1. 상관관계의 종류 : 양의 관계, 음의 관계, 무 관계, 곡선 관계(예를 들어 양의 상관관계였다가 음의 상관관계로 변하는 관계), 절대 상관 관계(완벽하게 직선상에 데이터 있는 경우)
  2. 이상점(outlier)를 발견 가능
  3. 층별 을 이루는가를 확인 할 수 있다(층별이 관측되었을 때 분리해서 분석을 해야 하지 않나라고 판단할 수 있다). 
2. 상관 관계의 수치화 
  • 상관계수(correlation coefficient) : 두 변수의 관계를 하나의 수치로 나타낸 척도
  • r= 0 이라고 해서 꼭 무상관은 아니다. 곡선 관계일수도 있기 때문에 꼭 산점도를 그래서 확인하는 것이 좋다. 그리고 이상치의 유무를 확인하기 위해서도 산점도는 필요하다.
혼돈요인(confounding factor) : 숨은 변수. 이 변수를 놓치면 분석시 잘못된 결론을 내릴 수 있다.

심슨 파라독스(Simpson's Paradox) : 자료분석 시 숨은 변수, 컨파운딩 팩터를 놏치면 반대의 결론을 내게 됨, 예를 들어 학생들의 전체를 놓고 분석했을때 tv 시청과 읽기 능력의 양의 상관관계가 있는 것처럼 보였으나 학년 별로 그룹핑을 해서 상관분석을 해보니 학년 내에서는 음의 상관관계가 있는 것으로 나타났다.

3. 상관계수의 유의점 점검

knou 통계학 개론 3

제 7장 실험계획법

이원배치법 (two-way ANOVA) : 두개의 요인에 대해 관심이 있을 경우. 두 요인이 특정 값에 영향이 있는지를 검정하고 더 나아가서 어떤 수준의 조합에서 가장 바람직한 값이 나오는가를 분석


반복이 있는 이원배치법

요인 A의 i 수준에서의 모평균의 점 추정량, 다른 요인 B에 관해서도 식은 동일하다.

두요인 A,B의 수준을 조합한 조건에 있어서 모평균의 추정

Friday, March 23, 2012

knou 통계학 개론 2

제 7장 실험계획법


실험계획의 주요 관점 
  • 어떤 요인이 반응에 유의한 영향을 주고 있는가를 파악하고 그 영향이 양적으로 어느정도 큰가?
  • 유의한 영향을 미치는 요인들이 어떠한 조건에서 가장 바람직한 반응을 얻을 수 잇는가?

실험계획법 용어
  • 인자(factor) : 실험 결과에 영향을 주는 무수히 많은 요인들중에서 실험에서 직접 취급되어 관리되는 요인을 인자(factor), 또는 요인이라고 함.
  • 수준(level) : 요인의 조건들을 요인의 수준이라 부름
  • 예 : 온도를 요인으로 택하고, 온도를 150도에서부터 200도까지 10도 단위로 6개로 분류하고 이에 따라 실험을 실시했다면 6개의 온도 값이 온도라는 요인의 수준이 됨
  • 랜덤화(randomization) : 실험을 통해 얻은 자료에 대해 의미 있는 통계분석을 하기 위해서는 요인(또는 요인들의 조합)의 각 수준에서 실험단위의 배정 또는 실험순서들을 임의로 배정하는 램덤화를 구현해야 함. 이는 관심있어하는 요인들만 신경쓰고 다른 요인들의 영향은 상쇄하기 위한것.
  • 실험계획법(design of experiment) : 실험을 계획적, 합리적으로 설계하는 방법
위의 자료의 분석 중에 많이 사용하는 것이 분산 분석(analysis of variance).

분산분석(analysis of variance)의 개념
  • 특성치의 변동을 제곱합(sum of square)으로 나타내고, 이를 실험과 관련된 요인들의 제곱합과 오차의 제곱합으로 분해하여 오차에 비해 영향이 큰 요인이 무엇인가를 찾아내는 분석 방법이다. 
  • 각 요인의 제곱합을 그 요인의 자유도로 나누면 그 요인의 평균제곱이 되는데 이 값이 오차의 분산에 비하여 얼마나 큰가를 비교한다.
  • 만약 어떤 요인의 평균 제곱 값이 오차의 분산보다 매우 크다면 그 요인은 특성치의 변동을 유의하게 설명해주는 요인이라고 할수 있다.

위의 그림 중 이원배치법은 반복수가 없는 경우의 것에 해당한다. 만약에 반복수가 여러 번인 경우에는 요인 a에 의한 변동, 요인 b에 의한 변동, a와 b 두 요인에 의한 상호작용에 의한 변동, 오차에 의한 변동으로 분해 할 수 있다.

일원배치법(one-way factorial design) : 
  • 어떤 관심이 있는 특성치에 대하여 하나의 요인(factor)의 영향을 조사하기 위하여 쓰이는 실험계획법이다.
  • 예 : 어떤 공정의 수율을 변화시키는 요인들 중에 반응 온도의 영향을 조사하는 실험에서 관심 있는 3개의 수준(150도, 160도, 170도)에서 수율의 모평균간에 차이가 있는가? 라는 문제에서 factor인 반응온도에만 관심이 있는 것이기 때문에 이는 일원배치법에 해당하며 관심 factor 이외의 요인들은 일정하게 고정시키게 된다.

위와 같은 자료 구조에서 총 변동을 수준간 편차(변동), 수준내 편차(변동)으로 분해하게 된다.

일원배치 모형
정리하자면,
관심있는 인자를 여러 수준에서 랜덤화해서 샘플링을 한다. 각 수준에서 샘플링을 한다는 의미는 그 수준에서의 다른 요인들의 영향을 상쇄시키기 위한것. 모든 샘플의 전체 평균에 대한 변동을 각 수준의 평균과 전체 평균의 차이, 즉 요인의 영향값과 각 수준에서 샘플과 수준의 평균의 차이, 즉 오차의 영향값으로 분해해서 이 요인의 영향값이 오차의 영향값보다 큰지 작은지를 판단해서 요인이 중요한 역할을 했는지 아니면 일반 오차보다도 중요한 역할을 하지 못햇는지를 판단하는것.


이러한 변동을 분해해서 정리한 표를 분산분석표(ANOVA table)이라 한다.


요인A의 자유도는 수준의 갯수의 - 1이고, 오차의 자유도는 전체의 자유도(전체 샘플 갯수 - 1)에서 요인 A의 자유도를 뺀 값이다. 
평균 제곱(mean square) : 제곱합을 자유도로 나눠준 것. 평균제곱의 비를 가지고 검정이 이뤄짐.
위와 같은 분산 분석표에서 F값을 구해서 아래와 같은 방법으로 주효과 요인 A의 가설을 검정하게 된다.
위와 같은 방법으로 그룹이 3개 이상인 경우의 평균 비교가 가능하다.


요인 A의 i수준에서 모평균의 추정


요인 A의 두수준 i와 i' 에서의 모평균의 차이의 추정
위의 그림에서 마지막 마지막 네모친 식을 최소 유의차 라 한다.

Wednesday, March 14, 2012

knou 통계학 개론 1

제 4장 확률 및 확률 분포함수


-확률의 정의-


고전적인 정의,상대 도수 이론, 주관적 관점


확률의 고전적인 정의 : 표본 공간을 구성하는 원소들이 동일한 가능성으로 나타날때 적용가능. 예를 들어 제품을 만들때 불량품이 나오거나 정상품이 나오는데 이때 표본 공간은 S= {정상품, 불량품}으로 정상품과 불량품이 나올 가능성이 동일하는 가정이 있어야 확률의 고전적 정의가 가능하다. 하지만 현실적으로는 그렇지 않기 때문에 확률을 정의하는 개념이 확장되어야 하는데 이것이 상대 도수 이론에 의한 확률의 정의이다.


상대 도수 이론에 의한 확률의 정의 : 확률은 한 시행을 동일한 조건 하에서 독립적으로 반복할 때 그 사건이 일어날 것으로 예측되는 횟수의 전체 시행횟수에 대한 백분율


주관적 관점에 의한 확률의 정의 : 한번의 시행, 반복이 불가능한 상황에서 확신의 정도를 주관적으로 표현한 것.


순열 조합은 표본공간(sample space)를 구성하는 원소(element)를 쉽게 구할수 있기 때문에 많이 이용된다. 특히나 확률의 고전적인 정의가 적용되는 사례에서 유용하다.


확률적 실험 : 전체 가능한 모든 결과(표본 공간)은 알고 반복이 가능한 경우를 확률적 실험이라 한다.


확률변수(random variable) : 표본 공간(sample space)의 각 원소에 실수 값을 대응시켜주는 함수. 곧 표본공간의 원소를 그래프의 x 축에 대응시키는 함수를 의미.


확률밀도 함수 : 확률 변수에 확률값을 대응시키는 함수. 곧 확률변수 x 에 확률값 y를 대응시키는 함수.


연속 확률변수에서는 구간에서의 확률을 구하게 되고 이는 그 구간에서의 확률분포 그래프의 면적에 해당한다.


연속 확률변수의 특정 확률변수의 확률은 0이다. 구간, 즉 x축의 범위가 0이 되기 때문에 확률밀도 함수의 적분값이 0 이 되기 때문이다.


표준화된 확률변수(standardized random variable) : 평균과 표준편차가 주어졌을때 확률변수에 평균 값을 뺀후 표준편차를 뺀 값을 의미한다. 이렇게 표준화된 확률변수는 평균이 0 분산이 1을 갖게 된다.




제 5장 표본 분포와 추정


대표적인 이산형 학률 분포


-이항분포-


  • 베르누이 시행 : 실험의 결과가 두가지만 가능한 시행, 곧 sample space 의 원소가 2개인 시행.
  • 시행(trial) : 같은 실험을 반복할 때 각각의 실험
  • 이항분포 : 베르누이시행이 적용되었을 때 전체 n 번의 시행중에 성공 횟수에 관심이 있을 때 적용되는 분포. 곧 이항분포의 확률변수 X는 n 번의 베르누이 독립시행에서 얻은 총 성공 횟수가 된다.




-포아송 분포-
포아송 분포는 원래 이항분포에 대한 확률계상을 근사적으로 하는 방법으로써 발견됨.


  • 포아송 분포를 적용하기 위한 가정 
    1. 독립성 : 서로 다른 단위에서 출현하는 횟수는 서로 독립 (예 : 시간당 발생하는 교통 사고 발생 건수의 예에서 한시간 전에 일어난 교통사건 건수와 뒤에 한시간 동안 일어날 건수가 서로 독립이다)
    2. 비집략성 : 극히 작은 단위에서 둘 이상이 일어날 확률은 매우 작음, 곧 어떤 사건의 발생 가능성이 대단히 작다를 의미
    3. 비례성 : 단위시간이나 공간에서 성공의 평균 출현횟수는 일정함,곧 사건의 발생  평균 출현 횟수가 단위시간이나 공간에 비례함을 의미
포아송 분포를 결정하는 것은 단위당 평균 발생률. 이때 단위는 시간이 될수도 있고 공간이 될 수도 있다. 포아송 분포라는 것은 이러한 단위당 평균 발생률이 m 일때 단위당 특정 발생 횟수에 관심을 갖을 때 사용하는 것이 포아송 분포이다.



대표적 연속 확률 분포


-정규분포-
이항분포의 확률을 근사적으로 계산하는 과정에서 도입되기 시작.




표본 분포와 추정
  • 통계적 추론 (statistical inference) : 모집단에서 추출한 표본을 이용하여 모집단에 관한 추측이나 결론을 이끌어 내는 과정
  • 모수 (parameter) :  모집단의 특성값
  • 통계량 (statistics) : 표본에서 구한 특성값
  • 추정량, 추정치 : 모수를 추정하기 위한 수식을 추정량이라 하고 구체적으로 구한 값을 추정치라 한다.
  • 표본 추출변동 : 통계량 값이 표본에 따라 달라지는 것
  • 표본 분포 (sampling distribution) : 표본 통계량의 분포


통계량의 관한 성질

1. 표본 평균의 표본분포에 관한 성질 ; 샘플링을 했을때 그 표본의 통계량인 표본 평균을 구하게 되는데 표본 추출변동에 따라 이 통계량이 달라진다. 이 통계량(여기서는 표본평균) 의 표본 분포, 그러니까 표본 평균들의 분포에 대한 성질을 알아본다.
  1. 평균이 m이고 분산이 y2 인 무한모집단에서 표본의 크기가 n 인 랜덤표본의 표본평균 x- 의 평균 E(x-) = m, var(x-) = y2/n이다. 곧 표본평균들의 평균은 모집단의 평균과 동일하고 분산은 모집단의 분산을  표본의 크기로 나눈값과 같다.
  2. 모집단의 분포가 정규분포 N(m,y2) 일때 표본 크기 n인 랜덤 표본의 표본평균 x-는 정규 분포 N(m,y2/n)을 따른다.

2. 표본분산의 분포
모분산이 y2인 정규분포에서 뽑은 랜덤 표본에 대하여 ((n-1)S2)/y2 는 자유도가 n-1 인 카이제곱을 따르게 된다. 여기서 S2는 표본의 분산(이때 n으로 나누는 것이 아니라 n-1로 나누는 것)

중심극한정리(central limit theorem) : 확률변수에서 합의 분포를 구할때, 그 수가 늘어남에 따라 합의 분포가 정규분포로 근접함을 의미. 정규분포를 따르지 않는 관측값의 평균이나 합을 이용한 수치에 기초하여 통계분석이 진행되는 경우 중심극한정리를 적용한다. 또한 어떤 모집단의 랜덤표본으로부터 얻은 확률변수의 합이나 평균에 대한 분포를 알고자 할 때 이용된다. 

중심극한정리를 다르게 표현하자면..
중심극한정리 는 평균이 m이고 분산이 y2 인 임의의 모집단 ("임의의"기 때문에 모집단이 꼭  정규분포를 따르지 않아도 된다)에서 표본의 크기(n)이 충분히 크면 표본평균(x-)는  평균이 m이고 분산이 y2/2인 정규분포를 따른다 (주의 : 이는 표본평균의 표본 분포에 관한 성질과 다른 것. 표본평균의 표본분포의 첫번째 성질은 표본평균들의 평균에 관한 것이고, 두번째 성질은 모집단이 정규분포를 따를 때를 의미한다. 반면 중심극한 정리는 모집단이 임의의 분포일때 적용되는 것).

이항분포의 정규근사
이항 분포 B(n,p) 를 따르는 확률 변수 X는 n이 클 때 근사적으로 정규분포 N(np,npq)를 따른다. (주의하게 중심극한정리와 헷갈리면 안됨. 모집단이 이항분포인 것에서 샘플링한 것, 표본의 분포에 관한 내용이 아니라 이항분포의 정규근사는 모집단이 이항분포 일때 이 모집단 자체가 크면 이 모집단이 정규분포로 근사하게 된다는 의미)

모수의 추정


  • 점추정(point estimator) : 미지의 모수를 하나의 값으로 추정
    • 모집단의 점추정 : 표본의 평균을 모집단의 추정량으로 여김. 이때 표준 오차(S.E.)는 y2/n의 제곱근값. y2/n 에서 y2는 모집단의 분산을 의미. 그런데 일반적으로 모집단의 분산도 알수가 없기 때문에 표본 분산 S2를 이용하여  표준 오차의 추정량을 구한다. 곧y 대신 S를 이용. 곧, 표준 오차는 추정의 정확도를 나타내는 수치.
  • 구간추정(interval estimator) : 미지의 모수가 포함될 것으로 기대되는 구간 추측
  • 95% 신뢰구간의 의미: 신뢰구간을 100번 구했을때 그중에 95 개 정도의 신뢰구간은 실제 모수를 포함하고 있다는 의미
t-분포 : 모집단의 표본에서 구한 표본표준편차를 대입해서 계산하는데 따르는 분포, 표본 평균은 N(m,y2/n) 을 따르기 때문에(위의 표본평균의 표본분포의 성질1 확인) 표본 평균에다가 m을 빼고 y2/n 의 제곱근을 나누어 주면 이는 표준 정규분포를 따른다. 하지만 일반적으로 모집단의 분산인 y2  를 알수 없기 때문에 표본 분산인 S2를 사용하게 되는데, 이때  표본 평균에 모집단의 평균  m을 빼고 S2/n의 제곱근을 나누어 주게 되면 이 값이 자유도가 n-1인 t-분포를 다르게 된다.


구간 추정을 정리하면.. 표본 크기가 작을 때
표본의 크기가 크면 중심극한 정리에 의하여 표본 자체가 정규분포를 따르게 되어 아래와 같다.




제 6장 통계적 가설 검정


통계적 추론(statistical inference) : 모집단에서 추출한 표본을 이용하여 모집단에 관한 추측이나 결론을 이끌어내는 과정


한모집단 모수의 가설 검정
가설 검정(hypothesis testing) : 표본을 이용하여 미지의 모집단 모수에 대한 두가지 가설을 놓고 오느 가설을 선택할 것인지 통계적으로 의사결정 하는 것.


1. 모평균의 가설 검정
가설 검정의 기본적인 생각 : 확실한 근거가 있기 전에는 대립가설(변화되 사실)을 선택하지 않고, 귀무가설(현재의 사실)을 받아들이게 됨


통계적 가설 검정


  • X-(표본 평균)가 C 보다 작으면 귀무가설 H0(귀무가설)을 채택하고 아니면 H0을 기각한다.
  • {X- < C} : H0 채택역(acceptance region), {X- >= C} : H0 기각역(rejection region)
  • 여기서 C는 기준값(critical value)라 한다. 이 C는 확률 분포 그래프에서 x 축의 값을 의미
통계적 가설 검정에서는 제1종 오류 (실제상황에서 H0가 참인데 반해 검정결과에서는 H1을 채택한 상황)가 발생할 확률의 허용한계를 결정하여, 이 한계를 만족시키는 선택기준을 이용해서, 제 1 종 오류를 가능하면 줄이도록 노력해야 한다. 곧 이 말인 즉슨 왠만하면 귀무가설을 기각 하지 않는 쪽에 초점을 맞춘다는 말.
여기서 제 1종 오류가 발생할 확률의 허용한계를 유의 수준(significance level) 이라한다. 이 유의 수준은 확률 값으로서 확률밀도 함수의 넓이를 의미.

예를 보자면 아래와 같다








위를 보게되면 H0을 기준으로 H0을 기각하는 영역을 적게 하는데 기준을 두어서 계산을 하는 것을 볼 수 있다. 유의 수준을 정하고(유의 수준을 정했다는 것은 H0이 맞는데 H1을 채택하는 경우의 확률을 정했다는 것. 무슨 말인고 하면 H0의 확률 분포(H1의 확률분포를 기준으로 한것이 아니라)를 기준으로 C 이상이 되는 영역의 넓이(이 넓이가 H0이 사실인데 H1을 채택한 확률을 의미)가 유의 수준이 되는 것을 기준으로 했다는 것.)

유의 확률 p 값을 이용한 가설 검정 : p 값은 관찰된 표본평균값을 기준으로 했을 때 1종 오류의 확률(표본평균값을 x 축의 기준으로 이보다 큰 H0의확률 밀도 함수의 넓이를 의미)로서 p 값이 클수록 귀무 가설이 기각되지 못한다. 곧 특정 표본 평균을 기준으로 했을때의 1종 오류의 확률인 p 값이 유의수준보다 작다는 이야기는 특정 표본 평균이 이미 기준값 C를 넘어 섰다는 이야기가 되고 곧 H0를 기각하게 된다.

만약 모집단의 표준 편차를 알면 모집단의 표준 편차와 Z 정규분포를 사용하고, 만약 모집단의 표준편차는 모르지만 표본의 크기가 클때(일반적으로 >30) 일때 표본의 표준 편차를 모집단의 표준편차처럼 사용 가능하다. 만약에 샘플의 크기가 작다면(<30)이면 표본의 표준 편차를 이용하되 t 분포를 이용한다.

2.모분산의 가설 검정



두모집단 모수의 가설 검정 


1.두 모평균에 대한 가설 검정(두 집단이 독립일때) : 두 모분산이 같은지 다른지에 따라 검정 통계량이 달라진다. 그래서 두 모집단의 분산이 같은지 다른지 부터 판단을 해야 한다.



1.1.두 모분산이 같은 경우의 검정 통계량 : 검정통계량은 두 모집단이 정규분포를 따르고 모분산들이 같다는 가정 하에서 자유도가 (n1+n2-2)인 t- 분포를 따르게 되는데, 이를 이용해서 검정이 가능, 만약 n1과 n2가 크면 (>30) t분포 자체가 표준 정규 분포에 근사하므로, 이 경우 표준정규분포를 사용해되 된다.
1.2. 두 모분산이 다른 경우의 검정 통계량 :  


2.두 모평균에 대한 가설 검정(두 집단이 독립이 아닐때) :

대응표본(=쌍체 표본) : 서로 독립적이지 않은, 비슷한 성질을 지님, 이것을 이용해서 두 모집단의 평균을 비교하는 가설검정을 대응비교(paired comparison)라 한다.


3. 두 모분산에 대한 가설 검정
F 분포 자체가 0보다 크기 때문에 검정 통계량을 구할때는 큰 표본분산을 분자로 두어야 한다. 그래서 특정  F분포의 값보다 작은지를 비교한다.
위의 식에서 두 모집단의 분산이 같은지 다른지를 검정할때 기본 가정이 두 모집단의 분산이 같다는 가정이기 때문에 분모 분자의 모분산이 같다고 가정되어 서로 제거가 된다.

python PIL setting

IOError: decoder zip not available

http://stackoverflow.com/questions/3544155/need-help-with-a-pil-error-ioerror-decoder-zip-not-available

Monday, February 20, 2012

active python path

http://docs.activestate.com/activepython/2.7/pypm.html#installing-packages


Installing packages is simple:

C:\> pypm install pyramid

This command will download pyramid and its depdendencies automatically. Unless the -g option is specified, packages are not installed into the ActivePython installation directory. Instead, PyPM follows the PEP 370 specification and installs packages by default in ~/.local on Unix and Mac and %APPDATA%\Python on Windows; and the Python interpreter automatically picks up the local packages. To find where the package was installed, use the show or files command.




ex :: python -g install pybedtools

Monday, January 9, 2012

Introduction to graph theory

Theorem 1.1 G가 n개의 vertices를 갖는 multigraph 라고 하면 각 vertex의 degree(vertex에 연결된 edge의 갯수)의 합은 G의 edge 갯수의 2배와 같다.


Corollary 1.2 odd vertices(degree가 홀수인 vertices) 의 갯수는 짝수이다.

  • complete graph : graph의 모든 vertices 가 서로 연결되어 있는 graph. Kn 으로 표시. 여기서 n은 order로서 vertices의 수를 의미
  • null graph : 그래프 G가 있을때 E(G) =0 인 그래프. 즉 edge가 하나도 없는 그래프. Nn으로 표시. 여기서 n은 vertex 수
  • walk : vertex와 edge의 번갈아가면서 나오는 sequence. v0 e0 v1 e1 v2... vn. 이때 길이는 edge의 갯수
  • trail : walk 중에 edge가 두개 이상 반복이 안된 walk.
  • path : walk 중에 vertex가 두개 이상 반복이 안된 walk. path는 반드시 trail이다. 그러나 역은 반드시 성립하는 것은 아니다.
  • distance from x to w : vertex x 에서 vertex w 까지의 최단 path 길이. d(x,w) 로 표현한다.
  • closed : vertex u에서 시작해서 vertex v로 끝나는 walk가 있을때 u = v 이면 이는 closed 되어 있다고 한다.
  • circuit : closed walk 중에 edge가 반복이 안된 walk.
  • cycle : circuit 중에 vertex가 반복이 안된 circuit. Cn 은 n 개의 vertex를 갖는 cycle을 의미
  • connected : multigraph G의 모든 vertex가 path로 연결되어 있다면 G는 connected 되었다고 한다.
  • isomorphic : 두 그래프 G와 H가 같을때 isomorphic이라 한다. 정확히 이야기 하자면 isomorphism 이라고 불리는 함수 f (그래프 G에서 H로의 mapping(vertex to vertex) 함수로서 그래프 G의 adjacency(두 vertices의 연결)를 유지하게 하는 함수)  가 존재할 때, 두 그래프는 isomorphic 하다라고 한다. isomorphism은 하나 이상이 될 수 있다.
  • induced subgraph : H가 G의 induced subgraph 라고 한다면 v(H) 가 v(G)의 subset이고 이 G 안에서 subset 사이에 존재하는 edge가 모두 H에 있음을 의미한다. 
Isomorphism Testing Problem : 두 그래프 G와 H가 isomorphic한가를 판단하는 문제.



--chapter 3--
  • bipartite : order(vertex의 갯수)가 최소 2 이상인 그래프 중 vertex가 두 그룹으로 나뉘고 모든 edge가 각 두 그룹의 vertex를 join 하게 할때 이를 bipartite 라고 한다.
  • partite sets : bipartite graph에서 두 subgroup(두 vertex set)을 partite set이라 한다.
Theorem 3.1 : 그래프 G는 odd cycle을 포함하지 않을 때(필요충분조건) bipartite 가 된다. 이는 아래 Lemma 3.2를 이용하여 증명할 수 있다.

Lemma 3.2 : odd 길이의 closed walk(시작 vertex와 끝 vertex가 같은 walk)는 항상 odd cycle을 포함한다.

  • tree : cycle이 없고 connected 된 graph
Theorem 3.3 : G가 connected graph 라고 할 때, G의 임의의 두 vertex가 unique path에 의해 join 된다면(필요 충분 조건) , G는 tree이다.
Theorem 3.4 : G가 order가 n이고(v(G) = n) size가 m일때(e(G) = m) m = n-1 이면 G는 tree이다.




--chapter 4--

  • k-colouring of G : 그래프 G가 있을때 그래프의 각 vertex를 k 개의 색깔로 칠하는 방법. 단 adjacent(연결된 vertex) 한 vertex끼리는 다른색이여야 한다.
  • chromatic number of G : k-colouring of G에서 가장 작은 k 값. X(G) 로 표현.

--chapter 6--
  • Euler circuit : connected multigraph 인 G가 있을때 G의 모든 edge를 포함하는 circuit.
  • Eulerian multigraph : Euler circuit을 갖는 multigraph, 쉽게 이야기 하면 그래프의 모든 edge를 한번씩 통과해서 시작 vertex로 오게 되는 walk를 갖고 있는 graph
Theorem 6.1 G가 connected multigraph 라고 할 때 G의 모든 vertex의 degree가 even 일때(모든 vertex에 연결된 edge의 갯수가 짝수 일때)만 Euler graph이다.
  • spanning cycle : order 가 3이상(vertex의 갯수가 3이상)인 그래프 G가 있을 때 모든 vertex를 통과하는 cycle을 spanning cycle 이라 한다. euler circuit과의 차이는 euler circuit는 모든 edge를 포함해야 한다는 것이며 spanning cycle은 모든 vertex를 포함해야 한다는 것이다.
  • hamiltonian graph : spanning cycle을 가지고 있는 graph
Rules for constructing Hamiltonian cycles in G
1. degree가 2인 vertex의 모든 edge는 spanning cycle에 포함되어야 한다.
2. spanning cycle을 만드는 도중에 spanning cycle이 아닌 cycle이 형성될 시에는 그 그래프는 Hamiltonian graph가 될 수 없다.
3. spanning cycle을 만드는 도중에 vertex의 2개의 edge가 정해졌다면 그 vertex에 연결된 그 외의 edge는 제거한다.

Theorem 6.3 G가 만약 Hamiltonian graph 라면 V(G)의 non-empty subset S에 의한 c(G-S)는 |S| 보다 작거나 같다. c(G-S) 는 graph G 에서 subset인 S에 포함되는 vertex와 그 vertex에 연결된 edge를 지운 graph 의 component 갯수를 의미. theorem 6.3은 Hamiltonian graph의 필요 조건.

Theorem 6.4 order가 3 이상인 그래프 G가 있을 때, 모든 vertex에 대해 d(v)가 n/2 이상이 되면 이는 Hamiltonian graph 이다.

Theorem 6.5 order가 3 이상인 그래프 G가 있을때 adjacent vertices를 제외한 모든 vertex 페어에 대해서 d(u) + d(v)가 n 보다 크거나 같으면 이는 Hamiltonian graph 이다.

Monday, January 2, 2012

head first design pattern 4

  • state pattern : 스테이트 패턴을 이용하면 객체의 내부 상태가 바뀜에 따라서 객체의 행도응ㄹ 바꿀 수 있다. 마치 객체의 클래스가 바뀌는 것과 같은 결과를 얻을 수 있다.
    • 예제 : 뽑기 기계가 있다. 뽑기 기계는 4가지 상태(동전 있음, 동전 없음, 알맹이 판매, 알맹이 매진) 가 있고 각 상태를 전환하기 위한 행동(손잡이 돌림, 동전 반환, 동전 투입, 알맹이 내보냄)이 있다. 이를 코딩하라
    • 단순 답변 : 각 상태를 나타내는 상수를 정적 변수에 저장한다. 그리고 행동을 메소드로 표현해서 if문을 사용해서 상태에 맞는 각 행동을 취한다. 만약에 10번중에 한번은 특별 당첨으로 2개의 뽑기가 나온다는 기능을 확장하려 한다. 이러면 단순 답변의 코드를 전부 뜯어 고쳐야 한다.
    • state pattern : 상태를 나타내는 state 인터페이스를 정의 하고 이를 구현하는 구상 클래스들에서 각 상태에 따른 행동을 정의한다. context는 state를 구성으로 갖고(맴버 변수) 이 상태를 나타내는 맴버 함수에서 state 객체의 메소드를 호출한다.
  • proxy pattern : 어떤 객체에 대한 접근을 제어하기 위한 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴
    • 예제 : 클라이언트에서 서버에 특정 작업(메소드)를 호출하여 결과값을 받을때