スカラー入力の標本分散をどのように定義すべきですか?


8

Matlabがスカラー入力の標本分散に対してを返すことを最近知り、私は恐怖に思いました。0

>> var(randn(1),0)   %the '0' here tells var to give sample variance
ans =
     0
>> var(randn(1),1)   %the '1' here tells var to give population variance
ans =
     0

どういうわけか、この場合、サンプル分散はで除算されていません。RはスカラーのNaNを返します。0=n1

> var(rnorm(1,1))
[1] NA

スカラーの母集団標本分散を定義する賢明な方法は何だと思いますか?NaNの代わりにゼロを返すと、どのような影響がありますか?

編集:Matlabのヘルプからvar

VAR normalizes Y by N-1 if N>1, where N is the sample size.  This is
an unbiased estimator of the variance of the population from which X is
drawn, as long as X consists of independent, identically distributed
samples. For N=1, Y is normalized by N. 

Y = VAR(X,1) normalizes by N and produces the second moment of the
sample about its mean.  VAR(X,0) is the same as VAR(X).

`var状態のためのmコードの不可解なコメント:

if w == 0 && n > 1
    % The unbiased estimator: divide by (n-1).  Can't do this
    % when n == 0 or 1.
    denom = n - 1;
else
    % The biased estimator: divide by n.
    denom = n; % n==0 => return NaNs, n==1 => return zeros
end

つまりNaN、ユーザーがスカラーの標本分散を要求した場合でも、イベントを返さないよう明示的に選択します。私の質問は、なぜ彼らがこれを行うのを選ぶべきなのかではなく、なぜそうすべきなのかです。

編集:私は、スカラーの母分散をどのように定義すべきかについて誤って尋ねたようです(上記の取り消し線を参照)。これはおそらく多くの混乱を引き起こしました。


母分散の定義または標本分散の定義について質問するつもりですか?前者については問題ありません。
whuber

@whuber Matlabがやっていることは次のとおりだと思います。スカラーに遭遇すると、デフォルトで母集団の分散を報告します。ベクトルに遭遇すると、母集団の分散を報告するように依頼しない限り、デフォルトでサンプルの分散を報告します。どちらのコンテキストでも、同じ機能を使用しますvar()

@Srikantそうかもしれませんが、それは私の明確化の要求に対応していません。最後の行に誤植があるのではないかと思います。var()関数は、母集団分散の正しい値を返しているようですが、標本分散の正しい値は返していません。
whuber

@whuber実際には、var(randn(1),0)重み0によって分散ひいては出力が2番目の要素は、それが1を見ると異なる場合、加重平均を行うために使用される0である。Mathworks社の助けをvar

2
@shabbychef:Srikantが参照したページには、あなたが指摘した動作が明確に記載されています。特に、n = 1の場合、var()が分散の1 /(n-1)バージョンを返すことは維持されません。したがって、問題はMatlab 自体が間違っていることではありません。(ソフトウェア設計の観点からは、このvar()の実装は1つの関数で実行しようとする結果がひどく、その結果、警戒心のないユーザーによる誤解や誤った結果のリスクがあるためです。)
whuber

回答:


4

スカラーは、母集団の分散を「持つ」ことはできませんが、(母集団の)分散をもつ母集団からの単一のサンプルにすることができます。それを推定する場合は、少なくとも次のものが必要です。サンプル内の複数のデータポイント、同じ分布からの別のサンプル、またはモデルによる母分散に関する以前の情報。

btw RがNaNではなく欠落(NA)を返しました

is.nan(var(rnorm(1,1)))
[1] FALSE

ああ、私はRと比較して、NAvsのNaN違いを見つけるのに十分ではなかった ニースそれは両方の...持っていること
shabbychef

もちろん、1つの数値には差異があります。これは、その平均からの平均二乗偏差、つまりゼロです。たぶん、1つの数のデータセットに標本分散を持たせることができないということですか?
whuber

母集団に分散を持たせることができないと述べたことに気づくでしょう。分散を持たせることはできません。明らかに、サンプル分散があり、それは確かにゼロです。
共役

1
私たちの会話は、「母集団」と「標本」の分散に関する2つの異なる理解から派生していることに気づきました。用語はインターネット上で混乱しているので、私たちは責任があると思いますし、同意することもできます。OPで採用されている規則を使用しようとしました。その用語は、「母集団」分散がnで除算されるのに対し、「標本」分散はn-1で除算されることを示しています。ちなみに、あなたのコメントは(正しく)3つの差異を許容するようです:確率変数のそれ、その不偏推定量、およびそれの一連の独立した実現のそれ。
whuber

@whuberは素晴らしいディスカッションのようです。それについての質問を考えてみます:)
naught101

3

私はこのフォーラムの人々がより良い答えを持っていると確信しています。

Rの答えは論理的だと思います。確率変数には母集団の分散がありますが、1つのサンプルでは、​​サンプルの分散を推定するのに十分な自由度がないことがわかります。つまり、そこにない情報を抽出しようとしています。

Matlabの答えに関しては、分子からのものであることを除いて、私は0を正当化する方法がわかりません。

結果は奇妙なことができます。しかし、私は推定に関連する他のものを考えることができます。


3
実際、確率変数を1回観測すると、その変数の分散に関する情報が得られることがよくあります。それはあなたが許可する可能性に依存します。たとえば、均一分布、ポアソン分布、または指数分布からの単一の観測により、その単一のパラメーターを推定でき、分散の推定が得られます。
whuber

@whuberポインタに感謝します。実際、私は標本分散の線についてもっと考えていました。私が言いたかったのは、サンプルの分散を推定することは、1つのサンプルでは適切ではないかもしれないということでした。現在は修正されています。
suncoolsu

@whuberしかし、ここではそうではありません。この関数はvariance /(n-1)を返すことが記載されており、0/0シンボルに対して0を返します。

@mbqドキュメントの免責事項を見逃しました:「N = 1の場合、VはNによって正規化されます。」これは、「N = 1の場合、値0が返される」という楕円形の言い方です。私のコメントで述べたポイントは、実際には何か他のものについてです。それは、N = 1の場合の「そこにない情報を抽出しようとしている」という@suncoolsuの主張に対処します。逆に、確率変数から1つの観測は確かにない多くの実用的なアプリケーションでその分散に関する情報を提供します。(ただし、分散はある種の分散式によって最もよく推定されるとは言っていません!)
whuber

@whuber十分に公正です。しかし、これはこの動作を正当化しません。

1

Matlabは、NAとNANを処理する必要がないように、スカラー(人口分散の定義方法に類似)に次のロジックを使用していると思います。

Var(x)=(xx¯)21=0

上記はスカラーの場合と同じです:。x¯=x

それらの定義は、おそらくコーディングのいくつかの側面を容易にする可能性のあるプログラミング規則です。


解決策を提示せずに問題を再表明しました。懸念は、分散の推定値が後で使用されるときに、この規則が誤った答えにつながる可能性があることです。それは確かに失敗が認識される段階を遅らせます。(たとえば、この「分散」をt検定で使用するとどうなるかを考えてください。)
whuber

@whuber正確ではありません。OPはvar、「母集団分散」を返すのに対して、スカラーの標本分散を返すと考えています。それが問題であるかどうかは、内部にあるエラー処理ルーチンのタイプによって異なります。しかし、私は彼らの慣習が誤りの影響を受けやすいことに同意します。

@Srikantどちらがより混乱しているのかを判断するために、あなたと私は、私たち2人とも混乱していることを学びました!ウィキペディアは、式を1 /(n-1)の「サンプル分散」(en.wikipedia.org/wiki/Variance)と見なしますが、Mathworldは明らかにmathworld.wolfram.com/SampleVariance.htmlで1 / nを使用します。ただし、OPは、「サンプル分散が0 = n-1で除算されていない」と述べるとき、第一の意味で「サンプル分散」を使用します。この意味、1つの値のデータセット(「スカラー」)の「サンプル分散」などは存在しないため、OPが「考えている」ものの特徴付けは正しくないように見えます。
whuber

+1私はMATLABを知っているので、あなたの仮説は(悲しいことに)正しいと思います。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.