이전 포스팅에서는 중앙화의 예시로 이야기를 개진해 보았다. 이번에는 척도화를 진행해보자.
이전 포스팅과 동일한 파이썬 코드를 가져와보자
import numpy as np
# 10명의 랜덤 시험 점수 생성
np.random.seed(42) # 재현성을 위해 설정
scores = np.random.randint(0, 101, 10)
# 평균과 표준편차 계산
mean_score = np.mean(scores)
std_score = np.std(scores, ddof=0) # 모집단 표준편차 사용
# 중심화 (각 점수에서 평균을 뺌)
centered_scores = scores - mean_score
# 중심화된 점수들의 평균과 표준편차 계산
centered_mean = np.mean(centered_scores)
centered_std = np.std(centered_scores, ddof=0)
# 결과 출력
print("원래 점수:", scores)
print("원래 점수 평균:", mean_score)
print("원래 점수 표준편차:", std_score)
print("중심화된 점수:", centered_scores)
print("중심화된 점수 평균:", centered_mean)
print("중심화된 점수 표준편차:", centered_std)
결과는
이렇게 나온다.
원래 점수: [51 92 14 71 60 20 82 86 74 74]
원래 점수 평균: 62.4
원래 점수 표준편차: 25.370061095708856
중심화된 점수: [-11.4 29.6 -48.4 8.6 -2.4 -42.4 19.6 23.6 11.6 11.6]
중심화된 점수 평균: 1.4210854715202005e-15
중심화된 점수 표준편차: 25.370061095708856
그럼 여기서 원래 점수를 기준으로 구한 중앙화를 활용해서 이어서 척도화를 진행해보자
원래점수에서 평균을 각각 빼서 차이를 구해준다. 이게 중앙화다 이렇게 하면 원래 점수들이 평균은 0이 되게 된다. 그리고 표준편차는 기존과 그대로 유지된다. 그 다음 각각의 점수를 원래의 표준편차로 나눠준다. 그리고 이 값과
원래 점수를 각각 2배가 되도록 2를 곱한 다음에 이렇게 점수가 2배가 된 점수들의 평균과 표준편차를 구해보고(평균과 표준편차 2배가 되었을 것이다) 이렇게 나온 점수들을 다시 중심화하여 새로운 점수를 만들고 이렇게 나온 새로운 점수들을 표준편차로 나눠보자. 그리고 결과를 출력해보자.
import numpy as np
# 10명의 랜덤 시험 점수 생성
np.random.seed(42) # 재현성을 위해 설정
scores = np.random.randint(0, 101, 10)
# 평균과 표준편차 계산
mean_score = np.mean(scores)
std_score = np.std(scores, ddof=0) # 모집단 표준편차 사용
# 중심화 (각 점수에서 평균을 뺌)
centered_scores = scores - mean_score
# 중심화된 점수들을 원래 점수의 표준편차로 나눔
standardized_scores = centered_scores / std_score
# 원래 점수를 2배로 증가시킨 배열 생성
doubled_scores = scores * 2
# 2배 된 점수들의 평균과 표준편차 계산
doubled_mean = np.mean(doubled_scores)
doubled_std = np.std(doubled_scores, ddof=0)
# 2배 된 점수들에 대해서 중심화 (평균 뺀 값)
doubled_centered_scores = doubled_scores - doubled_mean
# 2배 된 점수들을 표준편차로 나눈 값
doubled_standardized_scores = doubled_centered_scores / doubled_std
# 결과 출력
print("원래 점수:", scores)
print("원래 점수 평균:", mean_score)
print("원래 점수 표준편차:", std_score)
print("중심화된 점수:", centered_scores)
print("중심화된 점수 표준편차로 나눈 값:", standardized_scores)
print()
print("2배 된 점수:", doubled_scores)
print("2배 된 점수 평균:", doubled_mean)
print("2배 된 점수 표준편차:", doubled_std)
print("2배 된 점수 중심화된 값:", doubled_centered_scores)
print("2배 된 점수 중심화된 값 표준편차로 나눈 값:", doubled_standardized_scores)
결과는 아래와 같다
여기 결과에서 보이듯이 원래 점수들에 각각 2배를 한 점수들을 중심화해서 표준편차를 구한다음 그 표준편차로 중심화된 점수를 나눠줘도 원래점수의 표준편차와 동일하게 나온다는 것을 알 수 있다. 이처럼 관측치를 표준편차로 나누는 것을 척도화(Scaling)이라고 한다. 척도화는 단위에 따른 차이를 고려해서 값들을 상대적인 척도로 바꿔준다. 예를 들어, 평균보다 11.4점 낮았던 학생의 점수에 척도화를 하면 -0.44934854가 나오는데 반올림해서 -0.45라고하면, 이것은 이 학생이 평균에서 표준편차의 0.45배 만큼 더 낮은 점수를 갖고 있다는 것을 의미한다. 척도화의 장점은 또 있다. 변수는 cm, m와 같은 단위가 있다. 척도화는 값의 전반적인 크기를 보정할 뿐만 아니라, 단위를 없애줍니다.
-11.4(점) / 25.37(점) = -0.4493...
관측치의 값도, 표준편차의 값도 '점'이라는 단위가 있지만 척도화를 하면 분모와 분자의 값만 약분되는 것이 아니라 단위도 약분되어 없어진다. 즉, 변수가 어떤 단위를 쓰든 상관없이 척도화의 결과는 단위가 없는 그냥 숫자라는 것.
따라서 -11.4(점) / 25.37(점) = -0.4493... 이 결과는 51점 받은 사람은 평균에 대해서 성적이 낮은 쪽으로 0.4493만큼 떨어져있다고 볼 수 있다.
'수학' 카테고리의 다른 글
중앙화(Centering)과 척도화(Scaling)을 통한 표준화 파이썬 코드 예시 (0) | 2025.03.03 |
---|---|
중심화와 척도화를 통한 표준화 (0) | 2025.03.03 |
동전던지기를 100번 수행해서 앞면이 60번 나올 확률과 그 이해(1) (0) | 2025.03.03 |
동전던지기와 이항분포(Binomial Distribution) 그리고 중앙극한정리 (0) | 2025.02.27 |