Menu
CoddyTech

표본인가 모집단인가?

Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 4번째.

양봉가가 벌통 5개의 꿀 무게를 kg 단위로 측정했습니다. NumPy와 pandas는 표준편차에 대해 서로 다른 값을 반환합니다:

values = [18, 22, 25, 19, 26]
print(np.round(np.std(values), 2))
print(np.round(pd.Series(values).std(), 2))

다음과 같이 출력됩니다:

3.16
3.54

둘 다 같은 제곱 편차를 더한 다음 나눕니다:

벌집 5개의 제곱 편차 16, 0, 9, 9, 16의 합은 50입니다. 한 화살표는 np.std로 이어집니다: 50 / 5 = 10, 표준편차 3.16, 모집단 공식입니다. 다른 화살표는 pandas로 이어집니다: 50 / 4 = 12.5, 표준편차 3.54, 표본 공식입니다

n으로 나누는 것은 모집단에 적합합니다. 그 안의 모든 값이 포함되기 때문입니다. 표본은 자체 평균에 가까우므로 퍼짐 정도가 작아 보입니다. n - 1은 이를 보정합니다.

ddof=1을 사용하면 NumPy가 표본 공식을 적용합니다. np.std(a, ddof=1)은 pandas와 같은 결과를 냅니다. 모델 데이터는 표본입니다. 도구 간 표준 편차가 다르다면 버그가 아니라 ddof 때문입니다.

challenge icon

챌린지

쉬움

한 생물학자가 박쥐 몇 마리의 날개 폭(단위: cm)에 대해 서로 다른 표준편차를 얻었습니다. 시작 코드는 값을 배열 spans와 Series column에 읽어 들이며, 검사 결과로 False를 출력합니다.

  1. 박쥐는 표본입니다. 두 도구 모두 표본 표준편차를 출력하도록 NumPy 줄을 수정하세요.
  2. 그 아래에 NumPy의 기본값인 np.std(spans)가 column.std()보다 얼마나 작은지 소수점 둘째 자리까지 출력하세요.

날개 폭이 33, 27, 30, 35, 29인 경우:

Sample std: 3.19 cm, tools agree: True
Dividing by n underestimated it by 0.34 cm

직접 해보기

import numpy as np
import pandas as pd

n = int(input())
values = []
for i in range(n):
    values.append(int(input()))
spans = np.array(values)
column = pd.Series(values)

# 이 검사는 False를 출력합니다. 두 도구가 모두 표본 표준편차를 구하도록 NumPy 줄을 수정하세요
numpy_std = np.round(np.std(spans), 2)
pandas_std = np.round(column.std(), 2)
print(f"Sample std: {numpy_std} cm, tools agree: {numpy_std == pandas_std}")

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

머신러닝을 위한 통계의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러