「分散や標準偏差を計算する途中で出てくる”偏差平方和”って、手作業で求めるのは大変……」。そう感じたことはありませんか?
平均との差を出して、二乗して、合計して――とステップが多く、数式も長くなりがちです。もっとサクッと偏差平方和を求められたら便利ですよね。
そんなときに使うのがスプレッドシートのDEVSQ関数です。この記事では基本の書き方から実務での活用例まで解説します。VAR関数やSTDEV関数との関係もあわせて整理しました。
DEVSQ関数とは?スプレッドシートで偏差平方和を求める関数
DEVSQ関数(読み方: デブスク関数)は、指定したデータの偏差平方和を返す関数です。「DEVSQ」は「DEViation SQuared(偏差の二乗)」の略です。
偏差平方和とは、各データと平均値の差(偏差)を二乗して合計した値のことです。たとえば 2, 4, 6 の3つのデータなら、平均は4です。偏差はそれぞれ -2, 0, 2 で、二乗して合計すると 4 + 0 + 4 = 8 が偏差平方和です。
DEVSQ関数にできることをまとめると、次のとおりです。
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行目 | 100 | 150 |
| 3行目 | 110 | 90 |
| 4行目 | 105 | 200 |
| 5行目 | 95 | 60 |
| 6行目 | 90 | 100 |
=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関数があります。
| 項目 | DEVSQ | SUMSQ | VAR |
|---|---|---|---|
| 計算内容 | 偏差の二乗の合計 | 値そのものの二乗の合計 | 不偏分散 |
| 平均値を使うか | 使う(偏差 = 値 – 平均) | 使わない | 使う |
| 計算式 | SUM((xi – x̄)^2) | SUM(xi^2) | DEVSQ / (n-1) |
| 主な用途 | ばらつきの総量を見る | べき乗和の計算 | ばらつきの代表値を見る |
使い分けの目安は次のとおりです。
TIP
偏差平方和と平方和は名前が似ていますが、平均値を引くかどうかで結果がまったく異なります。DEVSQ関数は平均値からの偏差を二乗して合計する関数です。単純に値を二乗して合計したい場合はSUMSQ関数を使ってください。
まとめ
DEVSQ関数は、指定したデータの偏差平方和(各データと平均値の差の二乗の合計)を返す関数です。
この記事のポイント
- 構文は
=DEVSQ(値1, [値2], ...)で、セル範囲を指定するだけ - 偏差平方和とは「各データと平均値の差を二乗して合計した値」のこと
- DEVSQ / (n-1) で不偏分散、DEVSQ / n で母分散を求められる
- グループ間のばらつき比較にも使える
- セル範囲内の文字列・空白・論理値は自動で無視される
- SUMSQ関数は「値の二乗の合計」、DEVSQ関数は「偏差の二乗の合計」
次のステップ:関連する統計関数
DEVSQ関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。統計分析の幅が広がりますよ。
