Whiz Tools

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:

z=xμσz = \frac{x - \mu}{\sigma}

On:

  • zz = z-score
  • xx = punt de dades individual
  • μ\mu = mitjana del conjunt de dades
  • σ\sigma = 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:

  1. Calcular la Mitjana (μ\mu):

    Suma tots els punts de dades i divideix per el nombre de punts de dades.

    μ=i=1nxin\mu = \frac{\sum_{i=1}^{n} x_i}{n}
  2. Calcular la Desviació Estàndard (σ\sigma):

    • Variància (σ2\sigma^2):

      σ2=i=1n(xiμ)2n\sigma^2 = \frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n}
    • Desviació Estàndard:

      σ=σ2\sigma = \sqrt{\sigma^2}
  3. Calcular el Z-Score:

    Substitueix els valors a la fórmula del z-score.

    z=xμσz = \frac{x - \mu}{\sigma}

Casos Límit

  • Desviació Estàndard Zero (σ=0\sigma = 0):

    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 (x=μx = \mu):

    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 PP es calcula mitjançant la funció de distribució acumulativa (CDF) de la distribució normal estàndard:

P(Zz)=Φ(z)=12πzet2/2dtP(Z \leq z) = \Phi(z) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{z} e^{-t^2/2} \, dt

On:

  • Φ(z)\Phi(z) = CDF de la distribució normal estàndard a zz

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:

μ x z

Distribució Normal Estàndard

Figura: Corba de Distribució Normal Estàndard amb Z-Score Sombreat

Aquest diagrama mostra la corba de distribució normal amb la mitjana μ\mu al centre. L'àrea sombregada representa la probabilitat acumulada fins al punt de dades xx, 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)
}
Loading related tools...
Feedback