Calculator Z-Score
Introducere
Z-score (sau scor standard) este o măsurare statistică care descrie relația unui valor cu media unui grup de valori. Indică câte abateri standard se află un element față de medie. Z-score-ul este un instrument crucial în statistică, permițând standardizarea diferitelor seturi de date și identificarea valorilor anormale.
Formula
Z-score-ul este calculat folosind următoarea formulă:
Unde:
- = z-score
- = punct de date individual
- = media setului de date
- = abaterea standard a setului de date
Această formulă calculează numărul de abateri standard la care un punct de date se află de la medie.
Calcul
Pentru a calcula z-score-ul unui punct de date:
-
Calculează Media ():
Suma tuturor punctelor de date și împarte la numărul de puncte de date.
-
Calculează Abaterea Standard ():
-
Varianța ():
-
Abaterea Standard:
-
-
Calculează Z-Score:
Substituie valorile în formula z-score-ului.
Cazuri Limite
-
Abatere Standard Zero ():
Când toate punctele de date sunt identice, abaterea standard este zero, făcând z-score-ul nedefinit, deoarece nu poți împărți la zero. În acest caz, conceptul de z-score nu se aplică.
-
Punct de Date Egal cu Media ():
Dacă punctul de date este egal cu media, z-score-ul este zero, indicând că este exact mediu.
-
Intrări Non-Numerice:
Asigură-te că toate intrările sunt numerice. Intrările non-numerice vor duce la erori de calcul.
Probabilitate Cumulativă
Probabilitatea cumulativă asociată cu un z-score reprezintă probabilitatea ca o variabilă aleatoare dintr-o distribuție normală standard să fie mai mică sau egală cu valoarea dată. Este aria sub curba distribuției normale la stânga z-score-ului specificat.
Matematic, probabilitatea cumulativă este calculată folosind funcția de distribuție cumulativă (CDF) a distribuției normale standard:
Unde:
- = CDF a distribuției normale standard la
Probabilitatea cumulativă este esențială în statistică pentru a determina probabilitatea ca o valoare să apară într-un anumit interval. Este utilizată pe scară largă în domenii precum controlul calității, finanțele și științele sociale.
Diagrama SVG
Mai jos este o diagramă SVG care ilustrează curba distribuției normale standard și z-score-ul:
Figura: Curba Distribuției Normale Standard cu Z-Score Umplut
Această diagramă arată curba distribuției normale cu media la centru. Zona umplută reprezintă probabilitatea cumulativă până la punctul de date , corespunzător z-score-ului.
Cazuri de Utilizare
Aplicații
-
Standardizare Pe Scale Diferite:
Z-score-urile permit compararea între date din scale diferite prin standardizarea seturilor de date.
-
Detectarea Valorilor Anormale:
Identificarea punctelor de date care sunt semnificativ îndepărtate de medie (de exemplu, z-score-uri mai mici de -3 sau mai mari de 3).
-
Testare Statistică:
Utilizate în testarea ipotezelor, inclusiv teste z, pentru a determina dacă o medie a unui eșantion diferă semnificativ de o medie a populației cunoscute.
-
Controlul Calității:
În producție, z-score-urile ajută la monitorizarea proceselor pentru a asigura că rezultatele rămân în limite acceptabile.
-
Finanțe și Investiții:
Evaluarea performanței acțiunilor prin compararea randamentelor relative la performanța medie a pieței.
Alternative
-
T-Score:
Similar cu z-score-ul, dar utilizat atunci când dimensiunea eșantionului este mică și abaterea standard a populației este necunoscută.
-
Rang Percentil:
Indică procentajul scorurilor în distribuția sa de frecvență care sunt egale sau mai mici decât el.
-
Unități de Abatere Standard:
Utilizarea valorilor brute ale abaterii standard fără a le standardiza ca z-score-uri.
Istorie
Conceptul de z-score își are rădăcinile în lucrările despre distribuția normală de Carl Friedrich Gauss la începutul secolului al XIX-lea. Distribuția normală standard, fundamentală pentru z-score-uri, a fost dezvoltată ulterior de statisticieni precum Abraham de Moivre și Pierre-Simon Laplace. Utilizarea z-score-urilor a devenit răspândită odată cu avansarea metodelor statistice în secolul XX, în special în testarea psihologică și controlul calității.
Exemple
Excel
## Calculează z-score în Excel
## Presupunând că punctul de date este în celula A2, media în celula B2, abaterea standard în celula C2
=(A2 - B2) / C2
R
## Calculează z-score în R
calculate_z_score <- function(x, mean, sd) {
if (sd == 0) {
stop("Abaterea standard nu poate fi zero.")
}
z <- (x - mean) / sd
return(z)
}
## Exemplu de utilizare:
x <- 85
mu <- 75
sigma <- 5
z_score <- calculate_z_score(x, mu, sigma)
print(paste("Z-score:", z_score))
MATLAB
% Calculează z-score în MATLAB
function z = calculate_z_score(x, mu, sigma)
if sigma == 0
error('Abaterea standard nu poate fi zero.');
end
z = (x - mu) / sigma;
end
% Exemplu de utilizare:
x = 90;
mu = 80;
sigma = 8;
z = calculate_z_score(x, mu, sigma);
fprintf('Z-score: %.2f\n', z);
JavaScript
// Calculează z-score în JavaScript
function calculateZScore(x, mu, sigma) {
if (sigma === 0) {
throw new Error('Abaterea standard nu poate fi zero.');
}
return (x - mu) / sigma;
}
// Exemplu de utilizare:
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
## Calculează z-score în Python
def calculate_z_score(x, mu, sigma):
if sigma == 0:
raise ValueError("Abaterea standard nu poate fi zero.")
return (x - mu) / sigma
## Exemplu de utilizare:
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
// Calculează z-score în Java
public class ZScoreCalculator {
public static double calculateZScore(double x, double mu, double sigma) {
if (sigma == 0) {
throw new IllegalArgumentException("Abaterea standard nu poate fi zero.");
}
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++
// Calculează z-score în C++
#include <iostream>
#include <stdexcept>
double calculate_z_score(double x, double mu, double sigma) {
if (sigma == 0) {
throw std::invalid_argument("Abaterea standard nu poate fi zero.");
}
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
## Calculează z-score în Ruby
def calculate_z_score(x, mu, sigma)
raise ArgumentError, "Abaterea standard nu poate fi zero." if sigma == 0
(x - mu) / sigma
end
## Exemplu de utilizare:
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
// Calculează z-score în PHP
function calculate_z_score($x, $mu, $sigma) {
if ($sigma == 0) {
throw new Exception("Abaterea standard nu poate fi zero.");
}
return ($x - $mu) / $sigma;
}
// Exemplu de utilizare:
$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
// Calculează z-score în Rust
fn calculate_z_score(x: f64, mu: f64, sigma: f64) -> Result<f64, String> {
if sigma == 0.0 {
return Err("Abaterea standard nu poate fi zero.".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#
// Calculează z-score în C#
using System;
public class ZScoreCalculator
{
public static double CalculateZScore(double x, double mu, double sigma)
{
if (sigma == 0)
throw new ArgumentException("Abaterea standard nu poate fi zero.");
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
// Calculează z-score în Go
package main
import (
"errors"
"fmt"
)
func calculateZScore(x, mu, sigma float64) (float64, error) {
if sigma == 0 {
return 0, errors.New("abaterea standard nu poate fi zero")
}
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
// Calculează z-score în Swift
func calculateZScore(x: Double, mu: Double, sigma: Double) throws -> Double {
if sigma == 0 {
throw NSError(domain: "Abaterea standard nu poate fi zero.", code: 1, userInfo: nil)
}
return (x - mu) / sigma
}
// Exemplu de utilizare:
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)
}
Referințe
-
Scor Standard - Wikipedia
-
Înțelegerea Z-Score-urilor - Statistics Solutions
-
Distribuția Normală și Z-Score-uri - Khan Academy
Resurse Suplimentare
-
Calculator Z-Score Interactiv
https://www.socscistatistics.com/pvalues/normaldistribution.aspx
-
Vizualizarea Distribuției Normale
https://seeing-theory.brown.edu/normal-distribution/index.html