محاسبه Z-Score
مقدمه
Z-score (یا نمره استاندارد) یک اندازهگیری آماری است که رابطه یک مقدار را با میانگین یک گروه از مقادیر توصیف میکند. این نشان میدهد که یک عنصر چند انحراف استاندارد از میانگین فاصله دارد. Z-score ابزاری حیاتی در آمار است که به استانداردسازی مجموعههای داده مختلف و شناسایی نقاط دورافتاده کمک میکند.
فرمول
Z-score با استفاده از فرمول زیر محاسبه میشود:
که در آن:
- = Z-score
- = نقطه داده فردی
- = میانگین مجموعه داده
- = انحراف استاندارد مجموعه داده
این فرمول تعداد انحرافات استانداردی که یک نقطه داده از میانگین فاصله دارد را محاسبه میکند.
محاسبه
برای محاسبه Z-score یک نقطه داده:
-
محاسبه میانگین ():
مجموع تمام نقاط داده را محاسبه کرده و بر تعداد نقاط داده تقسیم کنید.
-
محاسبه انحراف استاندارد ():
-
واریانس ():
-
انحراف استاندارد:
-
-
محاسبه Z-Score:
مقادیر را در فرمول Z-score جایگزین کنید.
موارد خاص
-
انحراف استاندارد صفر ():
زمانی که تمام نقاط داده یکسان هستند، انحراف استاندارد صفر میشود و Z-score نامتعین است زیرا نمیتوان بر صفر تقسیم کرد. در این حالت، مفهوم Z-score قابل اعمال نیست.
-
نقطه داده برابر با میانگین ():
اگر نقطه داده برابر با میانگین باشد، Z-score صفر است که نشان میدهد دقیقا میانگین است.
-
ورودیهای غیر عددی:
اطمینان حاصل کنید که تمام ورودیها عددی هستند. ورودیهای غیر عددی منجر به خطا در محاسبات خواهند شد.
احتمال تجمعی
احتمال تجمعی مرتبط با یک Z-score نمایانگر احتمال این است که یک متغیر تصادفی از یک توزیع نرمال استاندارد کمتر از یا برابر با مقدار داده شده باشد. این مساحت زیر منحنی توزیع نرمال تا سمت چپ Z-score مشخص شده است.
بهطور ریاضی، احتمال تجمعی با استفاده از تابع توزیع تجمعی (CDF) توزیع نرمال استاندارد محاسبه میشود:
که در آن:
- = CDF توزیع نرمال استاندارد در
احتمال تجمعی در آمار برای تعیین احتمال وقوع یک مقدار در یک محدوده خاص بسیار مهم است. این احتمال در زمینههایی مانند کنترل کیفیت، مالی و علوم اجتماعی بهطور گستردهای استفاده میشود.
نمودار SVG
در زیر یک نمودار SVG نشاندهنده منحنی توزیع نرمال استاندارد و Z-score آمده است:
شکل: منحنی توزیع نرمال استاندارد با Z-Score سایهدار
این نمودار منحنی توزیع نرمال را نشان میدهد که میانگین در مرکز آن قرار دارد. ناحیه سایهدار نمایانگر احتمال تجمعی تا نقطه داده است که با Z-score مرتبط است.
موارد استفاده
کاربردها
-
استانداردسازی در مقیاسهای مختلف:
Z-scoreها اجازه مقایسه بین دادههای مختلف مقیاس را با استانداردسازی مجموعههای داده میدهند.
-
شناسایی نقاط دورافتاده:
شناسایی نقاط داده که به طور قابل توجهی از میانگین فاصله دارند (بهعنوان مثال، Z-scoreهای کمتر از -3 یا بیشتر از 3).
-
آزمونهای آماری:
استفاده در آزمونهای فرضیه، از جمله آزمونهای Z، برای تعیین اینکه آیا میانگین یک نمونه بهطور قابل توجهی از میانگین یک جمعیت شناخته شده متفاوت است.
-
کنترل کیفیت:
در تولید، Z-scoreها به نظارت بر فرآیندها کمک میکنند تا اطمینان حاصل شود که خروجیها در محدودههای قابل قبول باقی میمانند.
-
مالی و سرمایهگذاری:
ارزیابی عملکرد سهام با مقایسه بازدهها نسبت به عملکرد میانگین بازار.
گزینههای جایگزین
-
T-Score:
مشابه Z-score اما زمانی که اندازه نمونه کوچک است و انحراف استاندارد جمعیت ناشناخته است استفاده میشود.
-
رتبه درصدی:
نشاندهنده درصد نمرات در توزیع فراوانی است که برابر یا کمتر از آن هستند.
-
واحدهای انحراف استاندارد:
استفاده از مقادیر انحراف استاندارد خام بدون استانداردسازی به عنوان Z-scoreها.
تاریخچه
مفهوم Z-score از کارهای مربوط به توزیع نرمال توسط کارل فردریش گاوس در اوایل قرن نوزدهم نشأت میگیرد. توزیع نرمال استاندارد، که بنیادی برای Z-scoreها است، توسط آماردانانی مانند آبرهام دو موریور و پیر-سیمون لاپلاس بیشتر توسعه یافت. استفاده از Z-scoreها با پیشرفت روشهای آماری در قرن بیستم، بهویژه در آزمونهای روانشناختی و کنترل کیفیت، بهطور گستردهای گسترش یافت.
مثالها
Excel
## محاسبه Z-score در Excel
## فرض کنید نقطه داده در سلول A2، میانگین در سلول B2، انحراف استاندارد در سلول C2
=(A2 - B2) / C2
R
## محاسبه Z-score در 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-score:", z_score))
MATLAB
% محاسبه Z-score در 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-score: %.2f\n', z);
JavaScript
// محاسبه Z-score در 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-score: ${z.toFixed(2)}`);
} catch (error) {
console.error(error.message);
}
Python
## محاسبه Z-score در 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-score:", round(z, 2))
except ValueError as e:
print(e)
Java
// محاسبه Z-score در 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-score: %.2f%n", z);
} catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
}
C/C++
// محاسبه Z-score در 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-score: " << z << std::endl;
} catch (const std::exception &e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
Ruby
## محاسبه Z-score در 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-score: #{z.round(2)}"
rescue ArgumentError => e
puts e.message
end
PHP
<?php
// محاسبه Z-score در 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-score: " . round($z, 2);
} catch (Exception $e) {
echo $e->getMessage();
}
?>
Rust
// محاسبه Z-score در 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-score: {:.2}", z),
Err(e) => println!("{}", e),
}
}
C#
// محاسبه Z-score در 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-score: {z:F2}");
}
catch (ArgumentException e)
{
Console.WriteLine(e.Message);
}
}
}
Go
// محاسبه Z-score در 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-score: %.2f\n", z)
}
}
Swift
// محاسبه Z-score در 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-score: \(String(format: "%.2f", z))")
} catch let error as NSError {
print(error.domain)
}
منابع
-
نمره استاندارد - ویکیپدیا
-
درک Z-Scores - راهحلهای آماری
-
توزیع نرمال و Z-Scores - خان آکادمی
منابع اضافی
-
محاسبهگر Z-Score تعاملی
https://www.socscistatistics.com/pvalues/normaldistribution.aspx
-
تصویرسازی توزیع نرمال
https://seeing-theory.brown.edu/normal-distribution/index.html