Bagaimana cara menghitung standar deviasi tertimbang? Di Excel?


29

Jadi, saya memiliki kumpulan data persentase seperti ini:

100   /   10000   = 1% (0.01)
2     /     5     = 40% (0.4)
4     /     3     = 133% (1.3) 
1000  /   2000    = 50% (0.5)

Saya ingin menemukan standar deviasi dari persentase, tetapi ditimbang untuk volume data mereka. yaitu, titik data pertama dan terakhir harus mendominasi perhitungan.

Bagaimana aku melakukan itu? Dan adakah cara sederhana untuk melakukannya di Excel?


Rumus dengan (M-1) / M benar. Jika Anda memiliki keraguan, periksa dengan mengatur semua bobot sama dengan 1, dan Anda akan mendapatkan rumus klasik untuk estimasi bias untuk standar deviasi dengan (N-1) dalam penyebut. Untuk whuber: tidak biasa bukan berarti salah.

1
Rumus dengan (M-1) / M BUKAN BENAR. Bayangkan Anda menambahkan satu juta poin dengan bobot satu triliun. Anda sama sekali tidak mengubah jawaban Anda, berapapun bobotnya, tetapi istilah menjadi 1? Benar-benar tidak! Jika Anda peduli itu , maka Anda juga peduli bahwa ini salah. (M1)/M(M1)/M1
Rex Kerr


Saya ingin tahu mengapa Anda menginginkan standar deviasi di sini? Anda hanya memiliki angka! Bagaimana angka itu terlalu banyak? Terutama ketika persentase lebih mudah dijelaskan dan dipahami. 4
probabilityislogic

@probabilityislogic itu adalah contoh sederhana untuk menjaga pertanyaan singkat.
Yahel

Jawaban:


35

The formula untuk tertimbang deviasi standar adalah:

i=1Nwi(xix¯)2(M1)Mi=1Nwi,

dimana

adalah jumlah pengamatan.N

adalah jumlah bobot bukan nol.M

adalah bobotwi

adalah pengamatan.xi

adalah rata-rata tertimbang.x¯

Ingat bahwa rumus untuk rata-rata tertimbang adalah:

x¯=saya=1Nwsayaxsayasaya=1Nwsaya.

Gunakan bobot yang sesuai untuk mendapatkan hasil yang diinginkan. Dalam kasus Anda, saya akan menyarankan untuk menggunakan .Jumlah kasus dalam segmenTotal jumlah kasus

Untuk melakukan ini di Excel, Anda harus menghitung rata-rata tertimbang terlebih dahulu. Kemudian hitung di kolom terpisah. Sisanya pasti sangat mudah.(xsaya-x¯)2


2
@Gilles, kamu benar. deps_stats, fraksi di SD tidak biasa. Apakah Anda memiliki kutipan untuk formula ini atau dapatkah Anda setidaknya menjelaskan alasan untuk memasukkan istilah itu? (M.-1)/M.
Whuber

4
@ Harun Bobot tidak selalu didefinisikan sebagai jumlah untuk kesatuan, seperti yang dicontohkan oleh bobot yang diberikan dalam pertanyaan ini!
Whuber

2
(-1) Saya downvoting jawaban ini karena tidak ada pembenaran atau referensi untuk istilah telah disediakan (dan saya cukup yakin itu tidak membuat estimasi varians tidak bias, yang akan jelas terlihat motivasi). (M.-1)/M.
Whuber

1
Mengingat referensi yang ditambahkan (yang tidak otoritatif, tetapi merupakan referensi) saya menghapus downvote. Saya tidak memilih jawaban ini, karena perhitungan menunjukkan bobot yang diusulkan tidak menghasilkan estimasi yang tidak bias sama sekali (kecuali ketika semua bobot sama dengan ). Kesulitan sebenarnya di sini - yang merupakan kesalahan dari pertanyaan, bukan jawabannya - adalah bahwa tidak jelas apa yang "diperkirakan" dari standar deviasi standar tertimbang ini. Tanpa estimasi yang pasti dan, tidak ada pembenaran untuk memperkenalkan faktor ( M - 1 ) / M untuk "mengurangi bias" (atau karena alasan lain). 1(M.-1)/M.
whuber

1
@Mikhail Anda benar bahwa "tidak biasa" dan "benar" tidak ada hubungannya dengan satu sama lain. Namun, hasil yang tidak biasa secara implisit menuntut sedikit lebih banyak pembenaran karena menjadi tidak biasa adalah salah satu indikator bahwa kesalahan mungkin telah dibuat. Argumen Anda tidak valid: meskipun rumus memang mengurangi menjadi satu untuk penaksir tidak bias ketika semua bobot sama, itu tidak berarti penaksir tetap tidak bias ketika bobot yang tidak sama digunakan. Saya tidak menegaskan kesimpulan Anda salah, tetapi hanya sejauh ini tidak ada justifikasi yang sah yang ditawarkan.
whuber

18

Formula tersedia berbagai tempat, termasuk Wikipedia .

Kuncinya adalah memperhatikan bahwa itu tergantung pada apa artinya bobot . Secara khusus, Anda akan mendapatkan jawaban yang berbeda jika bobotnya adalah frekuensi (yaitu Anda hanya berusaha menghindari menjumlahkan seluruh jumlah Anda), jika bobot sebenarnya adalah varian dari setiap pengukuran, atau jika itu hanya beberapa nilai eksternal yang Anda memaksakan data Anda.

Dalam kasus Anda, ini tampak seperti bobot adalah frekuensi tetapi tidak . Anda menghasilkan data dari frekuensi, tetapi bukan hal yang mudah untuk memiliki 45 catatan 3 dan 15 catatan 4 dalam kumpulan data Anda. Sebagai gantinya, Anda perlu menggunakan metode terakhir. (Sebenarnya, semua ini adalah sampah - Anda benar - benar perlu menggunakan model proses yang lebih canggih yang menghasilkan angka-angka ini! Anda tampaknya tidak memiliki sesuatu yang mengeluarkan angka yang terdistribusi secara normal, jadi karakterisasi sistem dengan standar deviasi bukan hal yang benar untuk dilakukan.)

Bagaimanapun, rumus untuk varians (dari mana Anda menghitung standar deviasi dengan cara normal) dengan bobot "keandalan" adalah

wsaya(xsaya-x)2wsaya-wsaya2wsaya

x=wsayaxsaya/wsaya

Anda tidak memiliki perkiraan untuk bobot, yang saya anggap Anda ingin menjadi proporsional dengan reliabilitas. Mengambil persentase dengan cara Anda akan membuat analisis menjadi rumit bahkan jika itu dihasilkan oleh proses Bernoulli, karena jika Anda mendapatkan skor 20 dan 0, Anda memiliki persentase tak terbatas. Pembobotan oleh kebalikan dari SEM adalah hal yang umum dan terkadang optimal untuk dilakukan. Anda mungkin harus menggunakan perkiraan Bayesian atau interval skor Wilson .


2
+1. Diskusi tentang makna bobot yang berbeda adalah apa yang saya cari di utas ini selama ini. Ini merupakan kontribusi penting untuk semua pertanyaan situs ini tentang statistik tertimbang. (Saya sedikit khawatir tentang pernyataan tanda kurung mengenai distribusi normal dan standar deviasi, meskipun, karena mereka salah menyarankan bahwa SD tidak menggunakan di luar model berdasarkan normalitas.)
whuber

@whuber - Nah, teorema batas pusat untuk penyelamatan, tentu saja! Tetapi untuk apa yang OP lakukan, mencoba untuk mengkarakterisasi set angka dengan mean dan standar deviasi tampaknya sangat tidak disarankan. Dan secara umum, untuk banyak kegunaan, standar deviasi akhirnya memikat seseorang ke dalam perasaan pemahaman yang salah. Misalnya, jika distribusinya sama sekali tidak normal (atau perkiraan yang baik), mengandalkan standar deviasi akan memberi Anda ide buruk tentang bentuk ekor, padahal sebenarnya ekor itulah yang mungkin paling Anda pedulikan dalam statistik. pengujian.
Rex Kerr

@RexKerr Kita hampir tidak dapat menyalahkan standar deviasi jika orang menempatkan interpretasi padanya yang tidak layak. Tapi mari kita menjauh dari normalitas dan mempertimbangkan kelas distribusi unimodal simetris yang jauh lebih luas dengan varian terbatas (misalnya). Kemudian antara 89 dan 100 persen dari distribusi terletak dalam dua standar deviasi. Itu sering sangat berguna untuk diketahui (dan 95% terletak cukup banyak di tengah, jadi tidak pernah lebih dari sekitar 7%); dengan banyak distribusi umum, aspek simetri menurun tidak banyak berubah (misalnya, lihat eksponensial, misalnya) ....
ctd

ctd ... - atau jika kita tidak membuat asumsi-asumsi itu, selalu ada batas Chebyshev biasa yang setidaknya mengatakan sesuatu tentang ekor dan standar deviasi ..
Glen_b -Reinstate Monica

1
@ Gabriel - Ya, maaf, saya ceroboh. (Saya pikir orang bisa tahu mana yang dengan melirik.) Saya telah memperbaiki deskripsi saya.
Rex Kerr

5
=SQRT(SUM(G7:G16*(H7:H16-(SUMPRODUCT(G7:G16,H7:H16)/SUM(G7:G16)))^2)/
     ((COUNTIFS(G7:G16,"<>0")-1)/COUNTIFS(G7:G16,"<>0")*SUM(G7:G16)))

Kolom Gadalah bobot, Kolom Hadalah nilai


Menggunakan Ctrl + Shift + Enter adalah suatu gotcha bagi saya, tetapi ini tampaknya berfungsi sebaliknya.
philipkd

1

halsaya=vsayasayavsaya,
vsaya

μ^=sayahalsayaxsaya,
σ^2=sayahalsaya(xsaya-μ^)2

0
Option Explicit

Function wsdv(vals As Range, wates As Range)
Dim i, xV, xW, y As Integer
Dim wi, xi, WgtAvg, N
Dim sumProd, SUMwi

    sumProd = 0
    SUMwi = 0
    N = vals.Count  ' number of values to determine W Standard Deviation
    xV = vals.Column  ' Column number of first value element
    xW = wates.Column  ' Column number of first weight element
    y = vals.Row - 1  ' Row number of the values and weights

    WgtAvg = WorksheetFunction.SumProduct(vals, wates) / WorksheetFunction.Sum(wates)

    For i = 1 To N  ' step through the elements, calculating the sum of values and the sumproduct
        wi = ActiveSheet.Cells(i + y, xW).Value  ' (i+y, xW) is the cell containing the weight element
        SUMwi = SUMwi + wi
        xi = ActiveSheet.Cells(i + y, xV).Value  ' (i+y, xV) is the cell containing the value element
        sumProd = sumProd + wi * (xi - WgtAvg) ^ 2
    Next i

    wsdv = (sumProd / SUMwi * N / (N - 1)) ^ (1 / 2)  ' output of weighted standard deviation

End Function

2
Selamat datang di situs ini, @ uswer71015. Ini sepertinya hanya kode. Bisakah Anda menambahkan beberapa teks / penjelasan tentang bagaimana kode bekerja & bagaimana ia menjawab pertanyaan?
gung - 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.