카테고리 없음

[250401] 통계학 1주차

jeonieee 2025. 4. 1. 22:12

기술통계와 추론통계

  • 1) 기술통계
    • 주로 평균, 중앙값, 분산, 표준편차 등을 사용합니다.
    • 즉, 데이터를 특정 대표값으로 요약
      • ☑️ 데이터를 요약하고 설명하는 통계 방법.
    • 데이터에 대한 대략적인 특징을 간단하고 쉽게 알 수 있음
    • 단, 데이터 중 예외(이상치)라는게 항상 존재할 수 있고 데이터의 모든 부분을 확인할 수 있는 것은 아님
    • ex) 사람을 처음 만날 때 그 사람의 전체에 대해서 다 알 수는 없지만 기본적인 인적사항들(외모, 직업, 학력, 나이, MBTI 등)로 대략적으로 그 사람에 대한 요약을 할 수 있는 것과 같음 → 하지만 여러분들도 알다시피 대략적으로 파악할 수는 있지만 그 사람에 대한 전부를 확인한 것은 아니며 예외가 항상 존재할 수 있음
    • 평균(mean)
      • 평균은 데이터를 나타내는 값으로, 모든 데이터를 더한 후 데이터의 개수로 나누어 계산합니다.
      • 이는 데이터의 일반적인 경향을 파악하는 데 유용합니다.
    • 중앙값 (Median)
      • 중앙값은 데이터셋을 크기 순서대로 정렬했을 때 중앙에 위치한 값입니다.
      • 이는 이상치(예외적인 값들)에 영향을 덜 받기 때문에 데이터의 중심 경향을 나타내는 또 다른 방법입니다.
    • 분산 (Variance)
      • 분산은 데이터 값들이 평균으로부터 얼마나 떨어져 있는지를 나타내는 척도로, 데이터의 흩어짐 정도를 측정합니다.
      • 분산이 크면 데이터가 넓게 퍼져 있고, 작으면 데이터가 평균에 가깝게 모여 있음을 의미합니다.
      • 분산을 구하는 방법은 각 데이터 값에서 평균을 뺀 값을 제곱한 후, 이를 모두 더하고 데이터의 개수로 나누는 것입니다
        • 예를 들어, 네 명의 학생이 받은 시험 점수가 70, 80, 90, 100이라고 가정합시다. 이들의 평균은 (70 + 80 + 90 + 100) / 4 = 85입니다. 각각의 데이터 값에서 평균을 뺀 값을 제곱하면 다음과 같습니다:
          • (70 - 85)^2 = 225
          • (80 - 85)^2 = 25
          • (90 - 85)^2 = 25
          • (100 - 85)^2 = 225
          이 값을 모두 더한 후 데이터의 개수로 나누면, 분산 = (225 + 25 + 25 + 225) / 4 = 125
    • 표준편차 (Standard Deviation)
      • 표준편차는 데이터 값들이 평균에서 얼마나 떨어져 있는지를 나타내는 통계적 척도로, 분산의 제곱근을 취하여 계산합니다.
      • 표준편차는 데이터의 변동성을 측정하며, 값이 클수록 데이터가 평균으로부터 더 넓게 퍼져 있음을 의미
    • 표준편차와 분산의 관계
      • 분산과 표준편차는 동일하게 데이터의 변동성을 측정하는 두 가지 주요 척도입니다.
      • 두 개념은 밀접하게 연관되어 있으며, 표준편차는 분산의 제곱근입니다.
      • 분산은 데이터 값과 평균의 차이를 제곱하여 평균을 낸 값이기 때문에 제곱 단위로 표현되지만, 표준편차는 다시 제곱근을 취하여 원래 데이터 값과 동일한 단위로 변환
  • 2) 추론통계
    • 주로 신뢰구간, 가설검정 등을 사용합니다.
    • 즉, 데이터의 일부를 가지고 데이터 전체를 추정하는 것이 핵심
    • ex) 비록 그 사람의 인생 전체를 다 본 것은 아니지만 대화를 진행하는 시간 동안 얻어낸 정보로 그 사람이 어떤 사람일지 알아가는 것과 같음
  • 신뢰구간 (Confidence Interval)
    • 신뢰구간은 모집단의 평균이 특정 범위 내에 있을 것이라는 확률을 나타냅니다.
    • 일반적으로 95% 신뢰구간이 사용되며, 이는 모집단 평균이 95% 확률로 이 구간 내에 있음을 의미합니다.
    • 만약 어떤 설문조사에서 평균 만족도가 75점이고, 신뢰구간이 70점에서 80점이라면, 우리는 95% 확률로 실제 평균 만족도가 이 범위 내에 있다고 말할 수 있습니다
    • ☑️ 표본 데이터를 통해 모집단의 특성을 추정하고 가설을 검정하는 통계 방법.
  • 가설검정 (Hypothesis Testing)
    • 가설검정은 모집단에 대한 가설을 검증하기 위해 사용됩니다. 일반적으로 두 가지 가설이 있으며, 귀무가설(H0)은 검증하고자 하는 가설이 틀렸음을 나타내는 기본 가설(변화가 없다, 효과가 없다 등)이고, 대립가설(H1)은 그 반대 가설로 주장하는 바를 나타냅니다(변화가 있다, 효과가 있다 등)입니다. p-value를 통해 귀무가설을 기각할지 여부를 결정합니다.
    • 예를 들어, 새로운 교육 프로그램이 학생들의 성적에 영향을 미치는지 알고 싶다면, 귀무가설은 "프로그램이 성적에 영향을 미치지 않는다"이고, 대립가설은 "프로그램이 성적에 영향을 미친다"입니다.
  • 기술통계 : 회사의 매출 데이터를 요약하기 위해 평균 매출, 매출의 표준편차 등을 계산
  • 추론통계 : 일부 고객의 설문조사를 통해 전체 고객의 만족도를 추정

다양한 분석 방법

  • 위치추정 : 데이터의 중심을 확인하는 방법
    • 평균, 중앙값이 대표적인 위치 추정 방법입니다
    • ex) 학생들의 시험 점수에서 평균 점수, 중간 점수를 계산
# 데이터 분석에서 자주 사용되는 라이브러리
import pandas as pd
# 다양한 계산을 빠르게 수행하게 돕는 라이브러리
import numpy as np
# 시각화 라이브러리
import matplotlib.pyplot as plt
# 시각화 라이브러리2
import seaborn as sns

# 이 data는 아래에서도 계속 사용 됩니다
data = [85, 90, 78, 92, 88, 76, 95, 89, 84, 91]

mean = np.mean(data)
median = np.median(data)

print(f"평균: {mean}, 중앙값: {median}")
  • 변이추정 : 데이터들이 서로 얼마나 다른지 확인하는 방법
    • 분산, 표준편차, 범위(range) 등을 사용
  •  범위 = 최댓값 - 최솟값
    • 범위는 데이터셋에서 가장 큰 값과 가장 작은 값의 차이를 나타내는 간단한 분포의 측도입니다.
    • 범위를 통해 데이터가 어느 정도의 변동성을 가지는지 쉽게 파악할 수 있습니다.
    • 범위는 계산이 간단하여 기본적인 데이터 분석에서 자주 사용됩니다.
    수식범위 계산 예시
  • 예를 들어, 다섯 명의 학생이 받은 시험 점수가 60, 70, 80, 90, 100이라고 가정합시다.
    • 최대값은 100
    • 최소값은 60 따라서 범위는 100 - 60 = 40입니다.
    • 범위(R) = 최대값 - 최소값
variance = np.var(data)
std_dev = np.std(data)
data_range = np.max(data) - np.min(data)

print(f"분산: {variance}, 표준편차: {std_dev}, 범위: {data_range}")
  •  데이터 분포 탐색 : 데이터의 값들이 어떻게 이루어져 있는지 확인하기
    • 히스토그램과 상자 그림(Box plot)은 데이터의 분포를 시각적으로 표현하는 대표적인 방법입니다.
    • ex) 시험 점수의 분포를 히스토그램과 상자 그림으로 표현
plt.hist(data, bins=5)
plt.title('histogram')
plt.show()

plt.boxplot(data)
plt.title('boxplot')
plt.show()
  • 이진 데이터와 범주 데이터 탐색 : 데이터들이 서로 얼마나 다른지 확인하는 방법
    • 최빈값(개수가 제일 많은 값)을 주로 사용합니다
    • 파이그림과 막대 그래프는 이진 데이터와 범주 데이터의 분포를 표현하는 대표적 방법입니다.
    • ex) 고객 만족도 설문에서 만족/불만족의 빈도 분석
satisfaction = ['satisfaction', 'satisfaction', 'dissatisfaction', 
'satisfaction', 'dissatisfaction', 'satisfaction', 'satisfaction', 
'dissatisfaction', 'satisfaction', 'dissatisfaction']
satisfaction_counts = pd.Series(satisfaction).value_counts()

satisfaction_counts.plot(kind='bar')
plt.title('satisfaction distribution')
plt.show()
  •  상관관계 : 데이터들끼리 서로 관련이 있는지 확인하는 방법
    • 상관계수는 두 변수 간의 관계를 측정하는 방법입니다.
    • 상관계수를 계산해서 -1이나 1에 가까워지면 강력한 상관관계를 가집니다.
    • -0.5나 0.5를 가지면 중간정도의 상관관계를 가집니다.
    • 0에 가까울 수록 상관관계가 없습니다.
    • ex) 공부 시간과 시험 점수 간의 상관관계를 분석
study_hours = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
exam_scores = [95, 90, 85, 80, 75, 70, 65, 60, 55, 50]
correlation = np.corrcoef(study_hours, exam_scores)[0, 1]

print(f"공부 시간과 시험 점수 간의 상관계수: {correlation}")

plt.scatter(study_hours, exam_scores)
plt.show()
  • 인과관계와 상관관계의 차이
    • 인과관계는 상관관계와는 다르게 원인, 결과가 분명해야함
      • 상관관계는 두 변수 간의 관계를 나타내며, 인과관계는 한 변수가 다른 변수에 미치는 영향을 나타냅니다.
      • ex) 아이스크림 판매량과 익사 사고 수 간의 상관관계는 높지만, 인과관계는 아님.
  • 두 개 이상의 변수 탐색 : 여러 데이터들끼리 서로 관련이 있는지 확인
    • 다변량 분석은 여러 변수 간의 관계를 분석하는 방법입니다.
    • ex) 여러 마케팅 채널의 광고비와 매출 간의 관계 분석
data = {'TV': [230.1, 44.5, 17.2, 151.5, 180.8],
        'Radio': [37.8, 39.3, 45.9, 41.3, 10.8],
        'Newspaper': [69.2, 45.1, 69.3, 58.5, 58.4],
        'Sales': [22.1, 10.4, 9.3, 18.5, 12.9]}
df = pd.DataFrame(data)

sns.pairplot(df)
plt.show()

df.corr()

진짜.. 만우절 구라라고 해줘...
더보기.. 햄부기... 키킥...
혼돈의 21조..