Whiz Tools

Z-Score Calculator

Introduction

z-score (หรือคะแนนมาตรฐาน) เป็นการวัดทางสถิติที่อธิบายความสัมพันธ์ของค่าใดค่าหนึ่งกับค่าเฉลี่ยของกลุ่มค่า มันบ่งบอกว่ามีการเบี่ยงเบนจากค่าเฉลี่ยกี่ส่วนเบี่ยงเบนมาตรฐาน คะแนน z เป็นเครื่องมือที่สำคัญในสถิติ ช่วยให้สามารถทำให้ชุดข้อมูลที่แตกต่างกันมีมาตรฐานเดียวกันและสามารถระบุค่าที่ผิดปกติได้

Formula

คะแนน z ถูกคำนวณโดยใช้สูตรดังต่อไปนี้:

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

โดยที่:

  • zz = คะแนน z
  • xx = จุดข้อมูลแต่ละจุด
  • μ\mu = ค่าเฉลี่ยของชุดข้อมูล
  • σ\sigma = ส่วนเบี่ยงเบนมาตรฐานของชุดข้อมูล

สูตรนี้คำนวณจำนวนส่วนเบี่ยงเบนมาตรฐานที่จุดข้อมูลอยู่ห่างจากค่าเฉลี่ย

Calculation

ในการคำนวณคะแนน 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}

Edge Cases

  • ส่วนเบี่ยงเบนมาตรฐานเป็นศูนย์ (σ=0\sigma = 0):

    เมื่อจุดข้อมูลทั้งหมดเหมือนกัน ส่วนเบี่ยงเบนมาตรฐานจะเป็นศูนย์ ทำให้คะแนน z ไม่สามารถกำหนดค่าได้เพราะไม่สามารถหารด้วยศูนย์ได้ ในกรณีนี้แนวคิดของคะแนน z จะไม่สามารถใช้ได้

  • จุดข้อมูลเท่ากับค่าเฉลี่ย (x=μx = \mu):

    หากจุดข้อมูลเท่ากับค่าเฉลี่ย คะแนน z จะเป็นศูนย์ ซึ่งบ่งบอกว่ามันอยู่ในระดับเฉลี่ย

  • ข้อมูลที่ไม่ใช่ตัวเลข:

    ต้องมั่นใจว่าข้อมูลทั้งหมดเป็นตัวเลข ข้อมูลที่ไม่ใช่ตัวเลขจะทำให้เกิดข้อผิดพลาดในการคำนวณ

Cumulative Probability

ความน่าจะเป็นสะสม ที่เกี่ยวข้องกับคะแนน 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) = CDF ของการแจกแจงปกติมาตรฐานที่ zz

ความน่าจะเป็นสะสมเป็นสิ่งสำคัญในสถิติสำหรับการกำหนดความน่าจะเป็นที่ค่าจะเกิดขึ้นภายในช่วงที่กำหนด มันถูกใช้กันอย่างแพร่หลายในการควบคุมคุณภาพ การเงิน และวิทยาศาสตร์สังคม

SVG Diagram

ด้านล่างนี้เป็นแผนภาพ SVG ที่แสดงกราฟการแจกแจงปกติมาตรฐานและคะแนน z:

μ x z

Standard Normal Distribution

รูปภาพ: กราฟการแจกแจงปกติมาตรฐานพร้อมคะแนน Z ที่ถูกทำให้มองเห็น

แผนภาพนี้แสดงกราฟการแจกแจงปกติมาตรฐานที่มีค่าเฉลี่ย μ\mu อยู่ตรงกลาง พื้นที่ที่ถูกทำให้มองเห็นแสดงถึงความน่าจะเป็นสะสมจนถึงจุดข้อมูล xx ซึ่งสอดคล้องกับคะแนน z

Use Cases

Applications

  • การทำให้มาตรฐานในระดับที่แตกต่างกัน:

    คะแนน z ช่วยให้สามารถเปรียบเทียบระหว่างข้อมูลจากระดับที่แตกต่างกันโดยการทำให้ชุดข้อมูลมีมาตรฐานเดียวกัน

  • การตรวจจับค่าผิดปกติ:

    การระบุจุดข้อมูลที่อยู่ห่างจากค่าเฉลี่ยอย่างมีนัยสำคัญ (เช่น คะแนน z น้อยกว่า -3 หรือมากกว่า 3)

  • การทดสอบทางสถิติ:

    ใช้ในการทดสอบสมมติฐาน รวมถึง z-tests เพื่อตรวจสอบว่าค่าเฉลี่ยของตัวอย่างแตกต่างอย่างมีนัยสำคัญจากค่าเฉลี่ยของประชากรที่รู้จักหรือไม่

  • การควบคุมคุณภาพ:

    ในการผลิต คะแนน z ช่วยในการตรวจสอบกระบวนการเพื่อให้แน่ใจว่าผลลัพธ์ยังคงอยู่ในขอบเขตที่ยอมรับได้

  • การเงินและการลงทุน:

    การประเมินผลการดำเนินงานของหุ้นโดยการเปรียบเทียบผลตอบแทนกับผลการดำเนินงานเฉลี่ยของตลาด

Alternatives

  • T-Score:

    คล้ายกับคะแนน z แต่ใช้เมื่อขนาดตัวอย่างเล็กและไม่ทราบส่วนเบี่ยงเบนมาตรฐานของประชากร

  • Percentile Rank:

    แสดงถึงเปอร์เซ็นต์ของคะแนนในการแจกแจงความถี่ที่เท่ากับหรือต่ำกว่ามัน

  • หน่วยส่วนเบี่ยงเบนมาตรฐาน:

    ใช้ค่ามาตรฐานส่วนเบี่ยงเบนโดยไม่ทำให้เป็นมาตรฐานเป็นคะแนน z

History

แนวคิดของคะแนน z เกิดจากงานเกี่ยวกับการแจกแจงปกติโดย Carl Friedrich Gauss ในต้นศตวรรษที่ 19 การแจกแจงปกติมาตรฐานซึ่งเป็นพื้นฐานของคะแนน z ได้รับการพัฒนาต่อโดยนักสถิติ เช่น Abraham de Moivre และ Pierre-Simon Laplace การใช้คะแนน z ได้รับความนิยมอย่างแพร่หลายพร้อมกับความก้าวหน้าของวิธีการทางสถิติในศตวรรษที่ 20 โดยเฉพาะในการทดสอบทางจิตวิทยาและการควบคุมคุณภาพ

Examples

Excel

## คำนวณคะแนน z ใน Excel
## สมมติว่าจุดข้อมูลอยู่ในเซลล์ A2 ค่าเฉลี่ยอยู่ในเซลล์ B2 ส่วนเบี่ยงเบนมาตรฐานอยู่ในเซลล์ C2
=(A2 - B2) / C2

R

## คำนวณคะแนน z ใน R
calculate_z_score <- function(x, mean, sd) {
  if (sd == 0) {
    stop("ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.")
  }
  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

% คำนวณคะแนน z ใน MATLAB
function z = calculate_z_score(x, mu, sigma)
    if sigma == 0
        error('ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.');
    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

// คำนวณคะแนน z ใน JavaScript
function calculateZScore(x, mu, sigma) {
  if (sigma === 0) {
    throw new Error('ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.');
  }
  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

## คำนวณคะแนน z ใน Python
def calculate_z_score(x, mu, sigma):
    if sigma == 0:
        raise ValueError("ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.")
    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

// คำนวณคะแนน z ใน Java
public class ZScoreCalculator {
    public static double calculateZScore(double x, double mu, double sigma) {
        if (sigma == 0) {
            throw new IllegalArgumentException("ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.");
        }
        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++

// คำนวณคะแนน z ใน C++
#include <iostream>
#include <stdexcept>

double calculate_z_score(double x, double mu, double sigma) {
    if (sigma == 0) {
        throw std::invalid_argument("ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.");
    }
    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

## คำนวณคะแนน z ใน Ruby
def calculate_z_score(x, mu, sigma)
  raise ArgumentError, "ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้." 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
// คำนวณคะแนน z ใน PHP
function calculate_z_score($x, $mu, $sigma) {
  if ($sigma == 0) {
    throw new Exception("ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.");
  }
  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

// คำนวณคะแนน z ใน Rust
fn calculate_z_score(x: f64, mu: f64, sigma: f64) -> Result<f64, String> {
    if sigma == 0.0 {
        return Err("ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.".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#

// คำนวณคะแนน z ใน C#
using System;

public class ZScoreCalculator
{
    public static double CalculateZScore(double x, double mu, double sigma)
    {
        if (sigma == 0)
            throw new ArgumentException("ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.");
        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

// คำนวณคะแนน z ใน Go
package main

import (
    "errors"
    "fmt"
)

func calculateZScore(x, mu, sigma float64) (float64, error) {
    if sigma == 0 {
        return 0, errors.New("ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้")
    }
    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

// คำนวณคะแนน z ใน Swift
func calculateZScore(x: Double, mu: Double, sigma: Double) throws -> Double {
    if sigma == 0 {
        throw NSError(domain: "ส่วนเบี่ยงเบนมาตรฐานไม่สามารถเป็นศูนย์ได้.", 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)
}

References

  1. คะแนนมาตรฐาน - Wikipedia

    https://en.wikipedia.org/wiki/Standard_score

  2. การทำความเข้าใจคะแนน Z - Statistics Solutions

    https://www.statisticssolutions.com/understanding-z-scores/

  3. การแจกแจงปกติและคะแนน Z - Khan Academy

    https://www.khanacademy.org/math/statistics-probability/modeling-distributions-of-data/z-scores/a/z-scores-review

Additional Resources

Loading related tools...
Feedback