آلة حساب 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-scores بالمقارنة بين البيانات من مقاييس مختلفة من خلال توحيد مجموعات البيانات.
-
كشف القيم الشاذة:
تحديد نقاط البيانات التي تبتعد بشكل كبير عن المتوسط (مثل: z-scores أقل من -3 أو أكبر من 3).
-
الاختبار الإحصائي:
تُستخدم في اختبار الفرضيات، بما في ذلك اختبارات z، لتحديد ما إذا كان متوسط عينة يختلف بشكل كبير عن متوسط مجموعة معروفة.
-
مراقبة الجودة:
في التصنيع، تساعد الـ z-scores في مراقبة العمليات لضمان بقاء المخرجات ضمن الحدود المقبولة.
-
التمويل والاستثمار:
تقييم أداء الأسهم من خلال مقارنة العوائد بالنسبة لأداء السوق المتوسط.
البدائل
-
T-Score:
مشابه للـ z-score ولكنه يُستخدم عندما تكون عينة البيانات صغيرة والانحراف المعياري للسكان غير معروف.
-
رتبة النسبة المئوية:
تشير إلى النسبة المئوية من الدرجات في توزيع التكرار التي تساوي أو تقل عنها.
-
وحدات الانحراف المعياري:
استخدام قيم الانحراف المعياري الخام دون توحيدها كـ z-scores.
التاريخ
تعود فكرة الـ z-score إلى الأعمال المتعلقة بالتوزيع الطبيعي التي قام بها كارل فريدريش غاوس في أوائل القرن التاسع عشر. تم تطوير التوزيع الطبيعي القياسي، الذي يعد أساسياً للـ z-scores، بشكل أكبر من قبل إحصائيين مثل أبراهام دو موفر وبيير سيمون لابلاس. أصبح استخدام الـ z-scores شائعًا مع تقدم الأساليب الإحصائية في القرن العشرين، لا سيما في اختبارات النفس ومراقبة الجودة.
أمثلة
Excel
## حساب الز-score في Excel
## افترض أن نقطة البيانات في الخلية A2، والمتوسط في الخلية B2، والانحراف المعياري في الخلية C2
=(A2 - B2) / C2
R
## حساب الز-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("ز-score:", z_score))
MATLAB
% حساب الز-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('ز-score: %.2f\n', z);
JavaScript
// حساب الز-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(`ز-score: ${z.toFixed(2)}`);
} catch (error) {
console.error(error.message);
}
Python
## حساب الز-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("ز-score:", round(z, 2))
except ValueError as e:
print(e)
Java
// حساب الز-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("ز-score: %.2f%n", z);
} catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
}
C/C++
// حساب الز-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 << "ز-score: " << z << std::endl;
} catch (const std::exception &e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
Ruby
## حساب الز-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 "ز-score: #{z.round(2)}"
rescue ArgumentError => e
puts e.message
end
PHP
<?php
// حساب الز-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 "ز-score: " . round($z, 2);
} catch (Exception $e) {
echo $e->getMessage();
}
?>
Rust
// حساب الز-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!("ز-score: {:.2}", z),
Err(e) => println!("{}", e),
}
}
C#
// حساب الز-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($"ز-score: {z:F2}");
}
catch (ArgumentException e)
{
Console.WriteLine(e.Message);
}
}
}
Go
// حساب الز-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("ز-score: %.2f\n", z)
}
}
Swift
// حساب الز-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("ز-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