Z-Score Calculator
Introduction
z-score (หรือคะแนนมาตรฐาน) เป็นการวัดทางสถิติที่อธิบายความสัมพันธ์ของค่าใดค่าหนึ่งกับค่าเฉลี่ยของกลุ่มค่า มันบ่งบอกว่ามีการเบี่ยงเบนจากค่าเฉลี่ยกี่ส่วนเบี่ยงเบนมาตรฐาน คะแนน z เป็นเครื่องมือที่สำคัญในสถิติ ช่วยให้สามารถทำให้ชุดข้อมูลที่แตกต่างกันมีมาตรฐานเดียวกันและสามารถระบุค่าที่ผิดปกติได้
Formula
คะแนน z ถูกคำนวณโดยใช้สูตรดังต่อไปนี้:
โดยที่:
- = คะแนน z
- = จุดข้อมูลแต่ละจุด
- = ค่าเฉลี่ยของชุดข้อมูล
- = ส่วนเบี่ยงเบนมาตรฐานของชุดข้อมูล
สูตรนี้คำนวณจำนวนส่วนเบี่ยงเบนมาตรฐานที่จุดข้อมูลอยู่ห่างจากค่าเฉลี่ย
Calculation
ในการคำนวณคะแนน z ของจุดข้อมูล:
-
คำนวณค่าเฉลี่ย ():
รวมจุดข้อมูลทั้งหมดและหารด้วยจำนวนจุดข้อมูล
-
คำนวณส่วนเบี่ยงเบนมาตรฐาน ():
-
ความแปรปรวน ():
-
ส่วนเบี่ยงเบนมาตรฐาน:
-
-
คำนวณคะแนน Z:
แทนค่าลงในสูตรคะแนน z
Edge Cases
-
ส่วนเบี่ยงเบนมาตรฐานเป็นศูนย์ ():
เมื่อจุดข้อมูลทั้งหมดเหมือนกัน ส่วนเบี่ยงเบนมาตรฐานจะเป็นศูนย์ ทำให้คะแนน z ไม่สามารถกำหนดค่าได้เพราะไม่สามารถหารด้วยศูนย์ได้ ในกรณีนี้แนวคิดของคะแนน z จะไม่สามารถใช้ได้
-
จุดข้อมูลเท่ากับค่าเฉลี่ย ():
หากจุดข้อมูลเท่ากับค่าเฉลี่ย คะแนน z จะเป็นศูนย์ ซึ่งบ่งบอกว่ามันอยู่ในระดับเฉลี่ย
-
ข้อมูลที่ไม่ใช่ตัวเลข:
ต้องมั่นใจว่าข้อมูลทั้งหมดเป็นตัวเลข ข้อมูลที่ไม่ใช่ตัวเลขจะทำให้เกิดข้อผิดพลาดในการคำนวณ
Cumulative Probability
ความน่าจะเป็นสะสม ที่เกี่ยวข้องกับคะแนน z แสดงถึงความน่าจะเป็นที่ตัวแปรสุ่มจากการแจกแจงปกติมาตรฐานจะน้อยกว่าหรือเท่ากับค่าที่กำหนด มันคือพื้นที่ใต้กราฟการแจกแจงปกติทางซ้ายของคะแนน z ที่ระบุ
ทางคณิตศาสตร์ ความน่าจะเป็นสะสม จะถูกคำนวณโดยใช้ฟังก์ชันการแจกแจงสะสม (CDF) ของการแจกแจงปกติมาตรฐาน:
โดยที่:
- = CDF ของการแจกแจงปกติมาตรฐานที่
ความน่าจะเป็นสะสมเป็นสิ่งสำคัญในสถิติสำหรับการกำหนดความน่าจะเป็นที่ค่าจะเกิดขึ้นภายในช่วงที่กำหนด มันถูกใช้กันอย่างแพร่หลายในการควบคุมคุณภาพ การเงิน และวิทยาศาสตร์สังคม
SVG Diagram
ด้านล่างนี้เป็นแผนภาพ SVG ที่แสดงกราฟการแจกแจงปกติมาตรฐานและคะแนน z:
รูปภาพ: กราฟการแจกแจงปกติมาตรฐานพร้อมคะแนน Z ที่ถูกทำให้มองเห็น
แผนภาพนี้แสดงกราฟการแจกแจงปกติมาตรฐานที่มีค่าเฉลี่ย อยู่ตรงกลาง พื้นที่ที่ถูกทำให้มองเห็นแสดงถึงความน่าจะเป็นสะสมจนถึงจุดข้อมูล ซึ่งสอดคล้องกับคะแนน 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
-
คะแนนมาตรฐาน - Wikipedia
-
การทำความเข้าใจคะแนน Z - Statistics Solutions
-
การแจกแจงปกติและคะแนน Z - Khan Academy
Additional Resources
-
เครื่องคิดเลขคะแนน Z แบบโต้ตอบ
https://www.socscistatistics.com/pvalues/normaldistribution.aspx
-
การมองเห็นการแจกแจงปกติ
https://seeing-theory.brown.edu/normal-distribution/index.html