静粛に、只今統計勉強中

仕事でデータ分析をすることになったバリバリ文系アラフィフのおっさんが、独学で統計の勉強を始めました。

不偏分散の平方根は不偏標準偏差じゃなかった

分散 Vの(正の)平方根 \sqrt{V}標準偏差であることは、みなさんご存じですよね?

では、不偏分散 \dfrac{1}{n-1}\displaystyle\sum_{i=1}^n(X_i-\bar X)^2 の(正の)平方根 \sqrt{\dfrac{1}{n-1}\displaystyle\sum_{i=1}^n(X_i-\bar X)^2}は、不偏標準偏差でしょうか?

タイトルで種明かししちゃってるんだから、こんな謎かけしてもしょうがないんですが、でも、にわかには信じがたいですよね? 答えがノーだなんて。

 

ぶっちゃけ読んでもわからないんですが、不偏分散の平方根が母標準偏差の不偏推定量でないことの証明は、こちらにあります。

 

概念的な説明としては、大村平先生のこちらの本

統計のはなし―基礎・応用・娯楽 (Best selected business books)

統計のはなし―基礎・応用・娯楽 (Best selected business books)

の111ページに、

標本標準偏差は,標本分散を平方に開いたものです。それで,たとえば,標本分散4は標本標準偏差2になるのに,標本分散1は標本標準偏差1と変わりませんから,分散と標準偏差とでは分布の形が変わってしまいます.で,標本分散の平均値を平方に開いても,標本標準偏差の平均値にはならないのです.

とあります。が、やっぱりよくわかりません。

 

それでも、とにかく、不偏分散の平方根が不偏標準偏差でないのは、確かなことのようです。

あ、いちおう断っておきますが、不偏標準偏差の定義は「母標準偏差の不偏推定量です。不偏分散の定義が「母分散の不偏推定量」なんですから、当然ですよね。

 

ところが、「分散の平方根標準偏差なんだから、不偏分散の平方根は不偏標準偏差」とうっかり思い込んでしまう方もいるようで、ググってみたら、

 \sqrt{\dfrac{1}{n-1}\displaystyle\sum_{i=1}^n(X_i-\bar X)^2}を不偏標準偏差とする説明が、これだけ見つかりました。

体裁の整った統計学の学習サイトや大学の研究者が混じっているのが、なんともやるせないです。

 

いっぽうで、「不偏分散の平方根は母標準偏差の不偏推定量ではない」ことを指摘されているサイトもそれなりにあります。が、私の気のせいでしょうか? その指摘がなんとなく遠慮がちに見えるのです。

「不偏標準偏差」を,単に「不偏分散の平方根」の意味で述べているのか,それとも,「母標準偏差の不偏推定量」だと誤解して述べているのか,はっきりしない。しかし,前者の意味ならば,母標準偏差の不偏推定量は何なのか,それをきちんと解説すべきであろう。 

厳密に言うと、標準偏差は次のように不偏分散の平方根を用いても不偏推定量にはなりません。 しかし正確な不変標準偏差を計算するのは非常に面倒なので、通常はこの値で母標準偏差を推定しています。  

用語に混乱があるようで、(略)不偏分散による標準偏差 U のことを『標本標準偏差 S 』や『不偏標準偏差』と表記されている教材もありますので、勉強の際は必ずその著者の定義を確認するようにしてください。

どうですか? この腰の引けっぷり。
分散については、誰もかれもが「偏差平方和を nで割っては不偏じゃないのだ、ダメなのだ」と声高に叫ばれるのに(叫んではないか)、不偏標準偏差については不偏分散の平方根でもいいような口ぶりではないですか。

 

もっと謎なのが、ExcelSTDEV.S関数も、Rのsd関数も \sqrt{\dfrac{1}{n-1}\displaystyle\sum_{i=1}^n(X_i-\bar X)^2}だってことです*1

手計算しなくちゃいけないのなら「非常に面倒だから」という理由もわかりますが、ソフトウェアなんだから、関数をプログラムに埋め込んでしまえば済む話です。
なのに、それがされていないのは何故なんでしょうか?

 

どれほど面倒かと思って、Excel VBAで不偏標準偏差を求める関数を作ってみましたけど*2

'不偏標準偏差を返す
Function STDEV_U(RNG As Range)
    Dim n As Long
    Dim CT1, CT2, CT3

    With Application.WorksheetFunction
        n = .Count(RNG)
        CT1 = Sqr((n - 1) / 2)
        CT2 = Exp(.GammaLn((n - 1) / 2))
        CT3 = Exp(.GammaLn(n / 2))
        STDEV_U = .StDev_S(RNG) * CT1 * CT2 / CT3
    End With

End Function

こんなものですよ。どうってことないですよね?

なのに、世界中で使われているのは不偏推定量じゃない不偏分散の平方根なんです。

その理由をご存知の方、ぜひ教えてください。

*1:しかも、これらの関数を説明してるWebサイトは、揃いも揃って「不偏標準偏差」と紹介してます。

*2:計算式はこちらのサイトを参考にさせていただきました。