코딩하는 수학과생 :: 코딩하는 수학과생


반응형

이번 포스팅에서는 여러 가지 분포들의 그래프를 그려서 중심 극한 정리를 증명해보겠습니다.

 

중심 극한 정리를 한 줄로 쉽게 설명하면

 

한 확률분포확률변수들의 평균의 분포가 정규분포에 가까워진다는 것입니다

 

풀어말하면 한 집단에서 n개를 추출해서 평균을 낸것을 X1이라 두고

 

다시 한번 n개를 추출해서 평균 낸 것을 X2라 둡니다.

 

이런 식으로 뽑혀 평균 내진 X1, X2, ... , Xn들이 정규분포를 이룬다는 것입니다.

 

이러한 정리를 사용하기 위해서는 조건이 몇 가지 필요합니다.

 

1. 동일한 확률분포를 가져야한다.

2. n이 충분히 커야 한다.

(여기서 n은 Xn의 n이 아니고 n개 추출했을 때의 n입니다.)

 


이산형 분포의 이항 분포, 포아송 분포, 기하 분포

 

연속형 분포의 균일 분포, 지수 분포, 감마 분포

 

이렇게 6가지 분포에 대하여 중심 극한 정리를 이용하여 그래프를 그려보겠습니다.


그래프를 그리는 방식은 다음과 같습니다.

 

0. R 프로그램을 사용할 수 있는 툴을 연다. (ex. Rstudio, Jupyter notebook,...)

 

1. 해당 분포의 자료 생성

 

2. 표본의 크기를 바꿔가며 자료를 생성

 

3. 표본 평균 계산

 

4. 시뮬레이션 1000회 반복

 

5. 하나의 그래프에 표본의 크기만 다른 분포를 겹쳐 그려 비교한다.


우선 이산 확률 분포인 이항 분포를 예시로 하여 위의 5가지 과정을 수행한 코드를 먼저 보겠습니다.

 

sol)

 

binomCLT = function(n){                           #중심 극한 정리 함수를 만들어줍니다.
  
  mean = c()                                           #표본들의 평균을 저장해줍니다.
  
  for(i in 1:1000){                                      #반복 횟수를 지정해줍니다.
    
    mean = c(mean, mean(rbinom(n, 10, 0.6))) #이항 분포의 표본 평균을 구하여 각 반복의 표본 평균을 저장해 줍니다.
                    #여기서 rbinom(n, 10, 0.6) 함수는 표본의 크기가 n 일 때 X~b(10, 0.6)의 자료를 생성해내는 함수입니다.
    
  }
  
  return(mean)                                          #CLT함수 내의 표본 평균을 불러내옵니다.
  
}

 

여기서 다른 확률 분포의 그래프를 그리고 싶다면

binomCLT, rbinom(n, 10, 0.6) 두 부분만 바꿔주면 됩니다.

 

이항분포 rbinom(n, m, p) (m=size, p=prob)
포아송분포 rpois(n, x) (x=lambda)
기하분포 rgeom(n, p) (p=prob)
균일분포 runif(n, p) (p = prob)
지수분포 rexp(n,p) (p=rate)
감마분포 rgamma(n, k, θ) (k=shape, θ=scale)

binomCLT 부분은 그래프에 나타는 이름 때문에 바꾸는 것입니다.

이 부분을 바꿔 주셨다면 밑의 그래프 코드 부분도 바꿔주셔야 합니다 *v*


이제 위의 함수를 통해서 표본 평균들이 구해졌습니다.

 

이제 이 표본 평균들을 이용하여 확률 밀도 함수 그래프를 그려보겠습니다.

 

그래프를 그리기 위해서 맨 윗줄에

 

par(mfrow=c(2,3)) 이 코드를 입력해주세요

 

그래프를 그리는 작업을 하기 위한 코드입니다. 처음 한 번만 작성하시면 됩니다.

 

이제 표본을 크기를 달리하며 그래프를 그려보겠습니다.

 

plot(density(binomCLT(5)), ylim=c(0,3))                  # 표본의 크기 : 5

 

lines(density(binomCLT(10)),col='blue')                  # 표본의 크기 : 10

 

lines(density(binomCLT(20)),col='red')                    # 표본의 크기 : 20

 

lines(density(binomCLT(50)),col='green')                 # 표본의 크기 : 50

 


위의 그림을 보면 표본의 크기가 커질수록 정규분포와 근사한 모양을 띈다는 것을 알 수 있습니다.

 

비슷한 방식으로 다른 6가지 확률 분포에 대하여 같은 방식으로 그래프를 그려보았습니다.

 

왼쪽 위부터 순서대로 이항 분포, 포아송 분포, 기하 분포, 균일 분포, 지수 분포, 감마 분포입니다.

 

이산, 연속과는 상관없이 n이 커지면 정규분포에 가까워지는 것이 보입니다.

 

반응형
Posted by dooooh
,
반응형

이번에는 파이썬을 사용할 수 있는 툴인 Miniconda를 다운로드 받아보겠습니다.

 

Miniconda는 이름대로 기존의 Conda보다 조금 더 가벼운 툴이라고 생각하시면 됩니다 ㅋ.ㅋ

 

Conda가상 환경 구축, 패키지 설치 등 기본적인 내용의 글을 링크 걸어두겠습니다.

 

글 마지막에 다운을 모두 받은 후에 다시 링크 걸어두겠습니다 ^o^

 

Miniconda 사용하여 Python, R 사용하기

2020/03/28 - [R] - R / Conda / Anaconda / Jupyter notebook Rstudio를 이용하지 않고 R을 쉽게 사용하는 방법!

 

R / Conda / Anaconda / Jupyter notebook Rstudio를 이용하지 않고 R을 쉽게 사용하는 방법!

안녕하세요~ 이번에는 Rstudio를 이용하지 않고 R을 사용하는 방법을 알아보겠습니다. 보통 R을 사용하려면 Rstudio를 사용하지만 이 방법만이 있는 것은 아닙니다. Rstudio가 복잡하거나 어렵다고 생�

dooooh.tistory.com

 

1) Conda를 설치하기 위해 구글에 Conda download를 검색해줍니다.

 

2) 1번 링크를 들어가 자신의 운영체제에 맞는 링크를 클릭하여 다운받아줍니다.

운영체재만 확인하시면 대부분 64비트에 파이썬 3.x 버전 일겁니당

 

3) 다운이 완료되면 설치 파일을 실행시켜줍니다.

 

 

4) 이다음부터는 별로 신경 쓰실 것 없이 쭉 다운로드 진행하시면 됩니다.

여기부터는 계속 진행하면 됩니다.
넥스트 클릭..

 

5) 미니콘다를 다운받을 폴더를 선택합니다.

 

6) 마지막으로 Install을 누르면 다운로드가 끝이 납니다.

 

7) Finish를 눌러 설치를 완료해 줍니다. 

위에것들은 체크 하셔도 되고 안하셔도 상관 없습니다.

 

8) 설치가 완료되었다면 윈도우 키를 눌러 Conda가 잘 설치되어 있는지 확인해봅니다.

 

여기서 저는 기존에 Anaconda가 설치되어 있었기 때문에 Anaconda3 파일에 들어있는 것입니다.

 

Conda, Miniconda가 뜬다면 설치가 잘 된 것입니다.

 

Anaconda promptMiniconda prompt를 같은 거라고 생각하셔도 괜찮습니다.

 

-------------------------------------------------------------------------------------------------------------

 

이제 미니콘다를 이용하여 python, R 등을 사용할 수 있게 되었습니다.

 

미니콘다는 정말 여러 가지 장점이 있기 때문에 꼭 사용하시면 좋을 거예요~~

 

-------------------------------------------------------------------------------------------------------------

 

Miniconda 사용하여 Python, R 사용하기

2020/03/28 - [R] - R / Conda / Anaconda / Jupyter notebook Rstudio를 이용하지 않고 R을 쉽게 사용하는 방법!

 

R / Conda / Anaconda / Jupyter notebook Rstudio를 이용하지 않고 R을 쉽게 사용하는 방법!

안녕하세요~ 이번에는 Rstudio를 이용하지 않고 R을 사용하는 방법을 알아보겠습니다. 보통 R을 사용하려면 Rstudio를 사용하지만 이 방법만이 있는 것은 아닙니다. Rstudio가 복잡하거나 어렵다고 생�

dooooh.tistory.com

위에 링크에 들어가셔서 쭉 따라 하시면 별문제 없이 미니콘다를 이용하실 수 있습니다.

반응형

'Python' 카테고리의 다른 글

Python / PyCharm 다운로드 처음부터 자세하게  (0) 2020.05.01
Posted by dooooh
,
반응형

파이썬에 대한 첫 글로 PythonPycharm 설치방법에 대해 알아보겠습니다.

 

Pycharm을 설치하기 전에 우선 Python을 설치하겠습니다.

 

-------------------------------------------------------------------------------------------------------------

 

1) Python을 설치하기 위해 구글에 Python download를 검색한 후 1번 링크를 통해 들어갑니다.

 

 

2) 들어간 페이지에서 2번의 버튼을 누르면 최신 버전의 파이썬을 다운로드 받을 수 있습니다.

 

3,4) 설치파일을 실행시켜 3번을 누르기 전에 4번의 박스에 꼭 체크를 하고 설치를 진행해야 합니다.

4번을 꼭 체크해주세요~

 

5) 잠시 기다리면 설치가 끝이 납니다.

5번을 눌러 설치를 마칩니다.

 

6) 마지막으로 시작 버튼을 눌러 설치가 제대로 되었는지 확인해줍니당

 

---------------------------------------------------------------------------------------

 

 

이제 파이썬을 사용할 수 있게 되었습니다.

 

저는 Pycharmjupyter notebook 두 개를 사용해서 공부하는데 이 두 가지 모두 장단점이 있는 것 같습니다.

 

다음 글은 이 두 가지 툴의 설치부터 사용법까지 자세하게 다뤄보겠습니다.

반응형

'Python' 카테고리의 다른 글

[Python] Anaconda / Miniconda 설치하기 처음부터 자세하게  (0) 2020.05.01
Posted by dooooh
,
반응형

안녕하세요~ 이번에는 Rstudio를 이용하지 않고 R을 사용하는 방법을 알아보겠습니다.

 

보통 R을 사용하려면 Rstudio를 사용하지만 이 방법만이 있는 것은 아닙니다.

 

Rstudio가 복잡하거나 어렵다고 생각하시는 분들이나 코딩 결과를 바로바로 보고 싶으신 분들 같은 경우에 쉽게 사용할 수 있는 것이 Conda 입니다. 

 

물론 위의 이유만이 아니라 여러 가지 필요한 패키지를 받다 보면 패키지 버전이 엉키는 제대로 실행되지 않는 경우가 생길 수 있는데 이러한 문제들을 해결해 줄 수 있습니다^^

 

Conda에서는 '가상환경'이란느 것을 만들 수 있기 때문에 효율 좋게 작업할 수 있습니다.

 

----------------------------------------------------------------------------------------------------------------

 

Jupyter notebook을 이용하기에 앞서 저희가 준비해야 할 작업은 3가지입니다.

 

1. R 다운로드

2. Python 다운로드

3. Conda 다운로드

 

이 세 가지 방법은 다른 글들에 쉽고 자세하게 설명되어 있습니다.

각 링크에 들어가셔서 사진 보시면서 따라 하시면 쉽게 다운로드할 수 있습니다.

 

----------------------------------------------------------------------------------------------------

 

1. R 다운로드R / RStudio 다운로드 처음부터 자세하게

 

R / RStudio 다운로드 처음부터 자세하게

R에 대한 첫 번째 글로 R과 RStudio 소프트웨어의 설치방법에 대해 알아보도록 하겠습니다. RStudio를 설치하기 전에 우선 R이라는 소프트 웨어를 설치해보겠습니다. 1) R을 설치하기 위해 구글에 R cran mirror k..

dooooh.tistory.com

 

2. Python 다운로드 :  Python / PyCharm 다운로드 처음부터 자세하게

 

Python / PyCharm 다운로드 처음부터 자세하게

파이썬에 대한 첫 글로 Python과 Pycharm 설치방법에 대해 알아보겠습니다. Pycharm을 설치하기 전에 우선 Python을 설치하겠습니다. -------------------------------------------------------------------------..

dooooh.tistory.com

 

3. Conda 다운로드: Python / Anaconda / Miniconda 다운로드 처음부터 자세하게

 

Python / Anaconda / Miniconda 다운로드 처음부터 자세하게

이번에는 파이썬을 사용할 수 있는 툴인 Miniconda를 다운로드 받아보겠습니다. Miniconda는 이름대로 기존의 Conda보다 조금 더 가벼운 툴이라고 생각하시면 됩니다 ㅋ.ㅋ Conda의 가상 환경 구축, 패키지 설치..

dooooh.tistory.com

 

-----------------------------------------------------------------------------------------------------

 

다운을 다 받으셨다면 Anaconda prompt를 실행시켜줍니다.

 

처음 다운받으셨다면 사용하기 위해 최소한의 몇 가지 작업을 해주어야 합니다.

 

우선 가상 환경을 구축해야 합니다.

 

밑의 명령문을 그대로 적으시면 가상 환경이 구축되지만 각 의미가 무엇인지 궁금하신 분은 아래 링크를 통해 확인하실 수 있습니다~~

 

conda create -n dooooh python=3.7

(띄어쓰기에도 유의해주세요)

 

위와 같이 입력하면 쭉~~ 뭐가 뜨고 마지막에 Proceed y/n이 뜨게 됩니다.

 

 

이것은 가상 환경 구축을 할거냐 말거냐 물어보는 것이기 때문에 y를 입력해주고 enter를 쳐줍니다.

 

그러면 python 기반으로 dooooh라는 가상환경 구축이 완료됩니다.

 

이제 저희 가상 환경이 구축되었습니다. 이제 가상 환경을 활성화시켜보겠습니다.

conda activate dooooh

 

 

위와 같이 입력한 후 엔터를 쳐주면 외쪽의 (base)가 (dooooh)로 바뀌게 됩니다. dooooh라는 가상 환경이 활성화된 것입니다.

 

가상 환경이 구축되었다면 이제 가상 환경에서 필요한 package들을 설치해주겠습니다.

 

conda install r-irkernel jupyter

 

 

위와 같이 입력해준 뒤 엔터를 눌러주면 또 한 번 proceed y/n이 뜨게 됩니다.

 

설치하기 위해서 y를 입력하고 엔터를 눌러줍니다.

그러면 package들을 설치하느라 시간이 조금 걸립니다. 설치가 완료되면 dooooh라는 가상 환경에서는 R과 jupyter패키지가 다운돼서 사용할 수 있게 되는 것입니다.

 

다운이 완료된 후 화면이 초기화됩니다.

 

=================================================================

#만약 가상 환경에서 빠져나오고 싶으신 경우에는

 

conda deactivate

를 입력해주면 빠져나오게 됩니다.

 

=================================================================

 

dooooh라는 가상 환경을 활성화 해준 뒤에 jupyter notebook를 실행시켜 줍니다.

 

엔터를 치시면 jupyter notenook 홈페이지로 이동되게 됩니다.

 

 

여기까지 했다면 이제 R을 사용할 수 있는 환경이 모두 준비되었습니다.

 

--------------------------------------------------------------------------------------

 

이제 jupyter notebook을 이용해서 R을 사용해 보겠습니다.

 

 

사진에 빨간색 네모칸의 New를 눌러준 후 R을 눌러주면 R을 이용할 수 있습니다.

 

 

내 컴퓨터에 Documents 폴더에 dooooh 폴더를 만들어서 저장해보겠습니다.

 

New의 R을 눌러준다면

 

 

이러한 화면이 나타나게 됩니다. 이제 이 곳에서 R을 이용할 수 있습니다.

 

 

이런 식으로 이용하면 됩니다. 코딩을 하신 후에 shift + enter를 눌러주시면 바로바로 실행되게 됩니다.

 

다 하시고 저장하실 때는 맨 위의 Untitld를 눌러 이름을 바꾼 후에 왼쪽 위에 파일 모양 아이콘을 클릭해 주신 후 File을 눌러 맨 밑에 Close and Halt를 누르시면 저장되고 나오게 됩니다.

 

다시 나온 후에 우측 상단의 Quit를 누르시면 다시 conda prompt가 활성화됩니다.

 

만약에 Quit를 누르시지 않고 끈다면 Anaconda prompt가 작동되지 않으실 겁니다. 그런 경우에는 Ctrl+C,C (C두번)를 눌러주면 다시 작동되게 됩니다^^

반응형
Posted by dooooh
,
반응형

다음 데이터의 분포를 살펴보겠습니다~

 

 

이 자료의 범위(range)는 몇일까?

[범위 = 최댓값 - 최솟값] 이므로 범위 = 30 - 0 =  30 이 된다.

대부분의 데이터가  10 과  21 사이에 모여있는 것이 보인다.

이 자료를 가지고 통계적 분석을 할 경우에  과  30 의 자료 때문에 문제가 생길 수 있다.

 

사분범위는 이러한 특이값(이상값)이 발생한 문제를 해결해줄 수 있다.
사분범위(IQR, InterQuartile Range)는 제3사분위수와 제1사분위수 사이의 범위이다.

식으로 나타내면  IQR = Q3 - Q1이다.

 

IQR은 range와는 다르게 통계적으로 매우 유용하다.

쉽게 예를 들어 두 가지 자료가 있다고  하자

자료 1) (1, 2, 6, 10, 18, 30)    # range = 29    / IQR = 13

자료 2) (1, 2, 6, 10, 18, 3000) # range = 2900 / IQR = 13

 

자료 1,2의 range를 비교해보면  29 와  2900 로 엄청난 차이가 난다.

하지만 사분범위는 모두  13 으로 같다.

특이값들을 제외함으로써 자료의 중심의 성격을 더 잘 이해할 수 있게 되는 것입니다.

 

 

사분위수에 대해 제대로 이해하고 있지 않다면 이전 글에 설명해 놓은걸 보고 오시면 됩니다^.^

사분위수 : R / Rstudio 사분위수 / 분위수를 구해보자(사분위수 편)

 

R / Rstudio 사분위수 / 분위수를 구해보자(사분위수 편)

이번에는 구해볼것은 사분위수입니다~~ 사분위수를 처음 봤을때는 헷갈리는게 너무 많지만 의미를 잘 이해하고 제가 정한 메뉴얼대로 구하는 연습을 하다보니까 어느샌가 조금 친근하게 느껴지더라구요 ㅋ.ㅋ 데이..

dooooh.tistory.com

 

IQR = Q3 - Q1 = 23 - 8 = 15

 

----------------------------------------------------------------------------

 

손 계산으로 사분범위를 구하는 방법을 보겠습니다.

 

step1) 사분범위를 구하기 위하여 Q1Q3값을 구한다.

#Q1 값은 데이터의 25%가 있는 지점이다.

#Q3 값은 Q1의 반대쪽 25%인 데이터의 75%가 있는 지점이다.

 

step 2) Q1과 Q3 사이의 범위를 구한다.

#사분범위는 Q1과 Q3 사이의 범위

 

손 계산을 한다면 이러한 과정을 거쳐 사분 범위를 구할 수 있습니다.

 

----------------------------------------------------------------------------

 

이번에는 R을 이용하여 사분범위(IQR)을 구해보겠습니다.

 

R에는 사분범위를 구할 수 있는 IQR() 함수가 존재합니다.

IQR() 함수에 자료를 넣어주면 사분범위값이 나옵니다.

 

 

위에 들었던 예시로 구해봤습니다. 사분범위는 모두  13 으로 같은 값이 나옵니다.

 

자료를 보다 보면 항상 동떨어진 값들이 존재합니다. 이런 값들을 무시하게 되면 정말 이상한 결과가 나와버릴 수도 있어서 이 특이치라 불리는 값들을 찾아서 제거해주는 과정은 꼭 필요합니다.

 

사분범위를 손으로 구해서 상자 그림 그리면서 하다 보면 계산 실수도 엄청하게 되는데 코딩으로 하면 함수 하나만 쓰면 바로 구해지니 코딩을 하는 것에 대해 너무 어렵게 생각하지 않아도 될 것 같습니다. ^ㅇ^

 

저도 코딩하면 어려운 것 이라고만 생각하고 있었는데 너무 함수들이 잘 만들어져 있어서 부담 없이 공부할 것 같아요 ㅋ.ㅋ

반응형
Posted by dooooh
,