Calculadora de Z-Score
Introducció
El z-score (o puntuació estàndard) és una mesura estadística que descriu la relació d'un valor amb la mitjana d'un grup de valors. Indica quantes desviacions estàndard un element es troba de la mitjana. El z-score és una eina crucial en estadística, que permet la standardització de diferents conjunts de dades i la identificació de valors atípics.
Fórmula
El z-score es calcula mitjançant la següent fórmula:
On:
- = z-score
- = punt de dades individual
- = mitjana del conjunt de dades
- = desviació estàndard del conjunt de dades
Aquesta fórmula calcula el nombre de desviacions estàndard que un punt de dades es troba de la mitjana.
Càlcul
Per calcular el z-score d'un punt de dades:
-
Calcular la Mitjana ():
Suma tots els punts de dades i divideix per el nombre de punts de dades.
-
Calcular la Desviació Estàndard ():
-
Variància ():
-
Desviació Estàndard:
-
-
Calcular el Z-Score:
Substitueix els valors a la fórmula del z-score.
Casos Límit
-
Desviació Estàndard Zero ():
Quan tots els punts de dades són idèntics, la desviació estàndard és zero, fent que el z-score sigui indefinit perquè no es pot dividir per zero. En aquest cas, el concepte de z-score no s'aplica.
-
Punt de Dades Igual a la Mitjana ():
Si el punt de dades és igual a la mitjana, el z-score és zero, indicant que és exactament mitjà.
-
Entrades No Numèriques:
Assegura't que totes les entrades siguin numèriques. Les entrades no numèriques resultaran en errors de càlcul.
Probabilitat Cumulativa
La probabilitat acumulada associada a un z-score representa la probabilitat que una variable aleatòria d'una distribució normal estàndard sigui menor o igual al valor donat. És l'àrea sota la corba de distribució normal a l'esquerra del z-score especificat.
Matemàticament, la probabilitat acumulada es calcula mitjançant la funció de distribució acumulativa (CDF) de la distribució normal estàndard:
On:
- = CDF de la distribució normal estàndard a
La probabilitat acumulada és essencial en estadística per determinar la probabilitat que un valor ocorri dins d'un cert rang. S'utilitza àmpliament en camps com el control de qualitat, les finances i les ciències socials.
Diagrama SVG
A continuació es mostra un diagrama SVG que il·lustra la corba de distribució normal estàndard i el z-score:
Figura: Corba de Distribució Normal Estàndard amb Z-Score Sombreat
Aquest diagrama mostra la corba de distribució normal amb la mitjana al centre. L'àrea sombregada representa la probabilitat acumulada fins al punt de dades , corresponent al z-score.
Casos d'Ús
Aplicacions
-
Standardització a través de Diferents Escales:
Els z-scores permeten la comparació entre dades de diferents escales mitjançant la standardització dels conjunts de dades.
-
Detecció de Valors Atípics:
Identificació de punts de dades que són significativament llunyans de la mitjana (per exemple, z-scores menors que -3 o majors que 3).
-
Proves Estadístiques:
Utilitzat en proves d'hipòtesis, incloent proves z, per determinar si una mitjana de mostra difereix significativament d'una mitjana poblacional coneguda.
-
Control de Qualitat:
En fabricació, els z-scores ajuden a monitorar processos per assegurar que els resultats es mantinguin dins de límits acceptables.
-
Finances i Inversió:
Avaluar el rendiment de les accions comparant els rendiments relatius al rendiment mitjà del mercat.
Alternatives
-
T-Score:
Similar al z-score però utilitzat quan la mida de la mostra és petita i la desviació estàndard poblacional és desconeguda.
-
Rang Percentil:
Indica el percentatge de puntuacions en la seva distribució de freqüència que són iguals o inferiors a ell.
-
Unitats de Desviació Estàndard:
Utilitzant valors de desviació estàndard en brut sense standarditzar com a z-scores.
Història
El concepte de z-score prové del treball sobre la distribució normal de Carl Friedrich Gauss a principis del segle XIX. La distribució normal estàndard, fonamental per als z-scores, va ser desenvolupada més a fons per estadístics com Abraham de Moivre i Pierre-Simon Laplace. L'ús de z-scores es va fer àmpliament conegut amb l'avançament dels mètodes estadístics al segle XX, particularment en proves psicològiques i control de qualitat.
Exemples
Excel
## Calcular z-score a Excel
## Suposant que el punt de dades està a la cel·la A2, la mitjana a la cel·la B2, la desviació estàndard a la cel·la C2
=(A2 - B2) / C2
R
## Calcular z-score a R
calculate_z_score <- function(x, mean, sd) {
if (sd == 0) {
stop("La desviació estàndard no pot ser zero.")
}
z <- (x - mean) / sd
return(z)
}
## Exemple d'ús:
x <- 85
mu <- 75
sigma <- 5
z_score <- calculate_z_score(x, mu, sigma)
print(paste("Z-score:", z_score))
MATLAB
% Calcular z-score a MATLAB
function z = calculate_z_score(x, mu, sigma)
if sigma == 0
error('La desviació estàndard no pot ser zero.');
end
z = (x - mu) / sigma;
end
% Exemple d'ús:
x = 90;
mu = 80;
sigma = 8;
z = calculate_z_score(x, mu, sigma);
fprintf('Z-score: %.2f\n', z);
JavaScript
// Calcular z-score a JavaScript
function calculateZScore(x, mu, sigma) {
if (sigma === 0) {
throw new Error('La desviació estàndard no pot ser zero.');
}
return (x - mu) / sigma;
}
// Exemple d'ús:
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
## Calcular z-score a Python
def calculate_z_score(x, mu, sigma):
if sigma == 0:
raise ValueError("La desviació estàndard no pot ser zero.")
return (x - mu) / sigma
## Exemple d'ús:
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
// Calcular z-score a Java
public class ZScoreCalculator {
public static double calculateZScore(double x, double mu, double sigma) {
if (sigma == 0) {
throw new IllegalArgumentException("La desviació estàndard no pot ser 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++
// Calcular z-score a C++
#include <iostream>
#include <stdexcept>
double calculate_z_score(double x, double mu, double sigma) {
if (sigma == 0) {
throw std::invalid_argument("La desviació estàndard no pot ser 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
## Calcular z-score a Ruby
def calculate_z_score(x, mu, sigma)
raise ArgumentError, "La desviació estàndard no pot ser zero." if sigma == 0
(x - mu) / sigma
end
## Exemple d'ús:
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
// Calcular z-score a PHP
function calculate_z_score($x, $mu, $sigma) {
if ($sigma == 0) {
throw new Exception("La desviació estàndard no pot ser zero.");
}
return ($x - $mu) / $sigma;
}
// Exemple d'ús:
$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
// Calcular z-score a Rust
fn calculate_z_score(x: f64, mu: f64, sigma: f64) -> Result<f64, String> {
if sigma == 0.0 {
return Err("La desviació estàndard no pot ser 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#
// Calcular z-score a C#
using System;
public class ZScoreCalculator
{
public static double CalculateZScore(double x, double mu, double sigma)
{
if (sigma == 0)
throw new ArgumentException("La desviació estàndard no pot ser 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
// Calcular z-score a Go
package main
import (
"errors"
"fmt"
)
func calculateZScore(x, mu, sigma float64) (float64, error) {
if sigma == 0 {
return 0, errors.New("la desviació estàndard no pot ser 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
// Calcular z-score a Swift
func calculateZScore(x: Double, mu: Double, sigma: Double) throws -> Double {
if sigma == 0 {
throw NSError(domain: "La desviació estàndard no pot ser zero.", code: 1, userInfo: nil)
}
return (x - mu) / sigma
}
// Exemple d'ús:
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)
}
Referències
-
Puntuació Estàndard - Wikipedia
-
Entenent els Z-Scores - Statistics Solutions
-
Distribució Normal i Z-Scores - Khan Academy
Recursos Addicionals
-
Calculadora Interactiva de Z-Score
https://www.socscistatistics.com/pvalues/normaldistribution.aspx
-
Visualitzant la Distribució Normal
https://seeing-theory.brown.edu/normal-distribution/index.html