🛠️

Whiz Tools

Build • Create • Innovate

Zスコア計算機 - データポイントの標準化ツール

任意のデータポイントのzスコア(標準スコア)を計算し、標準偏差を使用して平均に対する位置を決定します。統計分析やデータの標準化に最適です。

📚

ドキュメント

Zスコア計算機

はじめに

zスコア(または標準スコア)は、値が一群の値の平均に対してどのように関連しているかを示す統計的な測定値です。これは、要素が平均から何標準偏差離れているかを示します。zスコアは、異なるデータセットの標準化や外れ値の特定を可能にするため、統計学において重要なツールです。

公式

zスコアは、以下の公式を使用して計算されます:

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

ここで:

  • zz = zスコア
  • xx = 個々のデータポイント
  • μ\mu = データセットの平均
  • σ\sigma = データセットの標準偏差

この公式は、データポイントが平均から何標準偏差離れているかを計算します。

計算

データポイントのzスコアを計算するには:

  1. 平均 (μ\mu) を計算する

    すべてのデータポイントを合計し、データポイントの数で割ります。

    μ=i=1nxin\mu = \frac{\sum_{i=1}^{n} x_i}{n}
  2. 標準偏差 (σ\sigma) を計算する

    • 分散 (σ2\sigma^2)

      σ2=i=1n(xiμ)2n\sigma^2 = \frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n}
    • 標準偏差

      σ=σ2\sigma = \sqrt{\sigma^2}
  3. zスコアを計算する

    zスコアの公式に値を代入します。

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

エッジケース

  • ゼロの標準偏差 (σ=0\sigma = 0)

    すべてのデータポイントが同じ場合、標準偏差はゼロになり、zスコアは未定義になります。ゼロで割ることはできないため、この場合、zスコアの概念は適用されません。

  • データポイントが平均に等しい (x=μx = \mu)

    データポイントが平均と等しい場合、zスコアはゼロになり、ちょうど平均であることを示します。

  • 非数値入力

    すべての入力が数値であることを確認してください。非数値入力は計算エラーを引き起こします。

累積確率

zスコアに関連する累積確率は、標準正規分布からのランダム変数が指定された値以下である確率を表します。これは、指定されたzスコアの左側の正規分布曲線の下の面積です。

数学的には、累積確率 PP は標準正規分布の累積分布関数(CDF)を使用して計算されます:

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

ここで:

  • Φ(z)\Phi(z) = zにおける標準正規分布のCDF

累積確率は、特定の範囲内で値が発生する可能性を決定するために統計学で重要です。品質管理、金融、社会科学などの分野で広く使用されています。

SVGダイアグラム

以下は、標準正規分布曲線とzスコアを示すSVGダイアグラムです:

μ x z

標準正規分布

図:zスコアが塗りつぶされた標準正規分布曲線

このダイアグラムは、中央に平均 μ\mu がある正規分布曲線を示しています。塗りつぶされた領域は、データポイント xx までの累積確率を示し、zスコアに対応しています。

使用例

アプリケーション

  • 異なるスケール間の標準化

    zスコアは、データセットを標準化することにより、異なるスケールのデータを比較することを可能にします。

  • 外れ値の検出

    平均から大きく離れたデータポイントを特定します(例:zスコアが-3未満または3を超える)。

  • 統計的検定

    仮説検定、特にz検定で使用され、サンプル平均が既知の母集団平均と有意に異なるかどうかを判断します。

  • 品質管理

    製造業において、zスコアはプロセスを監視し、出力が許容限界内に収まることを保証します。

  • 金融と投資

    平均市場パフォーマンスに対するリターンを比較することで、株式パフォーマンスを評価します。

代替案

  • tスコア

    zスコアに似ていますが、サンプルサイズが小さく、母集団の標準偏差が不明な場合に使用されます。

  • パーセンタイルランク

    その頻度分布において、等しいかそれ以下のスコアの割合を示します。

  • 標準偏差単位

    zスコアとして標準化せずに、生の標準偏差値を使用します。

歴史

zスコアの概念は、19世紀初頭にカール・フリードリッヒ・ガウスによって正規分布に関する研究から生まれました。zスコアの基礎となる標準正規分布は、アブラハム・ド・モワーブルやピエール=シモン・ラプラスなどの統計学者によってさらに発展しました。zスコアの使用は、20世紀の統計手法の進展とともに広まり、特に心理テストや品質管理において重要な役割を果たしました。

Excel

1## Excelでzスコアを計算する
2## データポイントはセルA2、平均はセルB2、標準偏差はセルC2にあると仮定
3=(A2 - B2) / C2
4

R

1## Rでzスコアを計算する
2calculate_z_score <- function(x, mean, sd) {
3  if (sd == 0) {
4    stop("標準偏差はゼロにできません。")
5  }
6  z <- (x - mean) / sd
7  return(z)
8}
9
10## 使用例:
11x <- 85
12mu <- 75
13sigma <- 5
14z_score <- calculate_z_score(x, mu, sigma)
15print(paste("Zスコア:", z_score))
16

MATLAB

1% MATLABでzスコアを計算する
2function z = calculate_z_score(x, mu, sigma)
3    if sigma == 0
4        error('標準偏差はゼロにできません。');
5    end
6    z = (x - mu) / sigma;
7end
8
9% 使用例:
10x = 90;
11mu = 80;
12sigma = 8;
13z = calculate_z_score(x, mu, sigma);
14fprintf('Zスコア: %.2f\n', z);
15

JavaScript

1// JavaScriptでzスコアを計算する
2function calculateZScore(x, mu, sigma) {
3  if (sigma === 0) {
4    throw new Error('標準偏差はゼロにできません。');
5  }
6  return (x - mu) / sigma;
7}
8
9// 使用例:
10const x = 100;
11const mu = 85;
12const sigma = 7;
13try {
14  const z = calculateZScore(x, mu, sigma);
15  console.log(`Zスコア: ${z.toFixed(2)}`);
16} catch (error) {
17  console.error(error.message);
18}
19

Python

1## Pythonでzスコアを計算する
2def calculate_z_score(x, mu, sigma):
3    if sigma == 0:
4        raise ValueError("標準偏差はゼロにできません。")
5    return (x - mu) / sigma
6
7## 使用例:
8x = 95
9mu = 88
10sigma = 4
11try:
12    z = calculate_z_score(x, mu, sigma)
13    print("Zスコア:", round(z, 2))
14except ValueError as e:
15    print(e)
16

Java

1// Javaでzスコアを計算する
2public class ZScoreCalculator {
3    public static double calculateZScore(double x, double mu, double sigma) {
4        if (sigma == 0) {
5            throw new IllegalArgumentException("標準偏差はゼロにできません。");
6        }
7        return (x - mu) / sigma;
8    }
9
10    public static void main(String[] args) {
11        double x = 110;
12        double mu = 100;
13        double sigma = 5;
14
15        try {
16            double z = calculateZScore(x, mu, sigma);
17            System.out.printf("Zスコア: %.2f%n", z);
18        } catch (IllegalArgumentException e) {
19            System.err.println(e.getMessage());
20        }
21    }
22}
23

C/C++

1// C++でzスコアを計算する
2#include <iostream>
3#include <stdexcept>
4
5double calculate_z_score(double x, double mu, double sigma) {
6    if (sigma == 0) {
7        throw std::invalid_argument("標準偏差はゼロにできません。");
8    }
9    return (x - mu) / sigma;
10}
11
12int main() {
13    double x = 130;
14    double mu = 120;
15    double sigma = 10;
16
17    try {
18        double z = calculate_z_score(x, mu, sigma);
19        std::cout << "Zスコア: " << z << std::endl;
20    } catch (const std::exception &e) {
21        std::cerr << e.what() << std::endl;
22    }
23
24    return 0;
25}
26

Ruby

1## Rubyでzスコアを計算する
2def calculate_z_score(x, mu, sigma)
3  raise ArgumentError, "標準偏差はゼロにできません。" if sigma == 0
4  (x - mu) / sigma
5end
6
7## 使用例:
8x = 105
9mu = 100
10sigma = 5
11begin
12  z = calculate_z_score(x, mu, sigma)
13  puts "Zスコア: #{z.round(2)}"
14rescue ArgumentError => e
15  puts e.message
16end
17

PHP

1<?php
2// PHPでzスコアを計算する
3function calculate_z_score($x, $mu, $sigma) {
4  if ($sigma == 0) {
5    throw new Exception("標準偏差はゼロにできません。");
6  }
7  return ($x - $mu) / $sigma;
8}
9
10// 使用例:
11$x = 115;
12$mu = 110;
13$sigma = 5;
14
15try {
16  $z = calculate_z_score($x, $mu, $sigma);
17  echo "Zスコア: " . round($z, 2);
18} catch (Exception $e) {
19  echo $e->getMessage();
20}
21?>
22

Rust

1// Rustでzスコアを計算する
2fn calculate_z_score(x: f64, mu: f64, sigma: f64) -> Result<f64, String> {
3    if sigma == 0.0 {
4        return Err("標準偏差はゼロにできません。".to_string());
5    }
6    Ok((x - mu) / sigma)
7}
8
9fn main() {
10    let x = 125.0;
11    let mu = 115.0;
12    let sigma = 5.0;
13
14    match calculate_z_score(x, mu, sigma) {
15        Ok(z) => println!("Zスコア: {:.2}", z),
16        Err(e) => println!("{}", e),
17    }
18}
19

C#

1// C#でzスコアを計算する
2using System;
3
4public class ZScoreCalculator
5{
6    public static double CalculateZScore(double x, double mu, double sigma)
7    {
8        if (sigma == 0)
9            throw new ArgumentException("標準偏差はゼロにできません。");
10        return (x - mu) / sigma;
11    }
12
13    public static void Main()
14    {
15        double x = 135;
16        double mu = 125;
17        double sigma = 5;
18
19        try
20        {
21            double z = CalculateZScore(x, mu, sigma);
22            Console.WriteLine($"Zスコア: {z:F2}");
23        }
24        catch (ArgumentException e)
25        {
26            Console.WriteLine(e.Message);
27        }
28    }
29}
30

Go

1// Goでzスコアを計算する
2package main
3
4import (
5    "errors"
6    "fmt"
7)
8
9func calculateZScore(x, mu, sigma float64) (float64, error) {
10    if sigma == 0 {
11        return 0, errors.New("標準偏差はゼロにできません")
12    }
13    return (x - mu) / sigma, nil
14}
15
16func main() {
17    x := 140.0
18    mu := 130.0
19    sigma := 5.0
20
21    z, err := calculateZScore(x, mu, sigma)
22    if err != nil {
23        fmt.Println(err)
24    } else {
25        fmt.Printf("Zスコア: %.2f\n", z)
26    }
27}
28

Swift

1// Swiftでzスコアを計算する
2func calculateZScore(x: Double, mu: Double, sigma: Double) throws -> Double {
3    if sigma == 0 {
4        throw NSError(domain: "標準偏差はゼロにできません。", code: 1, userInfo: nil)
5    }
6    return (x - mu) / sigma
7}
8
9// 使用例:
10let x = 120.0
11let mu = 110.0
12let sigma = 5.0
13
14do {
15    let z = try calculateZScore(x: x, mu: mu, sigma: sigma)
16    print("Zスコア: \(String(format: "%.2f", z))")
17} catch let error as NSError {
18    print(error.domain)
19}
20