Z-점수 계산기
소개
z-점수(또는 표준 점수)는 값이 값 그룹의 평균과 어떤 관계가 있는지를 설명하는 통계적 측정입니다. 이는 요소가 평균으로부터 몇 개의 표준 편차만큼 떨어져 있는지를 나타냅니다. z-점수는 통계에서 중요한 도구로, 서로 다른 데이터 세트를 표준화하고 이상치를 식별하는 데 사용됩니다.
공식
z-점수는 다음 공식을 사용하여 계산됩니다:
어디서:
- = z-점수
- = 개별 데이터 포인트
- = 데이터 세트의 평균
- = 데이터 세트의 표준 편차
이 공식은 데이터 포인트가 평균으로부터 몇 개의 표준 편차인지를 계산합니다.
계산
데이터 포인트의 z-점수를 계산하려면:
-
평균() 계산:
모든 데이터 포인트를 합산하고 데이터 포인트 수로 나눕니다.
-
표준 편차() 계산:
-
분산():
-
표준 편차:
-
-
z-점수 계산:
z-점수 공식에 값을 대입합니다.
엣지 케이스
-
표준 편차가 0인 경우 ():
모든 데이터 포인트가 동일할 때 표준 편차는 0이 되어 z-점수가 정의되지 않습니다. 이 경우 z-점수 개념이 적용되지 않습니다.
-
데이터 포인트가 평균과 같은 경우 ():
데이터 포인트가 평균과 같으면 z-점수는 0이 되어 평균과 정확히 같음을 나타냅니다.
-
비숫자 입력:
모든 입력이 숫자인지 확인하십시오. 비숫자 입력은 계산 오류를 초래합니다.
누적 확률
z-점수와 관련된 누적 확률은 표준 정규 분포에서 무작위 변수가 주어진 값보다 작거나 같을 확률을 나타냅니다. 이는 지정된 z-점수의 왼쪽에 있는 정규 분포 곡선 아래의 면적입니다.
수학적으로 누적 확률 는 표준 정규 분포의 누적 분포 함수(CDF)를 사용하여 계산됩니다:
어디서:
- = z에서의 표준 정규 분포의 CDF
누적 확률은 특정 범위 내에서 값이 발생할 가능성을 결정하는 데 통계에서 필수적입니다. 품질 관리, 금융 및 사회 과학과 같은 분야에서 널리 사용됩니다.
SVG 다이어그램
아래는 표준 정규 분포 곡선과 z-점수를 설명하는 SVG 다이어그램입니다:
그림: z-점수가 음영 처리된 표준 정규 분포 곡선
이 다이어그램은 중앙에 평균 가 있는 정규 분포 곡선을 보여줍니다. 음영 처리된 영역은 z-점수에 해당하는 데이터 포인트 까지의 누적 확률을 나타냅니다.
사용 사례
응용 프로그램
-
서로 다른 척도 간의 표준화:
z-점수는 데이터 세트를 표준화하여 서로 다른 척도에서의 비교를 가능하게 합니다.
-
이상치 탐지:
평균에서 상당히 멀리 떨어진 데이터 포인트 식별(예: z-점수가 -3보다 작거나 3보다 큰 경우).
-
통계적 테스트:
z-테스트를 포함한 가설 테스트에서 사용되어 샘플 평균이 알려진 모집단 평균과 유의미하게 다른지를 결정합니다.
-
품질 관리:
제조에서 z-점수는 출력이 허용 가능한 한계 내에 유지되도록 프로세스를 모니터링하는 데 도움을 줍니다.
-
재무 및 투자:
평균 시장 성과에 비해 주식 성과를 평가합니다.
대안
-
t-점수:
z-점수와 유사하지만 샘플 크기가 작고 모집단 표준 편차가 알려지지 않은 경우에 사용됩니다.
-
백분위수 순위:
빈도 분포에서 자신보다 같거나 낮은 점수의 비율을 나타냅니다.
-
표준 편차 단위:
z-점수로 표준화하지 않고 원시 표준 편차 값을 사용하는 것입니다.
역사
z-점수 개념은 19세기 초 칼 프리드리히 가우스의 정규 분포에 대한 작업에서 유래되었습니다. z-점수의 기초가 되는 표준 정규 분포는 아브라함 드 무아브르와 피에르-시몽 라플라스와 같은 통계학자들에 의해 더욱 발전되었습니다. z-점수의 사용은 20세기 통계 방법의 발전과 함께 심리 테스트 및 품질 관리에서 널리 퍼졌습니다.
예시
Excel
## Excel에서 z-점수 계산
## A2 셀에 데이터 포인트, B2 셀에 평균, C2 셀에 표준 편차가 있다고 가정
=(A2 - B2) / C2
R
## R에서 z-점수 계산
calculate_z_score <- function(x, mean, sd) {
if (sd == 0) {
stop("표준 편차는 0이 될 수 없습니다.")
}
z <- (x - mean) / sd
return(z)
}
## 사용 예:
x <- 85
mu <- 75
sigma <- 5
z_score <- calculate_z_score(x, mu, sigma)
print(paste("Z-점수:", z_score))
MATLAB
% MATLAB에서 z-점수 계산
function z = calculate_z_score(x, mu, sigma)
if sigma == 0
error('표준 편차는 0이 될 수 없습니다.');
end
z = (x - mu) / sigma;
end
% 사용 예:
x = 90;
mu = 80;
sigma = 8;
z = calculate_z_score(x, mu, sigma);
fprintf('Z-점수: %.2f\n', z);
JavaScript
// JavaScript에서 z-점수 계산
function calculateZScore(x, mu, sigma) {
if (sigma === 0) {
throw new Error('표준 편차는 0이 될 수 없습니다.');
}
return (x - mu) / sigma;
}
// 사용 예:
const x = 100;
const mu = 85;
const sigma = 7;
try {
const z = calculateZScore(x, mu, sigma);
console.log(`Z-점수: ${z.toFixed(2)}`);
} catch (error) {
console.error(error.message);
}
Python
## Python에서 z-점수 계산
def calculate_z_score(x, mu, sigma):
if sigma == 0:
raise ValueError("표준 편차는 0이 될 수 없습니다.")
return (x - mu) / sigma
## 사용 예:
x = 95
mu = 88
sigma = 4
try:
z = calculate_z_score(x, mu, sigma)
print("Z-점수:", round(z, 2))
except ValueError as e:
print(e)
Java
// Java에서 z-점수 계산
public class ZScoreCalculator {
public static double calculateZScore(double x, double mu, double sigma) {
if (sigma == 0) {
throw new IllegalArgumentException("표준 편차는 0이 될 수 없습니다.");
}
return (x - mu) / sigma;
}
public static void main(String[] args) {
double x = 110;
double mu = 100;
double sigma = 5;
try {
double z = calculateZScore(x, mu, sigma);
System.out.printf("Z-점수: %.2f%n", z);
} catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
}
C/C++
// C++에서 z-점수 계산
#include <iostream>
#include <stdexcept>
double calculate_z_score(double x, double mu, double sigma) {
if (sigma == 0) {
throw std::invalid_argument("표준 편차는 0이 될 수 없습니다.");
}
return (x - mu) / sigma;
}
int main() {
double x = 130;
double mu = 120;
double sigma = 10;
try {
double z = calculate_z_score(x, mu, sigma);
std::cout << "Z-점수: " << z << std::endl;
} catch (const std::exception &e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
Ruby
## Ruby에서 z-점수 계산
def calculate_z_score(x, mu, sigma)
raise ArgumentError, "표준 편차는 0이 될 수 없습니다." if sigma == 0
(x - mu) / sigma
end
## 사용 예:
x = 105
mu = 100
sigma = 5
begin
z = calculate_z_score(x, mu, sigma)
puts "Z-점수: #{z.round(2)}"
rescue ArgumentError => e
puts e.message
end
PHP
<?php
// PHP에서 z-점수 계산
function calculate_z_score($x, $mu, $sigma) {
if ($sigma == 0) {
throw new Exception("표준 편차는 0이 될 수 없습니다.");
}
return ($x - $mu) / $sigma;
}
// 사용 예:
$x = 115;
$mu = 110;
$sigma = 5;
try {
$z = calculate_z_score($x, $mu, $sigma);
echo "Z-점수: " . round($z, 2);
} catch (Exception $e) {
echo $e->getMessage();
}
?>
Rust
// Rust에서 z-점수 계산
fn calculate_z_score(x: f64, mu: f64, sigma: f64) -> Result<f64, String> {
if sigma == 0.0 {
return Err("표준 편차는 0이 될 수 없습니다.".to_string());
}
Ok((x - mu) / sigma)
}
fn main() {
let x = 125.0;
let mu = 115.0;
let sigma = 5.0;
match calculate_z_score(x, mu, sigma) {
Ok(z) => println!("Z-점수: {:.2}", z),
Err(e) => println!("{}", e),
}
}
C#
// C#에서 z-점수 계산
using System;
public class ZScoreCalculator
{
public static double CalculateZScore(double x, double mu, double sigma)
{
if (sigma == 0)
throw new ArgumentException("표준 편차는 0이 될 수 없습니다.");
return (x - mu) / sigma;
}
public static void Main()
{
double x = 135;
double mu = 125;
double sigma = 5;
try
{
double z = CalculateZScore(x, mu, sigma);
Console.WriteLine($"Z-점수: {z:F2}");
}
catch (ArgumentException e)
{
Console.WriteLine(e.Message);
}
}
}
Go
// Go에서 z-점수 계산
package main
import (
"errors"
"fmt"
)
func calculateZScore(x, mu, sigma float64) (float64, error) {
if sigma == 0 {
return 0, errors.New("표준 편차는 0이 될 수 없습니다.")
}
return (x - mu) / sigma, nil
}
func main() {
x := 140.0
mu := 130.0
sigma := 5.0
z, err := calculateZScore(x, mu, sigma)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("Z-점수: %.2f\n", z)
}
}
Swift
// Swift에서 z-점수 계산
func calculateZScore(x: Double, mu: Double, sigma: Double) throws -> Double {
if sigma == 0 {
throw NSError(domain: "표준 편차는 0이 될 수 없습니다.", code: 1, userInfo: nil)
}
return (x - mu) / sigma
}
// 사용 예:
let x = 120.0
let mu = 110.0
let sigma = 5.0
do {
let z = try calculateZScore(x: x, mu: mu, sigma: sigma)
print("Z-점수: \(String(format: "%.2f", z))")
} catch let error as NSError {
print(error.domain)
}
참고 문헌
-
표준 점수 - 위키백과
-
Z-점수 이해하기 - 통계 솔루션
-
정규 분포 및 Z-점수 - 칸 아카데미