Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで標準偏差を計算するプログラムの書き方【初心者向けに解説】

この記事では、Javaを使って標準偏差を計算する方法を詳しく解説します。

標準偏差とは、データが平均値からどれだけ散らばっているかを表す統計量です。記号はギリシャ文字のσ(シグマ)で表され、分散の平方根として定義されます。

標準偏差の計算式

標準偏差は、次の式で求められます。

標準偏差 = √( Σ(Xi − μ)² / N )
  • Xi:配列の各要素
  • μ:配列内の全要素の平均値
  • N:要素の個数
  • Σ:各要素の二乗誤差の総和

計算例

入力値:

入力配列 : [ 35.0, 48.0, 60.0, 71.0, 80.0, 95.0, 130.0 ]

期待される出力:

標準偏差: 29.313227

アルゴリズム

処理の手順は以下の通りです。

ステップ1 − 開始
ステップ2 − double型の配列 input_array、double型変数 sum および standard_deviation を宣言する。
ステップ3 − ユーザーから値を読み込む、または値を直接定義する。
ステップ4 − Σ(Xi − μ)² / N を計算し、結果を変数に格納する。
ステップ5 − 結果を表示する。
ステップ6 − 終了

例1:mainメソッド内で直接計算する方法

まず、すべての処理をmainメソッド内に記述する基本的な例を紹介します。

public class StandardDeviation {

   public static void main(String[] args) {
      double[] input_array = { 35, 48, 60, 71, 80, 95, 130};
      System.out.println("The elements of the array is defined as");
      for (double i : input_array) {
         System.out.print(i +" ");
      }

      double sum = 0.0, standard_deviation = 0.0;
      int array_length = input_array.length;

      for(double temp : input_array) {
         sum += temp;
      }

      double mean = sum/array_length;

      for(double temp: input_array) {
         standard_deviation += Math.pow(temp - mean, 2);
      }

      double result = Math.sqrt(standard_deviation/array_length);

      System.out.format("

The Standard Deviation is: %.6f", result);
   }
}

実行結果

The elements of the array is defined as
35.0 48.0 60.0 71.0 80.0 95.0 130.0

The Standard Deviation is: 29.313227

例2:専用メソッドを作成して計算する方法

次に、標準偏差の計算を独立したメソッド calculateSD() として切り出した例を紹介します。処理を関数化することで、コードの再利用性と可読性が向上します。

public class StandardDeviation {

   public static void main(String[] args) {
      double[] input_array = { 35, 48, 60, 71, 80, 95, 130};
      System.out.println("The elements of the array is defined as");
      for (double i : input_array) {
         System.out.print(i +" ");
      }
      double standard_deviation = calculateSD(input_array);

      System.out.format("

The Standard Deviation is: %.6f", standard_deviation);
   }

   public static double calculateSD(double input_array[]) {
      double sum = 0.0, standard_deviation = 0.0;
      int array_length = input_array.length;

      for(double temp : input_array) {
         sum += temp;
      }

      double mean = sum/array_length;

      for(double temp: input_array) {
         standard_deviation += Math.pow(temp - mean, 2);
      }

      return Math.sqrt(standard_deviation/array_length);
   }
}

実行結果

The elements of the array is defined as
35.0 48.0 60.0 71.0 80.0 95.0 130.0

The Standard Deviation is: 29.313227

まとめ

このように、Javaでは「平均値を求める → 各要素との差の二乗を合計する → 要素数で割って平方根を取る」という手順で標準偏差を簡単に計算できます。Math.pow()Math.sqrt() を活用すれば、複雑な数式も直感的に実装できるので、ぜひ実際にコードを動かして試してみてください。

  1. C言語で標準偏差を計算するプログラムの書き方

    標準偏差とは 標準偏差(Standard Deviation)は、データが平均値からどれだけばらついているかを測定するための基本的な統計指標です。値が平均の近くに集中していれば標準偏差は小さくなり、平均から大きく外れた値が多いほど標準偏差は大きくなります。 標準偏差を求める数学的な公式は以下のとおりです。 s = √(分散) ここで、分散と平均(m)はそれぞれ次のように定義されます。 分散 = (1/n) × Σ (xi − m)2 (i = 1 ~ n) m = 平均 = (1/n) × Σ xi (i = 1 ~ n) アルゴリズム 与えられた数値群の標準偏差を計算するには、以下の手順に

  2. C++で二重積分を計算するプログラム|シンプソン1/3則による数値積分の実装

    変数xの下限・上限、変数yの下限・上限、そしてx・yそれぞれの刻み幅(ステップ幅)が与えられたとき、二重積分を数値的に計算し、その結果を表示するのが本記事のテーマです。 入出力の例 入力: xの刻み幅 = 1.2 yの刻み幅 = 0.54 xの下限 = 1.3 xの上限 = 2.1 yの下限 = 1.0 yの上限 = 2.1 出力: double integration is : 2.1 計算のアプローチ 本プログラムでは、以下の手順で二重積分を求めます。 xとyの上限・下限の値に加えて、x・yそれぞれの刻み幅を入力として受け取ります。 二重積分の計算にはシンプソン1/3則(Simpson