🛠️

Whiz Tools

Build • Create • Innovate

Z-점수 계산기: 데이터 포인트의 표준 점수 계산

데이터 포인트의 z-점수(표준 점수)를 계산하여 표준 편차를 사용하여 평균에 대한 위치를 결정합니다. 통계 분석 및 데이터 표준화에 적합합니다.

📚

문서

Z-점수 계산기

소개

z-점수(또는 표준 점수)는 값이 값 그룹의 평균과 어떤 관계가 있는지를 설명하는 통계적 측정입니다. 이는 요소가 평균으로부터 몇 개의 표준 편차만큼 떨어져 있는지를 나타냅니다. z-점수는 통계에서 중요한 도구로, 서로 다른 데이터 세트를 표준화하고 이상치를 식별하는 데 사용됩니다.

공식

z-점수는 다음 공식을 사용하여 계산됩니다:

z=xμσz = \frac{x - \mu}{\sigma}

어디서:

  • zz = z-점수
  • xx = 개별 데이터 포인트
  • μ\mu = 데이터 세트의 평균
  • σ\sigma = 데이터 세트의 표준 편차

이 공식은 데이터 포인트가 평균으로부터 몇 개의 표준 편차인지를 계산합니다.

계산

데이터 포인트의 z-점수를 계산하려면:

  1. 평균(μ\mu) 계산:

    모든 데이터 포인트를 합산하고 데이터 포인트 수로 나눕니다.

    μ=i=1nxin\mu = \frac{\sum_{i=1}^{n} x_i}{n}
  2. 표준 편차(σ\sigma) 계산:

    • 분산(σ2\sigma^2):

      σ2=i=1n(xiμ)2n\sigma^2 = \frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n}
    • 표준 편차:

      σ=σ2\sigma = \sqrt{\sigma^2}
  3. z-점수 계산:

    z-점수 공식에 값을 대입합니다.

    z=xμσz = \frac{x - \mu}{\sigma}

엣지 케이스

  • 표준 편차가 0인 경우 (σ=0\sigma = 0):

    모든 데이터 포인트가 동일할 때 표준 편차는 0이 되어 z-점수가 정의되지 않습니다. 이 경우 z-점수 개념이 적용되지 않습니다.

  • 데이터 포인트가 평균과 같은 경우 (x=μx = \mu):

    데이터 포인트가 평균과 같으면 z-점수는 0이 되어 평균과 정확히 같음을 나타냅니다.

  • 비숫자 입력:

    모든 입력이 숫자인지 확인하십시오. 비숫자 입력은 계산 오류를 초래합니다.

누적 확률

z-점수와 관련된 누적 확률은 표준 정규 분포에서 무작위 변수가 주어진 값보다 작거나 같을 확률을 나타냅니다. 이는 지정된 z-점수의 왼쪽에 있는 정규 분포 곡선 아래의 면적입니다.

수학적으로 누적 확률 PP는 표준 정규 분포의 누적 분포 함수(CDF)를 사용하여 계산됩니다:

P(Zz)=Φ(z)=12πzet2/2dtP(Z \leq z) = \Phi(z) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{z} e^{-t^2/2} \, dt

어디서:

  • Φ(z)\Phi(z) = z에서의 표준 정규 분포의 CDF

누적 확률은 특정 범위 내에서 값이 발생할 가능성을 결정하는 데 통계에서 필수적입니다. 품질 관리, 금융 및 사회 과학과 같은 분야에서 널리 사용됩니다.

SVG 다이어그램

아래는 표준 정규 분포 곡선과 z-점수를 설명하는 SVG 다이어그램입니다:

μ x z

표준 정규 분포

그림: z-점수가 음영 처리된 표준 정규 분포 곡선

이 다이어그램은 중앙에 평균 μ\mu가 있는 정규 분포 곡선을 보여줍니다. 음영 처리된 영역은 z-점수에 해당하는 데이터 포인트 xx까지의 누적 확률을 나타냅니다.

사용 사례

응용 프로그램

  • 서로 다른 척도 간의 표준화:

    z-점수는 데이터 세트를 표준화하여 서로 다른 척도에서의 비교를 가능하게 합니다.

  • 이상치 탐지:

    평균에서 상당히 멀리 떨어진 데이터 포인트 식별(예: z-점수가 -3보다 작거나 3보다 큰 경우).

  • 통계적 테스트:

    z-테스트를 포함한 가설 테스트에서 사용되어 샘플 평균이 알려진 모집단 평균과 유의미하게 다른지를 결정합니다.

  • 품질 관리:

    제조에서 z-점수는 출력이 허용 가능한 한계 내에 유지되도록 프로세스를 모니터링하는 데 도움을 줍니다.

  • 재무 및 투자:

    평균 시장 성과에 비해 주식 성과를 평가합니다.

대안

  • t-점수:

    z-점수와 유사하지만 샘플 크기가 작고 모집단 표준 편차가 알려지지 않은 경우에 사용됩니다.

  • 백분위수 순위:

    빈도 분포에서 자신보다 같거나 낮은 점수의 비율을 나타냅니다.

  • 표준 편차 단위:

    z-점수로 표준화하지 않고 원시 표준 편차 값을 사용하는 것입니다.

역사

z-점수 개념은 19세기 초 칼 프리드리히 가우스의 정규 분포에 대한 작업에서 유래되었습니다. z-점수의 기초가 되는 표준 정규 분포는 아브라함 드 무아브르와 피에르-시몽 라플라스와 같은 통계학자들에 의해 더욱 발전되었습니다. z-점수의 사용은 20세기 통계 방법의 발전과 함께 심리 테스트 및 품질 관리에서 널리 퍼졌습니다.

예시

Excel

1## Excel에서 z-점수 계산
2## A2 셀에 데이터 포인트, B2 셀에 평균, C2 셀에 표준 편차가 있다고 가정
3=(A2 - B2) / C2
4

R

1## R에서 z-점수 계산
2calculate_z_score <- function(x, mean, sd) {
3  if (sd == 0) {
4    stop("표준 편차는 0이 될 수 없습니다.")
5  }
6  z <- (x - mean) / sd
7  return(z)
8}
9
10## 사용 예:
11x <- 85
12mu <- 75
13sigma <- 5
14z_score <- calculate_z_score(x, mu, sigma)
15print(paste("Z-점수:", z_score))
16

MATLAB

1% MATLAB에서 z-점수 계산
2function z = calculate_z_score(x, mu, sigma)
3    if sigma == 0
4        error('표준 편차는 0이 될 수 없습니다.');
5    end
6    z = (x - mu) / sigma;
7end
8
9% 사용 예:
10x = 90;
11mu = 80;
12sigma = 8;
13z = calculate_z_score(x, mu, sigma);
14fprintf('Z-점수: %.2f\n', z);
15

JavaScript

1// JavaScript에서 z-점수 계산
2function calculateZScore(x, mu, sigma) {
3  if (sigma === 0) {
4    throw new Error('표준 편차는 0이 될 수 없습니다.');
5  }
6  return (x - mu) / sigma;
7}
8
9// 사용 예:
10const x = 100;
11const mu = 85;
12const sigma = 7;
13try {
14  const z = calculateZScore(x, mu, sigma);
15  console.log(`Z-점수: ${z.toFixed(2)}`);
16} catch (error) {
17  console.error(error.message);
18}
19

Python

1## Python에서 z-점수 계산
2def calculate_z_score(x, mu, sigma):
3    if sigma == 0:
4        raise ValueError("표준 편차는 0이 될 수 없습니다.")
5    return (x - mu) / sigma
6
7## 사용 예:
8x = 95
9mu = 88
10sigma = 4
11try:
12    z = calculate_z_score(x, mu, sigma)
13    print("Z-점수:", round(z, 2))
14except ValueError as e:
15    print(e)
16

Java

1// Java에서 z-점수 계산
2public class ZScoreCalculator {
3    public static double calculateZScore(double x, double mu, double sigma) {
4        if (sigma == 0) {
5            throw new IllegalArgumentException("표준 편차는 0이 될 수 없습니다.");
6        }
7        return (x - mu) / sigma;
8    }
9
10    public static void main(String[] args) {
11        double x = 110;
12        double mu = 100;
13        double sigma = 5;
14
15        try {
16            double z = calculateZScore(x, mu, sigma);
17            System.out.printf("Z-점수: %.2f%n", z);
18        } catch (IllegalArgumentException e) {
19            System.err.println(e.getMessage());
20        }
21    }
22}
23

C/C++

1// C++에서 z-점수 계산
2#include <iostream>
3#include <stdexcept>
4
5double calculate_z_score(double x, double mu, double sigma) {
6    if (sigma == 0) {
7        throw std::invalid_argument("표준 편차는 0이 될 수 없습니다.");
8    }
9    return (x - mu) / sigma;
10}
11
12int main() {
13    double x = 130;
14    double mu = 120;
15    double sigma = 10;
16
17    try {
18        double z = calculate_z_score(x, mu, sigma);
19        std::cout << "Z-점수: " << z << std::endl;
20    } catch (const std::exception &e) {
21        std::cerr << e.what() << std::endl;
22    }
23
24    return 0;
25}
26

Ruby

1## Ruby에서 z-점수 계산
2def calculate_z_score(x, mu, sigma)
3  raise ArgumentError, "표준 편차는 0이 될 수 없습니다." if sigma == 0
4  (x - mu) / sigma
5end
6
7## 사용 예:
8x = 105
9mu = 100
10sigma = 5
11begin
12  z = calculate_z_score(x, mu, sigma)
13  puts "Z-점수: #{z.round(2)}"
14rescue ArgumentError => e
15  puts e.message
16end
17

PHP

1<?php
2// PHP에서 z-점수 계산
3function calculate_z_score($x, $mu, $sigma) {
4  if ($sigma == 0) {
5    throw new Exception("표준 편차는 0이 될 수 없습니다.");
6  }
7  return ($x - $mu) / $sigma;
8}
9
10// 사용 예:
11$x = 115;
12$mu = 110;
13$sigma = 5;
14
15try {
16  $z = calculate_z_score($x, $mu, $sigma);
17  echo "Z-점수: " . round($z, 2);
18} catch (Exception $e) {
19  echo $e->getMessage();
20}
21?>
22

Rust

1// Rust에서 z-점수 계산
2fn calculate_z_score(x: f64, mu: f64, sigma: f64) -> Result<f64, String> {
3    if sigma == 0.0 {
4        return Err("표준 편차는 0이 될 수 없습니다.".to_string());
5    }
6    Ok((x - mu) / sigma)
7}
8
9fn main() {
10    let x = 125.0;
11    let mu = 115.0;
12    let sigma = 5.0;
13
14    match calculate_z_score(x, mu, sigma) {
15        Ok(z) => println!("Z-점수: {:.2}", z),
16        Err(e) => println!("{}", e),
17    }
18}
19

C#

1// C#에서 z-점수 계산
2using System;
3
4public class ZScoreCalculator
5{
6    public static double CalculateZScore(double x, double mu, double sigma)
7    {
8        if (sigma == 0)
9            throw new ArgumentException("표준 편차는 0이 될 수 없습니다.");
10        return (x - mu) / sigma;
11    }
12
13    public static void Main()
14    {
15        double x = 135;
16        double mu = 125;
17        double sigma = 5;
18
19        try
20        {
21            double z = CalculateZScore(x, mu, sigma);
22            Console.WriteLine($"Z-점수: {z:F2}");
23        }
24        catch (ArgumentException e)
25        {
26            Console.WriteLine(e.Message);
27        }
28    }
29}
30

Go

1// Go에서 z-점수 계산
2package main
3
4import (
5    "errors"
6    "fmt"
7)
8
9func calculateZScore(x, mu, sigma float64) (float64, error) {
10    if sigma == 0 {
11        return 0, errors.New("표준 편차는 0이 될 수 없습니다.")
12    }
13    return (x - mu) / sigma, nil
14}
15
16func main() {
17    x := 140.0
18    mu := 130.0
19    sigma := 5.0
20
21    z, err := calculateZScore(x, mu, sigma)
22    if err != nil {
23        fmt.Println(err)
24    } else {
25        fmt.Printf("Z-점수: %.2f\n", z)
26    }
27}
28

Swift

1// Swift에서 z-점수 계산
2func calculateZScore(x: Double, mu: Double, sigma: Double) throws -> Double {
3    if sigma == 0 {
4        throw NSError(domain: "표준 편차는 0이 될 수 없습니다.", code: 1, userInfo: nil)
5    }
6    return (x - mu) / sigma
7}
8
9// 사용 예:
10let x = 120.0
11let mu = 110.0
12let sigma = 5.0
13
14do {
15    let z = try calculateZScore(x: x, mu: mu, sigma: sigma)
16    print("Z-점수: \(String(format: "%.2f", z))")
17} catch let error as NSError {
18    print(error.domain)
19}
20