콘텐츠로 건너뛰기
Home » 스터디

스터디

비율에 대한 검정

지난 시간에 모평균에 대한 검정을 수행했다. 평균에 대한 검정은 표본 조사를 통해서 모집단의 평균이 특정한 값인지 혹은 특정 기준보다 큰지/작은지에 대해 판단하는 검정이었다. 이번 시간에는 모비율에 대한 검정 방법을 알아보도록 하자. 모비율에 대한 분포는 이항분포와 관련이 있다. 이항 분포에서도 표본이 충분히 크면 이행분포가 정규 분포에 근사한다. 이 때 이항 분포의 평균은 p 이고, 분산은 p(1 – p)/n 인 정규 분포를 따른다. 평균에 대한 검정이 정규 분포에 기초한 것이었음을 생각해보면, 모비율 검정에서도 검정 통계량은 똑같은 공식을 사용한다. 검정 통계량 = {표본평균과… 더 보기 »비율에 대한 검정

모평균에 대한 가설 검정

표본의 통계량으로부터 모평균을 추정하는 것과 같은 원리를 사용하여, 모평균에 대한 가설을 검정할 수 있다. 예를 들어 “어떤 공장에서 생상한 나사못의 지름은 8mm이다.”라는 가설이 있을 때 표본 조사를 통해 이 가설이 맞는지를 알아보는 것은 모평균에 대한 검정이다. 평균에 대한 가설의 검정은 표본으로부터 얻은 통계량으로 모수를 추정하고, 그 추정치가 가설에서 말하는 값에 부합할 확률이 어느 수준인지를 판단하는 것이므로, 모평균의 추정과 사실 그 원리는 동일하다. 대신에 통계학에서는 가설을 설정하고 이를 검정하는 방법을 규격화하여 사용한다.

검정은 다음과 같은 순서로 이루어진다. 우선 어떤 모수의 값이 얼마인지에 대한 가설과 유의수준을 설정한다. 유의 수준이란 간단히 말해서 검정의 결론이 잘못될 확률이다. 그리고 모집단에 대한 표본평균을 확률 변수로 할 때, 이 확률변수의 분포를 구한다. 그런 다음 실제 표본을 조사하여 표본 평균을 계산한다. 계산된 표본 평균이 평균의 확률 분포에 따라 나타날 수 있는 확률을 구한다. 만약 표본 평균이 나타날 확률이 유의수준보다 낮다면, “본래의 가설이 맞다고 가정했을 때, 표본 조사의 결과가 그러한 가정에서는 나타나기 힘든 수치이므로 이 가설을 기각한다.”는 결론을 내릴 수 있다.

더 보기 »모평균에 대한 가설 검정

조건부 확률

솔직히 고백하자면 개인적으로도 이 조건부 확률에 대해서 제대로 이해하지 못했었다. 조건부 확률 문제를 단순히 공식을 사용해서 푸는 것과 어느 정도 이해하는 것은 전혀 다른 문제이기 때문이다. 조건부 확률은 단순히 결합가능한 두 사건 사이의 관계의 확률이라기 보다는, 각각의 사건의 확률의 관계를 수식으로 다룬다는 것에 있다.

조건부 확률은 어떤 사건이 일어났을 때의 다른 사건이 일어나는 확률이다. (여기까지는 ‘확률’을 제외하면 일상의 언어로 된 문장이기 때문에 어려울 것이 없다.) 두 사건 A, B가 있고 이 각각의 사건이 일어날 확률을 P(A), P(B) 라고 했을 때, 사건 B가 일어났을 때 사건 A가 일어났을 확률을 ‘사건 B에 대한 사건 A의 조건부 확률’이라 하고 P(A|B) 라고 표기한다.

더 보기 »조건부 확률

모평균의 추정

중심극한 정리에 따르면 모집단의 데이터의 분포에 무관하게, 표본의 크기가 충분히 크다면 표본 평균의 분포는 그 평균의 모평균과 같고, 분산이 모분산을 표본수로 나눈 값인 정규분포에 가까워진다. 이 말은 어떤 집단에서 표본을 추출하여 얻는 표본 평균이 모평균의 근처에 있을 가능성이 높다는 의미이다. 그리고 표본 평균의 분산은 모분산을 표본수로 나눈 값이므로 표본의 수가 충분히 크다면 더더욱 표본 평균은 모평균과 가까워질 것이다. 따라서 표본 조사를 통해 얻은 표본 평균을 통해 모평균을 추정하는 것은 너무 터무니 없는 것은 아닌 것이다. 그렇다면 표본 조사를 통한 모평균의 추정은 어떻게 할 수 있을까?

더 보기 »모평균의 추정

Python 101 : 맵, 필터와 반복문

지난 글에서는 리스트 및 그와 비슷한 집합 형태의 자료형을 살펴보면서 “반복 가능”이라는 개념에 대해서 소개했다. 반복 가능하다는 특성은 꼭 리스트가 아니어도 여러 개의 값을 포함하는 집합/모임(collection)의 성질을 갖는 다양한 자료형에서 나타나는 성질이며, 이러한 특성을 갖는 객체들은 그 내부 구현에 상관없이 for 루프나 comprehension 축약 문법에 적용될 수 있다.

더 보기 »Python 101 : 맵, 필터와 반복문

Python101 : 다른 집합 유형들

지난 글에서 리스트의 특징에 대해서 언급할 때나, 리스트 축약에 대해서 이야기하면서 “연속열”이나 “반복가능”이라는 단어를 사용한 적이 있다. 사실 파이썬에 연속열이나 반복객체 혹은 반복가능객체는 이제는 거의 공식적으로 사용되는 개념이다. 리스트는 이런 “연속열”과 “반복가능”에 공통적으로 속하는 유형의 데이터 타입인 것이다. 이번 글에서는 그럼 리스트 외에 어떤 다른 집합형 데이터 타입이 있는지 알아보고 그 면면을 좀 살펴보기로 하겠다. 값의 타입 일단 값의 타입을 확인하는 방법을 알아보자. 사실 여기서 말하는 타입들은 아주 “대표적인” 파이썬 타입들이며, 사실 파이썬에는 엄청나게 많은 데이터 유형이 존재한다. (사실 어떤… 더 보기 »Python101 : 다른 집합 유형들

Python 101 : 리스트

지난 글에서 파이썬에서 사용되는 가장 기본적인 값의 유형에 대해 살펴보았다. 오늘은 리스트에 대해서 이야기해보려고 한다. 리스트는 여러 개의 값이 연속적으로 배치된 일종의 집합이다. 다른 프로그래밍 언어에서는 배열(Array)이라고 하기도 한다. 사실 배열과 다른 리스트라는 자료 구조가 별도로 존재하기는 하는데 (연결 리스트 같은 걸 들어본 적이 있을지도 모르겠다.) 파이썬의 리스트는 C의 배열과 크게 다르지 않다고 생각하면 된다.

더 보기 »Python 101 : 리스트

SQLite – STRICT 테이블

얼마전 SQLite의 새 버전인 3.37.0이 릴리즈되었습니다. 주로 안정성이나 성능 개선 위주의 업데이트만 있다가, 이번 버전에서는 STRICT 테이블이라는 새로운 기능이 추가되었습니다. 이 기능은 다른 DBMS 처럼 테이블 칼럼의 형식에 맞는 값만 저장하도록 제한하는 기능으로, 새로 생성하는 테이블의 옵션 형태로 설정하게 됩니다. SQLite3는 다른 DBMS와 달리 자료의 형(type)에 대해서 유연한 편입니다. 예를 들어 INTEGER 타입으로 정의된 칼럼에 “123” 같은 문자열을 저장하려 한다면 SQLite는 자동으로 이 문자열을 정수형태로 변환을 시도합니다. 따라서 저장되는 값은 문자열이 아닌 정수값 123이 저장됩니다. 만약 “xyz” 같은 변환이 불가능하거나,… 더 보기 »SQLite – STRICT 테이블

Julia 정규식 다루기

Julia에서 정규식은 별도의 모듈을 반입하지 않고 사용할 수 있으며, 패턴 자체는 Base.RegExp 타입으로 표현된다. 정규식 패턴을 만들 때에는 r"..." 형태의 리터럴로 바로 정의할 수 있다. (대신, raw string문자열은 raw"..."이다.) 한번 생성한 Regexp 값은 .pattern 필드로 그 패턴을 다시 확인할 수 있다. 참고로 r" .... " 리터럴은 정규식 패턴을 좀 더 손쉽게 사용할 수 있게 하기 위해 백슬래시를 이스케이프해준다. 따라서 \d 등과 같은 이스케이프 문자 시퀀스에서 백슬래시는 두 번이 아니라 한 번만 쓰면 된다. (r"\d+")

더 보기 »Julia 정규식 다루기

IO모나드와 부수효과

하스켈에서 문자열을 화면에 출력해주는 putStrLn 함수를 생각해봅니다. 이 함수의 타입은 String -> IO ()로 문자열을 인자로 받고 빈 모나드를 리턴합니다. 무언가를 출력하는 일을 수행하니, 반환할 값에는 의미가 없다는 뜻입니다. 반환하는 값이 비어있으니, IO 액션의 연쇄에 있어서는 어떤 종착점이 될 수 있다고 봐도 됩니다. 말하자면 이 액션의 이후에는 어떤 처리를 하는 것이 의미가 없는 셈이죠. 실제로 하스켈 프로그램의 진입점이 되는 main 함수 역시 타입이 IO () 여서, main 함수의 실행이 종료되면 프로그램이 끝나게 됩니다. 통상적인 프로그래밍 경험에 비추어볼 때 우리는 표준입력을… 더 보기 »IO모나드와 부수효과