データにガウス分布がある場合、いくつのサンプルがそれを特徴付けますか?


12

単一の次元に分布するガウスデータには、それを特徴付ける2つのパラメーター(平均、分散)が必要であり、これらのパラメーターを合理的に高い信頼度で推定するには、ランダムに選択した約30個のサンプルで通常十分であるという噂があります。しかし、次元の数が増えるとどうなりますか?

2次元(高さ、重量など)では、「最適な」楕円を指定するには5つのパラメーターが必要です。3次元では、これは楕円体を記述するために9つのパラメーターに上昇し、4-Dでは14のパラメーターを取ります。これらのパラメータを推定するために必要なサンプル数も、同等のレートで増加するのか、遅いレートで増加するのか、それとも高いレートで増加するのかを知りたいと思います。さらに良いことに、与えられた次元数でガウス分布を特徴付けるためにいくつのサンプルが必要かを示唆する広く受け入れられた経験則があれば、それは知っておくとよいでしょう。

より正確には、平均点を中心とする対称的な「最適な」境界を定義し、すべてのサンプルの95%が落ちると確信できるとします。適切に高い(> 95%)信頼度でこの境界(1-Dの間隔、2-Dの楕円など)を近似するパラメーターを見つけるために必要なサンプル数と、その数がどのように変化するかを知りたい次元数が増加します。


3
「ピンダウン」の十分に正確な定義がないと、単変量ガウス分布であってもこの質問に答えることは実際に不可能です。
Glen_b

1
方法:すべてのサンプルの95%(ただし、すべてのサンプルの95%のみ)が定義された間隔/楕円/楕円体/超楕円体内にあることを少なくとも95%確信するために必要なサンプル数は?
おまタイ

1
つまり、すべてのサンプルの95%は、平均のある定義された距離内にあります。95%以上の信頼度でその距離(間隔/楕円/楕円/など)を定義するには、いくつのサンプルが必要ですか?
おまタイ

1
パラメーターよりも独立したデータ値が1つ多くなるとすぐに(そのため d次元の値)、それらの周囲に95%の信頼領域を構築できます。(非伝統的な手法を使用すればさらに良くなります。)それは答えです-それは決定的なものです-しかし、おそらくあなたが探しているものではありません。要点は、この質問に対する答えを得るために、希望する精度の絶対スケールを規定する必要があるということです。(d+22)d
whuber

1
Snedecor&Cochran [ 統計手法、第8版]は、サンプリングに関する権限です。彼らは、章4および図6に、このプロセスを説明します。「私たちが最初に想定している母集団の標準偏差σD ...知られています。」後に彼らは、「この方法は作業ラインの初期段階で最も有用です。例えば、以前の小規模な実験では、新しい治療により約20%増加し、は約7%増加することが示されました。調査者... [希望] SEが± 2%であり、したがってを設定するσ±n=25を与える...これは、後の作業でしばしば役立つ。2(7)/n=2n=25
whuber

回答:


7

特定の信頼度に対して指定された精度内で多変量正規分布のパラメーターを推定するために必要なデータの量は、ディメンションによって異なりません。他のすべては同じです。 したがって、2次元の経験則を変更せずに高次元の問題に適用できます。

なぜそれが必要ですか?パラメーターには、平均、分散、共分散の3種類しかありません。平均の推定誤差は、分散とデータ量のみに依存します。ときにこのように、X 1X 2... XのD多変量正規分布を有し、X iは有するが差異σ 2 iがその後の推定値、E [ X I ]は、のみに依存σ IN。そこから、すべての推定において十分な精度を達成するためにn(X1,X2,,Xd)Xiσi2E[Xi]σin、我々は唯一のために必要なデータ量を検討する必要がある、我々が検討する必要があるのはどのくらいの最大のである σ iの増加します。これらのパラメーターが上記の範囲にある場合、必要なデータの量はディメンションに依存しないと結論付けます。E[Xi]持つ最大 σ I。したがって、次元 dを増加させるための一連の推定問題を考える場合Xiσidσi

同様の考察は、分散が推定に適用さと共分散σをσi2推定するためのデータで十分である量の場合:1つの基礎となる正規分布を提供した同様のパラメータ値- -所望の精度に共分散(または相関係数)を、次いでデータの-the同量の推定のために十分であろう任意の共分散または相関係数。σij


この議論を説明し、経験的なサポートを提供するために、いくつかのシミュレーションを研究しましょう。以下は、指定された次元の多重正規分布のパラメーターを作成し、その分布から多数の独立した同一に分布したベクトルのセットを描画し、そのような各サンプルからパラメーターを推定し、(1)平均の観点からそれらのパラメーター推定の結果を要約します- -偏りがないことを実証するため(およびコードが正しく機能していること-および(2)推定の精度を定量化する標準偏差(これらの標準偏差を混同しないでください。基礎となる多重正規分布の定義に使用される標準偏差を使用したシミュレーションの反復!dが変化しても、が変化しても、基礎となる多重正規分布自体に大きな分散は導入されません。d

基礎となる分布の分散のサイズは、このシミュレーションでは、共分散行列の最大固有値を ます。これにより、このクラウドの形状がどのようなものであっても、次元が増加しても、確率密度の「クラウド」が範囲内に維持されます。固有値の生成方法を変更するだけで、次元が増加するときのシステムの他の動作モデルのシミュレーションを作成できます。1つの例(ガンマ分布を使用)は、以下のコードでコメント化されて表示されています。1R

私たちが探しているのは、次元が変更されたときにパラメーター推定値の標準偏差がそれほど変化しないことを確認することです。したがって、両方のケースで同じ量のデータ(30を使用して2つの極端なd = 2d = 60の結果を示します。d = 601890に等しい)の 場合に推定されるパラメーターの数は、データセット全体でベクトルの数(30)をはるかに超え、個々の数(30 60 = 1800)をも超えることは注目に値します。dd=2d=6030d=601890303060=1800

2つの次元から始めましょう。5つのパラメーターがあります。2つの分散(このシミュレーションでは0.0970.182の標準偏差)、共分散(SD = 0.126)、2つの平均(SD = 0.110.15)です。異なるシミュレーション(ランダムシードの開始値を変更することで取得可能)では、これらは少し異なりますが、サンプルサイズがn = 30の場合、一貫して同等のサイズになります。たとえば、次のシミュレーションではSDSがある0.0140.2630.043d=20.0970.1820.1260.110.15n=300.0140.2630.043、および 0.180.040.18、それぞれ:それらはすべて変更されましたが、同等の桁のものです。

(これらのステートメントは理論的にサポートすることができますが、ここでのポイントは純粋に経験的なデモンストレーションを提供することです。)

今、私たちはに移動でサンプルサイズを維持するのn = 30。具体的には、これは、各サンプルが30個のベクトルで構成され、各ベクトルが60個の成分を持つことを意味します。1890年の標準偏差をすべてリストするのではなく、ヒストグラムを使用してその範囲を表す写真を見てみましょう。d=60n=3030601890

Figure

上部行における散布は、実際のパラメータの比較sigma)及び(μ中に行われた平均推定値に)10σmuμこのシミュレーションの 4回の反復。灰色の基準線は、完全な平等の軌跡を示しています。明らかに、推定値は意図したとおりに機能し、偏りがありません。104

ヒストグラムは、共分散行列のすべてのエントリ(左)と平均(右)に分けて、一番下の行に表示されます。個々物のSDS 分散は、の間に位置する傾向が0.12物のSDSながら共分散別個の構成要素との間の間に存在する傾向が0.040.08:とき丁度範囲で達成D = 2。同様に、平均推定値のSDは0.08から0.13の間にある傾向があり、これはd = 2のときに見られたものに匹敵します。確かに、SDが増加したという兆候はありません0.080.120.040.08d=20.080.13d=2から上がった260d260

コードは次のとおりです。

#
# Create iid multivariate data and do it `n.iter` times.
#
sim <- function(n.data, mu, sigma, n.iter=1) {
  #
  # Returns arrays of parmeter estimates (distinguished by the last index).
  #
  library(MASS) #mvrnorm()
  x <- mvrnorm(n.iter * n.data, mu, sigma)
  s <- array(sapply(1:n.iter, function(i) cov(x[(n.data*(i-1)+1):(n.data*i),])), 
        dim=c(n.dim, n.dim, n.iter))
  m <-array(sapply(1:n.iter, function(i) colMeans(x[(n.data*(i-1)+1):(n.data*i),])), 
            dim=c(n.dim, n.iter))
  return(list(m=m, s=s))
}
#
# Control the study.
#
set.seed(17)
n.dim <- 60
n.data <- 30    # Amount of data per iteration
n.iter <- 10^4  # Number of iterations
#n.parms <- choose(n.dim+2, 2) - 1
#
# Create a random mean vector.
#
mu <- rnorm(n.dim)
#
# Create a random covariance matrix.
#
#eigenvalues <- rgamma(n.dim, 1)
eigenvalues <- exp(-seq(from=0, to=3, length.out=n.dim)) # For comparability
u <- svd(matrix(rnorm(n.dim^2), n.dim))$u
sigma <- u %*% diag(eigenvalues) %*% t(u)
#
# Perform the simulation.
# (Timing is about 5 seconds for n.dim=60, n.data=30, and n.iter=10000.)
#
system.time(sim.data <- sim(n.data, mu, sigma, n.iter))
#
# Optional: plot the simulation results.
#
if (n.dim <= 6) {
  par(mfcol=c(n.dim, n.dim+1))
  tmp <- apply(sim.data$s, 1:2, hist)
  tmp <- apply(sim.data$m, 1, hist)
}
#
# Compare the mean simulation results to the parameters.
#
par(mfrow=c(2,2))
plot(sigma, apply(sim.data$s, 1:2, mean), main="Average covariances")
abline(c(0,1), col="Gray")
plot(mu, apply(sim.data$m, 1, mean), main="Average means")
abline(c(0,1), col="Gray")
#
# Quantify the variability.
#
i <- lower.tri(matrix(1, n.dim, n.dim), diag=TRUE)
hist(sd.cov <- apply(sim.data$s, 1:2, sd)[i], main="SD covariances")
hist(sd.mean <- apply(sim.data$m, 1, sd), main="SD means")
#
# Display the simulation standard deviations for inspection.
#
sd.cov
sd.mean

1

いくつかの簡単な数値は、標準正規分布から作成された30個のサンプルの適合に対して次の誤差分布を与え、その後単変量ガウスに適合します。

enter image description here

四分位数が示されています。多次元の場合、このレベルの変動が望ましいと想定されます。

総合的な結果を得るためにMatLabを倒す時間がないので、「経験則」を共有します。30は経験則、またはヒューリスティックとして提供されているため、ヒューリスティックは受け入れられないものではないと想定されています。

私の経験則では、Pascalの三角形に単変量のケースを掛けて使用します。 enter image description here

2Dデータを使用している場合、2行目に移動して合計し、サンプル数の2倍、つまり60サンプルを取得します。3Dデータの場合、3行目に行き、合計して4倍のサンプル数または120サンプルを取得します。5Dデータの場合、5行目に行き、合計してサンプル数の16倍、つまり480サンプルを取得します。

幸運を祈ります。

編集:

直感的でしたが、すべてを数学で守る必要があります。経験を積んだ有限要素からの多項式形式の定式化から飛躍することはできません。

kth2kです。

ここでのアプローチの私の考えは、より多くのサンプルを含む高次元分布のAICを、より少ないサンプルを含む減少した次元分布と同等にすることです。

AIC=nlog(RSSn)+2kRSSnk

AIC1=AIC2

n1log(RSS1n1)+2k1=n2log(RSS2n2)+2k2

これを削除する各次元について、平均は行を失い、共分散は行と列の両方を失います。これを次のように述べることができます

k(d)=d2+d

k(d+1)k(d)=2d+2

サンプルポイントごとの誤差が一定であると仮定すると、残差平方和がサンプルカウントに関連し、対数の項は一定のままです。サンプル数の差がスケーリング定数になります。

だから私たちは持っています:

n1A+2(k2+2d+2)=n2A+2k2

次元を持つサンプルの増加を解くと、次のようになります。

n2n1=(2(k2+2d+2)2k2)A1=(4d+4)A1

A1=5

enter image description here

この時点で、ヒューリスティックは少し低い値から始まりますが、必要なサンプル数の約2倍になります。私の個人的な意見では、その最高の有用性の範囲は約4次元程度です。

編集:

だから私は@whuberの答えを読んで、それが気に入っています。これは経験的であり、この場合は信頼できます。私は彼の答えに投票しました。

以下では、話し合うことを試みており、最大300文字を使用できるようになり、写真を埋め込むことができることを望んでいます。したがって、私は答えの範囲内で議論しています。これでいいと思います。

この時点では、これにAICを使用したり、サンプルサイズとパラメーターサイズを使用したりする方法が間違っているとは思いません。

次のステップ:

  • @whuberの結果を複製し、経験的に確認する
  • 少なくとも何らかのアンサンブルの意味でAICをテストして、適切かどうかを確認します
  • AICが適切な場合は、経験的方法を使用して、推論の欠陥を追跡します。

コメントや提案を歓迎します。


4
ヒューリスティックの正当性を説明できますか?
whuber

1
そして、5行目の合計が実際には16であることを確認できますか?
おまタイ


1
2d+12d=9549手段の場合、9 共分散、および 36相関)。これは、なぜあなたの推薦がそのような非常に高いサンプルサイズを必要とするのかを説明できます!
whuber

1
@whuber、私は自分が正しいことよりも、エラーを知った後(エラーを知った後)に多くのことを学びます。驚くべきことに、間違っているということは、自分が間違っていることを知るまでは正しいと感じます。ありがとうございました。 ted.com/talks/kathryn_schulz_on_being_wrong.html
EngrStudent-モニカの復活2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.