녕녀기의 실험일지

[ 통계 ] 국민대학교_회귀분석_상관분석 본문

-- Data --/- 데이터 분석 -

[ 통계 ] 국민대학교_회귀분석_상관분석

녕녀기 2024. 7. 19. 10:33

※ 강의 내용을 요약한 글입니다.

평소 모호했던 개념이나 몰랐던 내용을 적어놓은 글이기 때문에, 강의 내용이 전부 포함돼 있지 않습니다.


http://www.kocw.net/home/cview.do?cid=320ebed6dfe4f57a

 

회귀분석

회귀분석은 변수들 간의 관계를 수학적 함수형태로 표현하는 통계방법론으로써, 매우 실용적인 연구방법론 중 하나이다. 본 강의에서는 회귀분석에 대한 여러가지 주제를 다룰 것이다. 이와함

www.kocw.net


  1. 공분산(covariance) : 두 변수 간의 선형 관계를 나타내는 측도
    • Cov(X, Y) = E{( X - μx )( Y - μy )}
    • 만약 하나의 변수의 공분산이면, Cov(X, X) = E{( X - μx )( X - μx )} = E{ ( X - μx )² } = Var(X) (X의 분산)
    • 공분산이 양수면 양의 선형 관계, 음수면 음의 선형 관계
    • 두 확률 변수가 독립이면 공분산은 0 (역은 성립하지 않음. 왜냐하면 독립이 아닌 비선형적인 관계가 있을 수도 있기 때문)
    • 단위에 의존함(예를 들어, m일 때와 cm일 때 값이 많이 달라짐)
  2. 모집단 상관 계수 ρ의 가설 검정
    • H0 : ρ = 0, H1 : ρ ≠ 0
    • t = √( n - 2 ) * r / √( 1 - r² )
    • 자유도 n - 2인 t 분포 (양쪽 검정)
  3. 실습
"""대한민국 평균 남성의 키의 95% 신뢰구간과 99% 신뢰구간을 구하라"""

import numpy as np
import math

# 대한민국 성인 남성 10명의 키
height = [192, 180, 190, 186, 169, 176, 179, 173, 191, 170]

# 표본 평균
sample_mean = 180.6

# 표본 분산
sample_var = 76.04
## ↑위 식을 아래 코드로 증명 ↓
## sum((h - sample_mean)**2 for h in height) / (len(height) - 1)

# 95% 신뢰 구간과 99% 신뢰 구간 계산

from scipy.stats import t

degree_of_freedom = len(height) - 1 # 자유도

t_ = t(degree_of_freedom)  # t 안에 자유도

t_0025 = t_.ppf(0.975)  # 신뢰 구간 95%일 때, 양쪽 검정(α/2)
t_0005 = t_.ppf(0.995)  # 신뢰 구간 99%일 때, 양쪽 검정(α/2)

upper_95 = sample_mean + t_0025 * math.sqrt(sample_var) / math.sqrt(len(height))
lower_95 = sample_mean - t_0025 * math.sqrt(sample_var) / math.sqrt(len(height))

upper_99 = sample_mean + t_0005 * math.sqrt(sample_var) / math.sqrt(len(height))
lower_99 = sample_mean - t_0005 * math.sqrt(sample_var) / math.sqrt(len(height))

print(f'신뢰구간 95% : {round(lower_95, 1)} ≤ m ≤ {round(upper_95, 1)}')
print(f'신뢰구간 99% : {round(lower_99, 1)} ≤ m ≤ {round(upper_99, 1)}')

# >> 신뢰구간 95% : 174.4 ≤ m ≤ 186.8
# >> 신뢰구간 99% : 171.6 ≤ m ≤ 189.6
"""대한민국 성인 남성의 평균 키가 175라고 추정할 수 있는가?"""

from scipy.stats import ttest_1samp

population_mean = 175   # 모평균 추정치

tt = ttest_1samp(a=height, popmean = population_mean)

if tt[1] > 0.05 : 
    print(f'유의 수준 5%에서 p-value가 {round(tt[1],4)}이므로 귀무가설을 채택. \n대한민국 성인 남성의 평균 키는 {population_mean}이 맞다고 볼 수 있습니다.')
else : 
    print(f'유의 수준 5%에서 p-value가 {round(tt[1],4)}이므로 귀무가설을 기각. \n대한민국 성인 남성의 평균 키는 {population_mean}이 아닐 수 있습니다.')
    
# >> 유의 수준 5%에서 p-value가 0.0728이므로 귀무가설을 채택. 
#    대한민국 성인 남성의 평균 키는 175이 맞다고 볼 수 있습니다.
Comments