いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)STDEV.P/STDEV.S関数で標準偏差を求める

 Googleスプレッドシートで、数値のばらつき具合を求めるSTDEV.P/STDEV.S関数の使い方についてです。

  • STDEV.P関数で標本標準偏差を、STDEV.S関数で不偏標準偏差(母集団の標準偏差の推定値)を求めることができます。
  • STDEVP関数はSTDEV.P関数と、STDEV関数はSTDEV.S関数とそれぞれ同じ結果になります。

二種類の標準偏差

 標準偏差についてはWikipediaにも詳しい解説がありますが、要は多数の数値の散らばり具合がどの程度か(もう少し具体的に言えば平均値に対しておおむねどの程度ばらついているか)を1つの数値で表すものです。
 これだけだと標準偏差の値は1種類しかないように思われますが、実際は2種類の値が区別して用いられます。
 1つは標本標準偏差と呼ばれるもので、単純に集めたデータの散らばり具合を知りたい、という場合はこちらで足ります。Googleスプレッドシートにおいてはこれを求める関数としてSTDEV.P関数が用意されています。
 もう1つは不偏標準偏差と呼ばれるもので、集めたデータが母集団(ある市の全体、国全体など)から抽出したサンプルである場合に、その母集団における散らばり具合の(偏りのない)推定値を求めるものです。GoogleスプレッドシートにおいてはSTDEV.S関数が用意されています。
 データのサイズ(n)が大きければ2つの値はほぼ等しくなるので特にビジネス的な用途などではさほど意識されないと思いますが、理論上はこのような区別がされています。

STDEV.P関数の使用例

 次の画像ではある団体のメンバーの身長の標準偏差(標本標準偏差)を求めています。
 ここではこの10人における身長の散らばり具合を知りたいだけなので「推定」という要素はなく、何ら疑いようのない標本標準偏差として求められます。

 E3セル

=STDEV.P(C3:C12)

 標本標準偏差はSTDEV.Pで求められます。

STDEV.S関数の使用例

 こちらのデータは、ある市の住民全員(母集団)から10人を無作為に抽出し、身長を記録したものです。
 このデータに基づき、市の住民全員(母集団)の身長の標準偏差の推定値(不偏標準偏差)を求めています。

 E3セル

=STDEV.S(C3:C12)

 不偏標準偏差はSTDEV.Sで求められます。
 実は10人の身長の値は最初の例と全く同じなのですが、値は上記の標本標準偏差より大きいものとなります。直感的にそんなものかという気もしますが、平均値のばらつき(10人抽出することを繰り返した場合の、その平均のばらつき)についての情報が欠けているため標本標準偏差は母集団の標準偏差に対して下ぶれする、というのが理論的な答えのようです。これ以上は深追いしませんが気になる方は調べてみてください。
 補足ですが、この例で10人の身長から市全体の標準偏差を推定できるのは、この10人が市の住民から無作為抽出されている(市のすべての住民が等しい確率で抽出される)からです。作為のある抽出(市内の知り合いから選んだ、など)では市の住民を代表しているとはいえず適切な推定になりません。また、この10人が日本国民であるからといって日本人の標準偏差の推定値とすることもできません。日本人全体の標準偏差を推定するなら「日本人全体からの抽出」から調査をやり直す必要があります。

構文

 STDEV.P/STDEV.S関数の構文を確認します。

=STDEV.P(値1[, 値2, …])
=STDEV.S(値1[, 値2, …])

 引数は1つ1つ指定することもできますが、上記例のように配列(範囲)を1つの引数として指定することもできます。

STDEVP関数とSTDEV関数について

 これらとは別にSTDEVP関数とSTDEV関数というのがありますが、それぞれSTDEV.P関数とSTDEV.S関数と機能は同じです。
 次の画像は最初の例をSTDEVP関数に代えた例ですが、結果は全く同じです。