Ketika data memiliki distribusi gaussian, berapa banyak sampel akan mencirikannya?


12

Data Gaussian yang didistribusikan dalam dimensi tunggal memerlukan dua parameter untuk mengkarakterisasi (rata-rata, varians), dan rumor mengatakan bahwa sekitar 30 sampel yang dipilih secara acak biasanya cukup untuk memperkirakan parameter ini dengan kepercayaan yang cukup tinggi. Tetapi apa yang terjadi ketika jumlah dimensi bertambah?

Dalam dua dimensi (mis. Tinggi, berat), dibutuhkan 5 parameter untuk menentukan elips "paling pas". Dalam tiga dimensi, ini naik menjadi 9 parameter untuk menggambarkan ellipsoid, dan dalam 4-D dibutuhkan 14 parameter. Saya tertarik untuk mengetahui apakah jumlah sampel yang diperlukan untuk memperkirakan parameter-parameter ini juga naik pada tingkat yang sebanding, pada tingkat yang lebih lambat atau (harap tidak!) Pada tingkat yang lebih tinggi. Lebih baik lagi, jika ada aturan praktis yang diterima secara luas yang menunjukkan berapa banyak sampel yang diperlukan untuk mengkarakterisasi distribusi gaussian dalam sejumlah dimensi tertentu, itu akan baik untuk diketahui.

Untuk lebih tepatnya, misalkan kita ingin mendefinisikan batas "paling cocok" simetris yang berpusat pada titik rata-rata di mana kita dapat yakin bahwa 95% dari semua sampel akan jatuh. Saya ingin tahu berapa banyak sampel yang diperlukan untuk menemukan parameter untuk memperkirakan batas ini (interval dalam 1-D, elips dalam 2-D, dll) dengan kepercayaan yang cukup tinggi (> 95%), dan bagaimana angka itu bervariasi sesuai dengan jumlah dimensi bertambah.


3
Tanpa definisi 'pin down' yang cukup tepat, tidak mungkin untuk menjawab pertanyaan ini bahkan untuk Gaussian univariat.
Glen_b -Reinstate Monica

1
Bagaimana dengan: berapa banyak sampel yang diperlukan untuk setidaknya 95% yakin bahwa 95% dari semua sampel (tetapi hanya 95% dari semua sampel) akan berada dalam interval / ellipse / ellipsoid / hyperellipsoid yang ditentukan?
omatai

1
Dengan kata lain ... 95% dari semua sampel akan berada dalam jarak tertentu dari rata-rata. Berapa banyak sampel yang diperlukan untuk menentukan jarak itu (interval / ellipse / ellipsoid / etc) dengan kepercayaan 95% atau lebih baik?
omatai

1
Segera setelah Anda memiliki satu nilai data lebih independen daripada yang ada parameter (di mana nilai dalam dimensi ), Anda dapat mendirikan wilayah kepercayaan 95% di sekitar mereka. (Seseorang dapat melakukan lebih baik dengan menggunakan teknik non-tradisional .) Itu adalah jawaban - ini adalah jawaban yang pasti - tetapi mungkin bukan itu yang Anda cari. Intinya adalah bahwa Anda perlu menetapkan skala absolut dari akurasi yang diinginkan untuk mendapatkan jawaban atas pertanyaan ini. d(d+22)d
whuber

1
Snedecor & Cochran [ Metode Statistik , edisi ke 8] adalah otoritas dalam pengambilan sampel. Mereka menggambarkan proses ini dalam bab 4 dan 6: "kami berasumsi pada awalnya bahwa standar deviasi populasi ... diketahui." Kemudian mereka menulis, "Metode ini karena itu paling berguna pada tahap awal dari garis kerja. ... Misalnya, percobaan kecil sebelumnya telah mengindikasikan bahwa pengobatan baru memberikan peningkatan sekitar 20% dan sekitar 7% Penyelidik ... [menginginkan] SE dari 2% dan dengan demikian menetapkan , memberi ... Ini ... sering kali bermanfaat dalam pekerjaan selanjutnya σ ± σDσ±n=252(7)/n=2n=25
whuber

Jawaban:


7

Jumlah data yang diperlukan untuk memperkirakan parameter dari distribusi Normal multivariat ke dalam akurasi yang ditentukan untuk kepercayaan yang diberikan tidak berbeda dengan dimensi, semua hal lainnya sama. Karenanya, Anda dapat menerapkan aturan praktis apa pun untuk dua dimensi pada masalah dimensi yang lebih tinggi tanpa perubahan apa pun.

Kenapa harus begitu? Hanya ada tiga jenis parameter: mean, varians, dan covariances. Kesalahan estimasi dalam rata-rata hanya bergantung pada varians dan jumlah data, . Jadi, ketika memiliki distribusi Normal multivariat dan memiliki varian , maka perkiraan hanya bergantung pada dan . Dari mana, untuk mencapai akurasi yang memadai dalam memperkirakan semua yang , kita hanya perlu mempertimbangkan jumlah data yang dibutuhkan untuk memiliki terbesar dari( X 1 , X 2 , ... , X d ) X i σ 2 i E [ X i ] σ i n E [ X i ] X i σ i d σ in(X1,X2,,Xd)Xiσi2E[Xi]σinE[Xi]Xiσi. Karena itu, ketika kita merenungkan suksesi masalah estimasi untuk meningkatkan dimensi , yang perlu kita perhatikan adalah berapa banyak terbesar akan meningkat. Ketika parameter ini dibatasi di atas, kami menyimpulkan bahwa jumlah data yang dibutuhkan tidak tergantung pada dimensi.dσi

Pertimbangan serupa berlaku untuk memperkirakan varians dan covariances : jika sejumlah data cukup untuk memperkirakan satu kovarians (atau koefisien korelasi) dengan akurasi yang diinginkan, maka - asalkan distribusi normal yang mendasarinya memiliki kesamaan nilai parameter - jumlah data yang sama akan cukup untuk memperkirakan setiap kovarian atau koefisien korelasi. σ i jσi2σij


Untuk mengilustrasikan, dan memberikan dukungan empiris untuk argumen ini, mari kita pelajari beberapa simulasi. Berikut ini menciptakan parameter untuk distribusi multinormal dimensi tertentu, menarik banyak set vektor independen, terdistribusi secara identik dari distribusi itu, memperkirakan parameter dari masing-masing sampel tersebut, dan merangkum hasil estimasi parameter tersebut dalam hal (1) rata-rata- -untuk menunjukkan bahwa mereka tidak bias (dan kodenya bekerja dengan benar - dan (2) standar deviasi mereka, yang mengukur keakuratan estimasi. iterasi simulasi, dengan standar deviasi yang digunakan untuk menentukan distribusi multinormal yang mendasarinya!dd perubahan, asalkan sebagai perubahan, kita tidak memperkenalkan lebih besar varians ke dalam distribusi multinormal mendasari itu sendiri.d

Ukuran varian distribusi yang mendasarinya dikendalikan dalam simulasi ini dengan membuat nilai eigen terbesar dari matriks kovarians sama dengan . Ini menjaga kerapatan probabilitas "awan" dalam batas seiring dengan meningkatnya dimensi, tidak peduli apa pun bentuk awan ini. Simulasi model perilaku sistem lainnya ketika dimensi meningkat dapat dibuat hanya dengan mengubah cara nilai eigen dihasilkan; satu contoh (menggunakan distribusi Gamma) ditunjukkan dikomentari dalam kode di bawah ini.1R

Yang kami cari adalah memverifikasi bahwa standar deviasi estimasi parameter tidak berubah ketika dimensi berubah. Karena itu saya menunjukkan hasil untuk dua ekstrem, dan , menggunakan jumlah data yang sama ( ) dalam kedua kasus. Perlu dicatat bahwa jumlah parameter diperkirakan ketika , sama dengan , jauh melebihi jumlah vektor ( ) dan bahkan melebihi angka individu ( ) di seluruh dataset.d = 2 d = 60 30 d = 60 1890 30 30 60 = 1800dd=2d=6030d=601890303060=1800

Mari kita mulai dengan dua dimensi, . Ada lima parameter: dua varians (dengan standar deviasi dan dalam simulasi ini), sebuah kovarians (SD = ), dan dua rata-rata (SD = dan ). Dengan simulasi yang berbeda (dapat diperoleh dengan mengubah nilai awal dari benih acak) ini akan sedikit bervariasi, tetapi mereka akan secara konsisten memiliki ukuran yang sebanding ketika ukuran sampel . Misalnya, dalam simulasi berikutnya SD adalah , , , , dan0,097 0,182 0,126 0,11 0,15 n = 30 0,014 0,263 0,043 0,04 0,18d=20.0970.1820.1260.110.15n=300.0140.2630.0430.040.18, masing-masing: mereka semua berubah tetapi urutan besarnya sebanding.

(Pernyataan-pernyataan ini dapat didukung secara teoritis tetapi intinya di sini adalah untuk memberikan demonstrasi yang murni empiris.)

Sekarang kita beralih ke , menjaga ukuran sampel pada . Secara khusus, ini berarti setiap sampel terdiri dari vektor, masing-masing memiliki komponen. Daripada mendaftar semua standar deviasi, mari kita lihat gambar mereka menggunakan histogram untuk menggambarkan rentang mereka.n = 30 30 60 1890d=60n=3030601890

Angka

Plot sebar di baris atas membandingkan parameter aktual sigma( ) dan ( ) dengan perkiraan rata-rata yang dibuat selama iterasi dalam simulasi ini. Garis referensi abu-abu menandai lokus kesetaraan sempurna: jelas perkiraan berfungsi sebagaimana dimaksud dan tidak bias.μ 10 4σmuμ104

Histogram muncul di baris bawah, secara terpisah untuk semua entri dalam matriks kovarians (kiri) dan untuk sarana (kanan). SD dari masing-masing varian cenderung terletak antara dan sedangkan SD kovarian antara komponen yang terpisah cenderung berada di antara dan : tepat dalam kisaran yang dicapai ketika . Demikian pula, SD dari estimasi rata-rata cenderung terletak antara dan , yang sebanding dengan apa yang terlihat ketika . Tentu saja tidak ada indikasi bahwa SD telah meningkat sebagai0.080.120.040.08d=20.080.13d=2dnaik dari menjadi .260

Kode berikut.

#
# 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

Beberapa numerik singkat memberikan distribusi kesalahan berikut untuk kesesuaian 30 sampel yang dibuat dari distribusi normal standar kemudian cocok untuk Gaussian univariat.

masukkan deskripsi gambar di sini

Kuartil ditunjukkan. Diasumsikan bahwa tingkat variasi ini diinginkan dalam kasus multi-dimensi.

Saya tidak punya waktu untuk mengalahkan MatLab untuk mendapatkan hasil total, jadi saya akan membagikan "aturan praktis" saya. 30 diberikan sebagai patokan, atau heuristik sehingga diasumsikan bahwa heuristik tidak dapat diterima.

Heuristik saya adalah menggunakan segitiga Pascal dikalikan dengan kasus univariat. masukkan deskripsi gambar di sini

Jika saya menggunakan data 2d maka saya pergi ke baris ke-2 dan menjumlahkannya untuk mendapatkan 2x jumlah sampel, atau 60 sampel. Untuk data 3d saya pergi ke baris ke-3 dan menjumlahkannya untuk mendapatkan 4x jumlah sampel atau 120 sampel. Untuk data 5d saya pergi ke baris ke-5 dan jumlah itu untuk mendapatkan 16x jumlah sampel, atau 480 sampel.

Semoga berhasil.

EDIT:

Itu intuitif, tetapi semuanya harus dipertahankan dalam matematika. Saya tidak bisa hanya mengambil lompatan dari formulasi bentuk polinomial dari Elemen Hingga dengan pengalaman untuk mendapatkan rata-rata.

Persamaan untuk jumlah baris dari segitiga Pascal adalah . kth2k

Ide saya untuk pendekatan di sini adalah untuk menyamakan AIC dari distribusi dimensi yang lebih tinggi dengan lebih banyak sampel ke distribusi dimensi yang dikurangi dengan sampel yang lebih sedikit.

Kriteria Informasi Akaike (AIC) didefinisikan sebagai mana adalah jumlah sisa kuadrat, adalah jumlah sampel, dan adalah jumlah parameter untuk model . AIC=nlog(RSSn)+2kRSSnk

AIC1=AIC2

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

Untuk setiap dimensi yang kita hilangkan ini berarti rata-rata kehilangan satu baris dan kovarians kehilangan satu baris dan satu kolom. Kita dapat menyatakan ini sebagai

k(d)=d2+d .

dari

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

Dengan asumsi kesalahan per titik sampel adalah konstan, maka jumlah residu kuadrat dengan jumlah sampel, dan istilah dalam logaritma tetap konstan. Perbedaan dalam jumlah sampel menjadi konstanta penskalaan.

jadi kita punya:

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

pemecahan untuk peningkatan sampel dengan dimensi memberi:

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

Jadi apa fungsi penskalaan? Mari kita asumsikan bahwa untuk Gaussian multivariat 2 dimensi, jumlah sampel yang dibutuhkan adalah 15 per parameter. Ada 2 cara dan 4 elemen kovarian karena itu 6 parameter atau 90 sampel. Perbedaannya adalah 60 sampel, nilai . A1=5

masukkan deskripsi gambar di sini

Pada titik ini saya akan mengatakan bahwa heuristik mulai sedikit rendah tetapi akhirnya menjadi sekitar 2x jumlah sampel yang diperlukan. Kisaran utilitas terbaiknya, menurut pendapat pribadi saya, adalah sekitar 4 dimensi atau lebih.

EDIT:

Jadi saya sudah membaca jawaban @whuber dan saya suka. Ini empiris, dan dalam hal ini yang otoritatif. Saya memilih jawabannya.

Berikut ini saya mencoba untuk mendiskusikan dan berharap untuk dapat menggunakan lebih dari ~ 300 karakter, dan saya berharap dapat menanamkan gambar. Karena itu saya membahas dalam batas-batas jawaban. Saya harap ini baik-baik saja.

Saya pada titik ini tidak yakin bahwa penggunaan AIC untuk ini, atau bagaimana ukuran sampel dan ukuran parameter digunakan tidak benar.

Langkah selanjutnya:

  • mereplikasi hasil @ whuber, konfirmasikan secara empiris
  • Uji AIC, setidaknya dalam beberapa hal ensemble, untuk mengkonfirmasi apakah itu sesuai
  • Jika AIC tepat, maka cobalah menggunakan metode empiris untuk mengejar cacat dalam penalaran.

Komentar dan saran diterima.


4
Bisakah Anda memberikan beberapa pembenaran untuk heuristik Anda?
Whuber

1
Dan bisakah Anda mengonfirmasi bahwa jumlah baris ke-5 sebenarnya 16?
omatai

1 + 4 + 6 + 4 + 1 = 1 + 10 + 5 = 16. Maaf tentang itu. 16 22. Saya pasti setengah tertidur ketika saya menambahkan.
EngrStudent

1
Bagaimana Anda menghasilkan untuk jumlah parameter? Itu terlalu banyak. Misalnya, dengan komponen hanya diperlukan parameter (untuk , kovariansi, dan korelasi). Ini bisa menjelaskan mengapa rekomendasi Anda memerlukan ukuran sampel yang sangat tinggi! d = 9 54 9 9 362d+12d=9549936
whuber

1
@whuber, saya menemukan bahwa saya belajar lebih banyak dengan kesalahan saya (setelah saya mengetahuinya) daripada karena saya benar. Cukup mengejutkan, kesalahan terasa persis seperti benar sampai saya tahu bahwa saya salah. Terima kasih. ted.com/talks/kathryn_schulz_on_being_wrong.html
Reinstate Monica
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.