Kalkulator Z-Score
Wprowadzenie
Z-score (lub wynik standardowy) to miara statystyczna, która opisuje związek wartości z średnią grupy wartości. Wskazuje, ile odchyleń standardowych element znajduje się od średniej. Z-score jest kluczowym narzędziem w statystyce, umożliwiającym standaryzację różnych zestawów danych oraz identyfikację wartości odstających.
Wzór
Z-score oblicza się za pomocą następującego wzoru:
Gdzie:
- = z-score
- = pojedynczy punkt danych
- = średnia zestawu danych
- = odchylenie standardowe zestawu danych
Ten wzór oblicza liczbę odchyleń standardowych, jakie punkt danych znajduje się od średniej.
Obliczenia
Aby obliczyć z-score punktu danych:
-
Oblicz średnią ():
Zsumuj wszystkie punkty danych i podziel przez liczbę punktów danych.
-
Oblicz odchylenie standardowe ():
-
Wariancja ():
-
Odchylenie standardowe:
-
-
Oblicz Z-Score:
Podstaw wartości do wzoru na z-score.
Przypadki brzegowe
-
Zero odchylenia standardowego ():
Gdy wszystkie punkty danych są identyczne, odchylenie standardowe wynosi zero, co sprawia, że z-score jest nieokreślony, ponieważ nie można dzielić przez zero. W tym przypadku koncepcja z-score nie ma zastosowania.
-
Punkt danych równy średniej ():
Jeśli punkt danych jest równy średniej, z-score wynosi zero, co wskazuje, że jest dokładnie przeciętny.
-
Dane wejściowe nienumeryczne:
Upewnij się, że wszystkie dane wejściowe są numeryczne. Nienumeryczne dane wejściowe spowodują błędy w obliczeniach.
Prawdopodobieństwo skumulowane
Prawdopodobieństwo skumulowane związane z z-score reprezentuje prawdopodobieństwo, że zmienna losowa z rozkładu normalnego standardowego będzie mniejsza lub równa danej wartości. To pole pod krzywą rozkładu normalnego po lewej stronie określonego z-score.
Matematycznie, prawdopodobieństwo skumulowane oblicza się za pomocą funkcji rozkładu skumulowanego (CDF) rozkładu normalnego standardowego:
Gdzie:
- = CDF rozkładu normalnego standardowego przy
Prawdopodobieństwo skumulowane jest istotne w statystyce do określenia prawdopodobieństwa wystąpienia wartości w określonym zakresie. Jest szeroko stosowane w takich dziedzinach jak kontrola jakości, finanse i nauki społeczne.
Diagram SVG
Poniżej znajduje się diagram SVG ilustrujący krzywą rozkładu normalnego standardowego oraz z-score:
Rysunek: Krzywa rozkładu normalnego standardowego z cieniowanym Z-Score
Diagram ten pokazuje krzywą rozkładu normalnego z średnią w centrum. Cieniowany obszar reprezentuje prawdopodobieństwo skumulowane do punktu danych , odpowiadającego z-score.
Przykłady zastosowań
Aplikacje
-
Standaryzacja w różnych skalach:
Z-scores umożliwiają porównanie danych z różnych skal poprzez standaryzację zestawów danych.
-
Wykrywanie wartości odstających:
Identyfikacja punktów danych, które są znacznie oddalone od średniej (np. z-scores mniejsze niż -3 lub większe niż 3).
-
Testy statystyczne:
Używane w testach hipotez, w tym testach z, aby określić, czy średnia próbki znacząco różni się od znanej średniej populacji.
-
Kontrola jakości:
W produkcji z-scores pomagają monitorować procesy, aby zapewnić, że wyniki mieszczą się w akceptowalnych granicach.
-
Finanse i inwestycje:
Ocena wyników akcji poprzez porównanie zwrotów w stosunku do średnich wyników rynku.
Alternatywy
-
T-Score:
Podobny do z-score, ale używany, gdy rozmiar próbki jest mały, a odchylenie standardowe populacji jest nieznane.
-
Ranga percentylowa:
Wskazuje procent wyników w rozkładzie częstotliwości, które są równe lub niższe od niego.
-
Jednostki odchylenia standardowego:
Używanie surowych wartości odchylenia standardowego bez standaryzacji jako z-scores.
Historia
Koncepcja z-score wywodzi się z prac nad rozkładem normalnym autorstwa Carla Friedricha Gaussa na początku XIX wieku. Rozkład normalny standardowy, fundamentalny dla z-scores, był dalej rozwijany przez statystyków takich jak Abraham de Moivre i Pierre-Simon Laplace. Użycie z-score stało się powszechne wraz z rozwojem metod statystycznych w XX wieku, szczególnie w testach psychologicznych i kontroli jakości.
Przykłady
Excel
## Oblicz z-score w Excelu
## Zakładając, że punkt danych w komórce A2, średnia w komórce B2, odchylenie standardowe w komórce C2
=(A2 - B2) / C2
R
## Oblicz z-score w R
calculate_z_score <- function(x, mean, sd) {
if (sd == 0) {
stop("Odchylenie standardowe nie może być zerem.")
}
z <- (x - mean) / sd
return(z)
}
## Przykład użycia:
x <- 85
mu <- 75
sigma <- 5
z_score <- calculate_z_score(x, mu, sigma)
print(paste("Z-score:", z_score))
MATLAB
% Oblicz z-score w MATLAB
function z = calculate_z_score(x, mu, sigma)
if sigma == 0
error('Odchylenie standardowe nie może być zerem.');
end
z = (x - mu) / sigma;
end
% Przykład użycia:
x = 90;
mu = 80;
sigma = 8;
z = calculate_z_score(x, mu, sigma);
fprintf('Z-score: %.2f\n', z);
JavaScript
// Oblicz z-score w JavaScript
function calculateZScore(x, mu, sigma) {
if (sigma === 0) {
throw new Error('Odchylenie standardowe nie może być zerem.');
}
return (x - mu) / sigma;
}
// Przykład użycia:
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
## Oblicz z-score w Pythonie
def calculate_z_score(x, mu, sigma):
if sigma == 0:
raise ValueError("Odchylenie standardowe nie może być zerem.")
return (x - mu) / sigma
## Przykład użycia:
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
// Oblicz z-score w Javie
public class ZScoreCalculator {
public static double calculateZScore(double x, double mu, double sigma) {
if (sigma == 0) {
throw new IllegalArgumentException("Odchylenie standardowe nie może być zerem.");
}
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++
// Oblicz z-score w C++
#include <iostream>
#include <stdexcept>
double calculate_z_score(double x, double mu, double sigma) {
if (sigma == 0) {
throw std::invalid_argument("Odchylenie standardowe nie może być zerem.");
}
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
## Oblicz z-score w Ruby
def calculate_z_score(x, mu, sigma)
raise ArgumentError, "Odchylenie standardowe nie może być zerem." if sigma == 0
(x - mu) / sigma
end
## Przykład użycia:
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
// Oblicz z-score w PHP
function calculate_z_score($x, $mu, $sigma) {
if ($sigma == 0) {
throw new Exception("Odchylenie standardowe nie może być zerem.");
}
return ($x - $mu) / $sigma;
}
// Przykład użycia:
$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
// Oblicz z-score w Rust
fn calculate_z_score(x: f64, mu: f64, sigma: f64) -> Result<f64, String> {
if sigma == 0.0 {
return Err("Odchylenie standardowe nie może być zerem.".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#
// Oblicz z-score w C#
using System;
public class ZScoreCalculator
{
public static double CalculateZScore(double x, double mu, double sigma)
{
if (sigma == 0)
throw new ArgumentException("Odchylenie standardowe nie może być zerem.");
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
// Oblicz z-score w Go
package main
import (
"errors"
"fmt"
)
func calculateZScore(x, mu, sigma float64) (float64, error) {
if sigma == 0 {
return 0, errors.New("odchylenie standardowe nie może być zerem")
}
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
// Oblicz z-score w Swift
func calculateZScore(x: Double, mu: Double, sigma: Double) throws -> Double {
if sigma == 0 {
throw NSError(domain: "Odchylenie standardowe nie może być zerem.", code: 1, userInfo: nil)
}
return (x - mu) / sigma
}
// Przykład użycia:
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)
}
Źródła
-
Wynik standardowy - Wikipedia
-
Zrozumienie Z-Scores - Statistics Solutions
-
Rozkład normalny i Z-Scores - Khan Academy
Dodatkowe zasoby
-
Interaktywny kalkulator Z-Score
https://www.socscistatistics.com/pvalues/normaldistribution.aspx
-
Wizualizacja rozkładu normalnego
https://seeing-theory.brown.edu/normal-distribution/index.html