기술통계와 추론통계

Python으로 설문 데이터 분석하기

EbunOluwa Andrew

Data Scientist

기술통계

  • 설문 데이터를 요약하는 기본 지표
  • 예: 평균, 중앙값, 최빈값, 범위, 표준편차 등
  • .describe()

Lukas 촬영 - 차트 클로즈업

1 Photo by Lukas
Python으로 설문 데이터 분석하기

.describe() 함수

data.describe()
|      | year     | satisfaction_rating
|------|----------|--------------------
| count|       42 |                  42
| mean | 2012.381 |            7192.857
| std  |    4.196 |             945.178
| min  |     2006 |                5500
| 25%  |     2009 |                6325
| 50%  |   2012.5 |                7400
| 75%  |     2016 |                8000
| max  |     2019 |                8600
data.describe(include = np.object)
|        | category    |
|--------|-------------|
| count  | 42          |
| unique | 3           |
| top    | Residential |
| freq   | 14          |
Python으로 설문 데이터 분석하기

.describe() 해석하기

  • 이상치 = 최댓값이 평균과 중앙값보다 큼
  • 불합리한 값 = 논리적으로 성립하지 않음
|       | year     | satisfaction_rating |
|-------|----------|---------------------|
| count |       42 |                  42 |
| mean  | 2012.381 |            7192.857 |
| std   |    4.196 |             945.178 |
| min   |     2006 |                5500 |
| 25%   |     2009 |                6325 |
| 50%   |   2012.5 |                7400 |
| 75%   |     2016 |                8000 |
| max   |     2019 |                8600 |
Python으로 설문 데이터 분석하기

.describe() 해석하기

  • 최빈값(top) = 가장 많이 나온 범주
  • Freq = 최빈 범주의 빈도수
|        | category    |
|--------|-------------|
| count  | 42          |
| unique | 3           |
| top    | Residential |
| freq   | 14          |
Python으로 설문 데이터 분석하기

electric_satisfaction에 .describe()

import pandas as pd

electric_satisfaction = pd.read_csv("austin-energy-customer-satisfaction.csv")
Python으로 설문 데이터 분석하기

electric_satisfaction에 .describe()

electric_satisfaction.describe()
|      | year     | satisfaction_rating
|------|----------|--------------------
| count|       42 |                  42
| mean | 2012.381 |            7192.857
| std  |    4.196 |             945.178
| min  |     2006 |                5500
| 25%  |     2009 |                6325
| 50%  |   2012.5 |                7400
| 75%  |     2016 |                8000
| max  |     2019 |                8600
  • satisfaction_rating에 이상치가 있음
  • 50퍼센타일 = 중앙값
Python으로 설문 데이터 분석하기

electric_satisfaction에 .describe()

|        | category    |
|--------|-------------|
| count  | 42          |
| unique | 3           |
| top    | Residential |
| freq   | 14          |
  • 최빈값 = 주거용 응답자
Python으로 설문 데이터 분석하기

추론통계

  • 표본이 모집단에 일반화 가능한지 판단
  • 표본 < 모집단 → 표본오차 발생
  • 모집단 모수 추정
    • 신뢰구간
      • norm.interval() 함수

Pexels의 Andrea Piacquadio 촬영 - 전구 든 여성

1 Photo by Andrea Piacquadio on Pexels
Python으로 설문 데이터 분석하기

norm.interval() 함수

  • 대규모 데이터에 적합
  • 표본평균의 분포가 정규라고 가정
import scipy.stats
scipy.stats.norm.interval(alpha, loc, scale)
  • alpha = 신뢰수준
  • loc = 표본평균
  • scale= 표본 표준오차
Python으로 설문 데이터 분석하기

electric_satisfaction에서 norm.interval() 해석

electric_satisfaction = pd.read_csv(
  "austin-energy-customer-satisfaction.csv")

conf_interval = st.norm.interval(
  alpha = 0.99,
  loc = np.mean(electric_satisfaction.satisfaction),
  scale=st.sem(electric_satisfaction.satisfaction))

print(conf_interval)
(6817.187361704269, 7568.526924010017)
Python으로 설문 데이터 분석하기

Ayo berlatih!

Python으로 설문 데이터 분석하기

Preparing Video For Download...