문서 보기역링크PDF로 내보내기맨 위로 이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요. # 기초 통계 - 데이터를 수집하고 표본 추출하는 방법 - 중심의 측정, 분산, 상대적 비교 - z-score를 사용해 데이터 정규화 - 경험적 법칙 ## 통계란? 통계 분야의 목표는 우리 주변의 세계를 설명하고 모델화하는 것이다. 그렇게 하려면 모집단을 살펴봐야 한다. 실험이나 모델의 전체 주제로서 `모집단`population 을 정의할 수 있다. 예를 들어 1000명의 직원에게 모두 물어보고 100명이 약물을 사용 중이라면 약물 사용률은 10%다. 여기에서 모수는 10%다. 통계는 모집단의 표본이 가진 특성을 설명하는 수치적 측정치로 정의할 수 있다. 통계는 단지 모수의 추정치다. 모집단의 하위 집합을 설명해 전체 모집단을 설명하려고 시도하는 숫자다. ## 데이터를 얻고 표본 추출하는 방법 ### 데이터 얻기 분석을 위해 데이터를 수집하는 두 가지 주요 방법이 있는데, `관측` 및 `실험`이다. #### 관측 구체적인 특성을 측정하지만 연구 대상을 변경하지 않을 경우 `관측`Observational 방법을 통해 데이터를 얻을 수 있다. #### 실험 `실험`Experimental은 대상에 대한 효과를 관측하고 처리하는 것으로 구성된다. 실험의 대상을 실험 단위라고 한다. ## 표본 추출 데이터 통계는 모집단의 표본을 측정한 결과라는 것을 기억하자. 측정하는 표본을 무엇으로 할지 결정하는 매우 일반적인 방법 두 가지에 대해 이야기하려고 한다. 이 절에서는 표본 크기와 표본 구성원을 결정하는 가장 일반적인 방법인 무작위 표본 추출이라는 주요 표본 추출 유형에 대해 설명한다. ### 확률 표본 추출 확률 표본 추출은 모집단에서 표본을 추출하는 방법으로, 모든 사람이 선택될 가능성이 있지만, 그 확률의 수는 사용자마다 다를 수 있다. 가장 간단한 확률 표본 추출법은 무작위 표본 추출이다. ### 무작위 표본 추출 `교란 요인`confounding factor 은 직접 측정하는 것이 아니라 측정되는 변수를 연결하는 변수다. #### 불균등 확률 표본 추출 ## 통계를 측정하는 방법 ### 중심 측정 중심의 측정은 데이터셋의 가운데 또는 중심을 정의하는 방법이다. 중심 측정값은 데이터셋의 '가운데' 값이다. #### 편차 측정 중심의 측정은 데이터의 가운데를 정량화하는 데 사용되지만, 이제는 수집한 데이터가 어떻게 '퍼져 있는가'를 측정하는 방법을 모색할 것이다. 표준 편자를 계산 하는 일반적인 수식은 다음과 같다. $$ s = \frac{\sum(x-\bar{x})^2}{n} $$ 여기서는 다음과 같다. - s 는 표본 표준 편차다. - x 는 각각의 개별 데이터 포인트이다. - $\bar{x}$ 는 데이터의 평균이다. - n 은 데이터 포인트의 수다. 파이썬 접근 방식을 취하면 프로그래밍 방식으로 이 모든 작업을 수행할 수 있다. ```python np.std(friends) # == 425.2 ``` ### 상대적 위치의 측정 상대적 위치의 척도를 만들기 위해 중심과 편차의 척도를 결합할 수 있다. 전체 데이터셋과 관련해서 특정 데이터 값이 위치하는 것을 측정하는 것이 `편차 측정값`measure of variation이다. 통계에서 매우 중요한 값인 z-score를 알아보자. z-score 는 단일 데이터 값이 평균으로부터 얼마나 멀리 떨어져 있는지 알려주는 방법이다. x 데이터 값의 z-score 는 다음과 같다. $$ z = \frac{x-\bar{x}}{s} $$ - x 는 데이터 포인트다. - $\bar{x}$ 는 평균이다. - s 는 표준 편차다. ```python z_scores = [] m = np.mean(friends) s = np.std(friends) for friend in friends: z = (friend - m)/s z_scores.append(z) ``` 데이터의 성격을 감안할 때 가설에는 다음과 같은 세 가지 옵션만 있다. - 온라인 친구들의 수와 행복 사이에 긍정적인 연관성이 있다. (하나가 올라갈 때 다른 하나도 올라간다) - 그들 사이에 부정적인 연관성이 있다. (친구의 수가 늘어나면 행복이 줄어든다.) - 변수 간에 연관성이 없다 (하나가 변경될 때 다른 하나는 실제로 그렇게 많이 변경되지 않는다.) `상관 계수` correlation coefficients 는 두 변수 간 연관성/관계의 강도를 설명하는 양적 측정이다. ```python friends = [109, 1017, 1127, 418, 625, 957, 89, 950, 946, 797, 981, 125, 455, 731, 1640, 485, 1309, 472, 1132, 1773, 906, 531, 742, 621] happiness = [.8, .6, .3, .6, .6, .4, .8, .5, .4, .3, .3, .6, .2, .8, 1, .6, .2, .7, .5, .3, .1, 0, .3, 1] import pandas as pd df = pd.DataFrame({'friends':friends, 'happiness':happiness}) df.head() ``` <HTML> <div> <table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>friends</th> <th>happiness</th> </tr> </thead> <tbody> <tr> <th>0</th> <td>109</td> <td>0.8</td> </tr> <tr> <th>1</th> <td>1017</td> <td>0.6</td> </tr> <tr> <th>2</th> <td>1127</td> <td>0.3</td> </tr> <tr> <th>3</th> <td>418</td> <td>0.6</td> </tr> <tr> <th>4</th> <td>625</td> <td>0.6</td> </tr> </tbody> </table> </div> </HTML> ```python # 변수들 사이의 상관관계 df.corr() ``` <HTML> <div> <table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>friends</th> <th>happiness</th> </tr> </thead> <tbody> <tr> <th>friends</th> <td>1.000000</td> <td>-0.216199</td> </tr> <tr> <th>happiness</th> <td>-0.216199</td> <td>1.000000</td> </tr> </tbody> </table> </div> </HTML> ```python from sklearn import preprocessing df_scaled = pd.DataFrame(preprocessing.scale(df), columns=['friends_scaled', 'happiness_scaled']) df_scaled.head() ``` <HTML> <div> <table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>friends_scaled</th> <th>happiness_scaled</th> </tr> </thead> <tbody> <tr> <th>0</th> <td>-1.599495</td> <td>1.153223</td> </tr> <tr> <th>1</th> <td>0.536040</td> <td>0.394939</td> </tr> <tr> <th>2</th> <td>0.794750</td> <td>-0.742486</td> </tr> <tr> <th>3</th> <td>-0.872755</td> <td>0.394939</td> </tr> <tr> <th>4</th> <td>-0.385909</td> <td>0.394939</td> </tr> </tbody> </table> </div> </HTML> ```python # 평균의 표준 편차 1 이내의 사람들의 비율 찾기 within_1_std = df_scaled[(df_scaled['friends_scaled'] <= 1) & (df_scaled['friends_scaled'] >= -1)].shape[0] within_1_std / float(df_scaled.shape[0]) ``` 0.75 ```python # 평균의 표준 편차 2 이내의 사람들의 비율 찾기 within_2_std = df_scaled[(df_scaled['friends_scaled'] <= 2) & (df_scaled['friends_scaled'] >= -2)].shape[0] within_2_std / float(df_scaled.shape[0]) ``` 0.9166666666666666 ```python # 평균의 표준 편차 3 이내의 사람들의 비율 찾기 within_3_std = df_scaled[(df_scaled['friends_scaled'] <= 3) & (df_scaled['friends_scaled'] >= -3)].shape[0] within_3_std / float(df_scaled.shape[0]) ``` 1.0 open/기초-통계.txt 마지막으로 수정됨: 2020/06/02 09:25저자 127.0.0.1