スプレッドシートのDEVSQ関数の使い方|偏差平方和

スポンサーリンク

「分散や標準偏差を計算する途中で出てくる”偏差平方和”って、手作業で求めるのは大変……」。そう感じたことはありませんか?

平均との差を出して、二乗して、合計して――とステップが多く、数式も長くなりがちです。もっとサクッと偏差平方和を求められたら便利ですよね。

そんなときに使うのがスプレッドシートのDEVSQ関数です。この記事では基本の書き方から実務での活用例まで解説します。VAR関数STDEV関数との関係もあわせて整理しました。

DEVSQ関数とは?スプレッドシートで偏差平方和を求める関数

DEVSQ関数(読み方: デブスク関数)は、指定したデータの偏差平方和を返す関数です。「DEVSQ」は「DEViation SQuared(偏差の二乗)」の略です。

偏差平方和とは、各データと平均値の差(偏差)を二乗して合計した値のことです。たとえば 2, 4, 6 の3つのデータなら、平均は4です。偏差はそれぞれ -2, 0, 2 で、二乗して合計すると 4 + 0 + 4 = 8 が偏差平方和です。

DEVSQ関数にできることをまとめると、次のとおりです。

  • データのばらつき度合いを数値化する(偏差平方和)
  • 分散・標準偏差を計算するときの中間ステップを確認する
  • VAR関数STDEV関数の計算結果を手動で検算する
  • 回帰分析の残差平方和を求める

NOTE

DEVSQ関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。

DEVSQ関数の書き方(構文と引数)

基本構文

=DEVSQ(値1, [値2], ...)

カッコの中に、偏差平方和を求めたいデータのセル範囲や数値を指定します。

引数の説明

引数必須/任意説明
値1必須偏差平方和を求めたい最初の値またはセル範囲
値2, …任意追加の値またはセル範囲。最大255個まで指定可能

引数にはセル参照、セル範囲、数値を直接指定できます。

TIP

セル範囲に含まれる文字列・TRUE/FALSE・空白セルは自動的に無視されます。数値だけが計算の対象になりますよ。ただし、引数に直接TRUE/FALSEを指定した場合はTRUE=1、FALSE=0として計算されます。

DEVSQ関数の基本的な使い方

以下のテストスコアのデータでDEVSQ関数を使ってみましょう。

A2からA6に5人分のスコアが入っているとします。

 A列(スコア)
2行目60
3行目70
4行目80
5行目90
6行目100

セル範囲で指定する

=DEVSQ(A2:A6)

結果は 1,000 です。平均値は80なので、偏差はそれぞれ -20, -10, 0, 10, 20 です。二乗すると 400 + 100 + 0 + 100 + 400 = 1,000 になります。

数値を直接指定する

=DEVSQ(2, 4, 6)

結果は 8 です。平均は4で、偏差は -2, 0, 2 です。二乗して合計すると 4 + 0 + 4 = 8 ですね。

複数の範囲を組み合わせる

=DEVSQ(A2:A4, A5:A6)

複数のセル範囲をカンマで区切って指定できます。結果はA2:A6を一括指定した場合と同じ 1,000 です。

DEVSQ関数の実務での活用例

分散を手動で計算して検算する

VAR関数の結果が正しいか確認したいとき、DEVSQ関数を使って検算できます。

B2からB6に月別売上データ(万円)が入っているとします。

 B列(売上)
2行目120
3行目85
4行目200
5行目150
6行目95

不偏分散(標本分散)は「偏差平方和 / (n – 1)」で求められます。

=DEVSQ(B2:B6) / (COUNT(B2:B6) - 1)

結果は 2,162.5 です。これは =VAR(B2:B6) の結果と一致します。

母分散は「偏差平方和 / n」です。

=DEVSQ(B2:B6) / COUNT(B2:B6)

結果は 1,730 です。これは =VARP(B2:B6) の結果と一致します。

TIP

DEVSQ関数の結果をデータ個数で割り算するだけで、分散の種類を使い分けられるのがポイントです。

2グループのばらつきを比較する

部門ごとの売上ばらつきを比較したい場面を考えてみましょう。

 C列(営業1課)D列(営業2課)
2行目100150
3行目11090
4行目105200
5行目9560
6行目90100
=DEVSQ(C2:C6)

営業1課の偏差平方和は 250 です。

=DEVSQ(D2:D6)

営業2課の偏差平方和は 12,200 です。

偏差平方和が大きいほどデータのばらつきが大きいことを意味します。営業2課は営業1課と比べて売上のばらつきがかなり大きいことがわかります。

NOTE

データ個数が異なるグループを比較する場合は、偏差平方和ではなくVAR関数で分散を使って比較してください。偏差平方和はデータ個数の影響を受けるためです。

よくあるエラーと対処法

#VALUE!エラー

数値に変換できない文字列を引数に直接指定すると発生します。

=DEVSQ("abc", 4)   → #VALUE!エラー
=DEVSQ(2, 4, 6)     → 正常に計算される(結果: 8)

セル範囲内に文字列がある場合は自動で無視されるので、エラーにはなりません。直接引数として文字列を渡した場合にのみ発生します。

結果が0になる

すべてのデータが同じ値の場合、平均値との差(偏差)がすべて0になるため、DEVSQ関数の結果も0になります。

=DEVSQ(5, 5, 5)   → 0

これはエラーではなく正しい結果です。「ばらつきがない」ことを意味しています。

結果が想定より小さい

セル範囲に文字列や空白が混ざっていると、そのセルは計算から除外されます。データ件数が想定より少なくなっている可能性があります。

COUNT関数で数値セルの個数を確認してみてください。

=COUNT(A2:A10)

想定より少なければ、文字列が混ざっているセルを修正しましょう。

SUMSQ関数・VAR関数との違い・使い分け

DEVSQ関数と混同しやすい関数に、SUMSQ関数VAR関数があります。

項目DEVSQSUMSQVAR
計算内容偏差の二乗の合計値そのものの二乗の合計不偏分散
平均値を使うか使う(偏差 = 値 – 平均)使わない使う
計算式SUM((xi – x̄)^2)SUM(xi^2)DEVSQ / (n-1)
主な用途ばらつきの総量を見るべき乗和の計算ばらつきの代表値を見る

使い分けの目安は次のとおりです。

  • データのばらつきの総量を知りたい → DEVSQ関数
  • 値そのものの二乗の合計を知りたい → SUMSQ関数
  • ばらつきの代表値(データ個数で補正済み)を知りたい → VAR関数

TIP

偏差平方和と平方和は名前が似ていますが、平均値を引くかどうかで結果がまったく異なります。DEVSQ関数は平均値からの偏差を二乗して合計する関数です。単純に値を二乗して合計したい場合はSUMSQ関数を使ってください。

まとめ

DEVSQ関数は、指定したデータの偏差平方和(各データと平均値の差の二乗の合計)を返す関数です。

この記事のポイント

  • 構文は =DEVSQ(値1, [値2], ...) で、セル範囲を指定するだけ
  • 偏差平方和とは「各データと平均値の差を二乗して合計した値」のこと
  • DEVSQ / (n-1) で不偏分散、DEVSQ / n で母分散を求められる
  • グループ間のばらつき比較にも使える
  • セル範囲内の文字列・空白・論理値は自動で無視される
  • SUMSQ関数は「値の二乗の合計」、DEVSQ関数は「偏差の二乗の合計」

次のステップ:関連する統計関数

DEVSQ関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。統計分析の幅が広がりますよ。

タイトルとURLをコピーしました