Selidiki nilai-p dalam uji hipotesis – Beragampengetahuan
Oleh: Blog Bogumił Kamiński
Repost dari:
Hari ini saya berpikir untuk menulis postingan yang mencakup beberapa topik dari statistik.
Saya memutuskan untuk membahas beberapa properti p .nilai dari uji hipotesis.
Posting ditulis di bawah Julia 1.8.5, Distributions.jl 0.25.80,
HypothesisTests.jl 0.10.11, UnicodePlots.jl 3.3.4.
Mari kita asumsikan bahwa kita memiliki beberapa hipotesis, sebut saja H0,
yang menurut kami benar. Sekarang pertimbangkan bahwa kami memiliki beberapa statistik t,
memiliki distribusi kita dapat menghitung dengan asumsi itu H0 itu benar.
Untuk sampel data tertentu, kami menghitung nilai statistik dan menyatakannya
nilai ini sebagai t.
Kami siap mendefinisikan p .nilaiitu adalah probabilitas untuk mendapatkan
Nilai dari t Statistik setidaknya sama ekstrimnya dengan hasilnya t sebenarnya
diamati, dengan asumsi bahwa H0 benar.
Biarkan saya memberi Anda contoh sederhana. Misalkan kita memiliki beberapa data yang kita
dengan asumsi bahwa itu berasal dari distribusi normal dengan rata-rata yang diketahui dan tidak diketahui
varians sama dengan v=1. Kami ingin menguji H0 berhipotesis bahwa rata-rata dari
distribusi nol, bertentangan dengan asumsi bahwa rata-rata tidak sama
ke 0. Kami mengujinya dengan mengambil a n=9 contoh elemen data dan kalkulator
itu berarti. Asumsikan bahwa ini berarti m=1. Dalam hal ini nilai dari
statistik t dihitung dengan menggunakan rumus t=m/sqrt(v/n)=1/sqrt(1/9)=3. Kata-kata
statistik matematika kita tahu bahwa distribusi statistik t Di dalam
kasus ini normal dengan rata-rata 0 dan varians 1. Jadi kita bisa menghitungnya
probabilitas melihat nilai paling ekstrim (dalam hal nilai absolut) seperti
diamati adalah 2*(1-F(|t|)) = 2*(1-F(3)) ≈ 0.0027. Nomor ini milik kita
p .nilai. Dalam hal ini, karena probabilitas ini rendah, kemungkinan besar kami akan melakukannya
menyimpulkan bahwa data tidak mendukung hipotesis kami bahwa rata-rata adalah sama
ke 0.
Perhatikan bahwa dalam rumus F adalah fungsi distribusi kumulatif dari standar
terdistribusi secara normal dan kami mengambil nilai absolut dari t dan gandakan beratnya
ekor distribusi sama dengan dua, karena kita menganggap bahwa kita memperlakukan
penyimpangan positif dan negatif dari 0 adalah maksimum (ini disebut dua sisi
p .nilai).
Kami dapat dengan mudah mendapatkan hasil ini menggunakan JuliaOneSampleZTest Fungsi dari package HypothesisTests.jl adalah sebagai berikut:
julia> using HypothesisTests
julia> m = 1.0
1.0
julia> v = 1.0
1.0
julia> n = 9
9
julia> OneSampleZTest(m, sqrt(v), n)
One sample z-test
-----------------
Population details:
parameter of interest: Mean
value under h_0: 0
point estimate: 1.0
95% confidence interval: (0.3467, 1.653)
Test summary:
outcome with 95% confidence: reject h_0
two-sided p-value: 0.0027
Details:
number of observations: 9
z-statistic: 3.0
population standard error: 0.3333333333333333
Sekarang, pengamatan penting tentang p .nilaimemberikan definisi yang kita miliki
disajikan, itu dihipotesiskan H0 memang benar bahwa distribusi p .nilai Kandil
setuju dengan [0, 1] tentang.
Misalnya, dalam kasus variabel terdistribusi normal kami, kami menganggap ituPV = 2*(1-F(|T|)) terdistribusi secara merata [0, 1] tentang.
Mari kita lakukan perhitungan cepat untuk memverifikasi bahwa memang demikian. Anggapanx adalah dari [0, 1] Periode:
Pr(PV ≤ x) = Pr(2*(1-F(|T|)) ≤ x) = Pr(F⁻¹(1-x/2) ≤ |T|)
Kami sekarang mencatat bahwa ini dapat ditulis ulang sebagai berikut:
Pr(F⁻¹(1-x/2) ≤ T) + Pr(T ≤ -F⁻¹(1-x/2))
Perhatikan bahwa kedua probabilitas ini sama karena distribusi normalnya simetris
sekitar 0 sehingga kita dapat menyederhanakannya menjadi:
2 * (1 - Pr(T ≤ F⁻¹(1-x/2))) = 2 * (1 - F(F⁻¹(1-x/2))) = 2 * x/2 = x
Jadi, secara ringkas, kita dapatkan Pr(PV ≤ x) = x Karena x kata-kata [0, 1] jarak, jadi
dalam hal ini sungguh p .nilai memiliki distribusi yang merata.
Di atas, kami menyatakan bahwa distribusi p .nilai Karena OneSampleZTest
konsisten pada [0, 1] tentang. Mari kita uji dengan simulasi. Untuk ini
kami akan mengambil sampel 9 elemen dari kelipatan yang terdistribusi normal
kali dan memeriksa apakah distribusi p .nilai.
julia> using Random
julia> using Statistics
julia> using UnicodePlots
julia> pvalues = [pvalue(OneSampleZTest(mean(randn(9)), 1.0, 9))
for _ in 1:10^6]
1000000-element Vector{Float64}:
0.1327790631059239
0.37168172133050215
0.9877013474897027
0.24068935009108738
0.24685639345198623
0.19113260388855702
0.1806265110576506
0.3482022041517382
⋮
0.33776890104210877
0.141776876179674
0.38354782746729116
0.9866784609861702
0.9219832724792354
0.9768708734987599
0.44377261216567804
julia> histogram(pvalues)
┌ ┐
[0.0 , 0.05) ┤███████████████████████████████▋ 49 921
[0.05, 0.1 ) ┤███████████████████████████████▊ 50 228
[0.1 , 0.15) ┤███████████████████████████████▋ 49 908
[0.15, 0.2 ) ┤████████████████████████████████ 50 451
[0.2 , 0.25) ┤███████████████████████████████▌ 49 655
[0.25, 0.3 ) ┤███████████████████████████████▋ 49 907
[0.3 , 0.35) ┤███████████████████████████████▋ 49 867
[0.35, 0.4 ) ┤███████████████████████████████▊ 50 303
[0.4 , 0.45) ┤███████████████████████████████▋ 49 827
[0.45, 0.5 ) ┤███████████████████████████████▋ 49 980
[0.5 , 0.55) ┤███████████████████████████████▋ 49 855
[0.55, 0.6 ) ┤███████████████████████████████▌ 49 569
[0.6 , 0.65) ┤███████████████████████████████▋ 49 798
[0.65, 0.7 ) ┤███████████████████████████████▊ 50 143
[0.7 , 0.75) ┤███████████████████████████████▉ 50 406
[0.75, 0.8 ) ┤███████████████████████████████▋ 49 923
[0.8 , 0.85) ┤███████████████████████████████▋ 50 048
[0.85, 0.9 ) ┤███████████████████████████████▋ 49 835
[0.9 , 0.95) ┤███████████████████████████████▊ 50 249
[0.95, 1.0 ) ┤███████████████████████████████▊ 50 127
└ ┘
Frequency
Mari kita uji lebih lanjut apa yang terjadi jika data kita tidak memenuhi asumsi
milik kita H0:
julia> pvalues =[pvalue(OneSampleZTest(mean(randn(9))).+11.09))for_in1:10^6]1000000-element Vector{Float64}: 0.0002078548349486422 7.323288709478623e-5 0.4909823219717196 0.12532336793818022 0.05461767301064137663 0.003270513361517393 0.0007748069139344607 0.06833756938048707 8.815311836419556 e-5 4.057178851779267e-5 0.000801919865655273 julia> histogram(pvalues) ┌ ┐[pvalue(OneSampleZTest(mean(randn(9)).+11.09))for_in1:10^6]1000000-element Vector{Float64}: 0.8036193847656249 0.8036193847656249 0.8036193847656249 0.8036193847656249 0.8036193847656249 0.45449829101562506 0.8036193847656249 0.8036193847656249 ⋮ 0.8036193847656249 0.21011352539062514 0.8036193847656249 0.21011352539062514 0.21011352539062514 0.45449829101562506 0.8036193847656249 julia> histogram(pvalues) ┌ ┐
[0.0 , 0.05) ┤███████████████████████████████ 850 737
[0.05, 0.1 ) ┤██▎ 61 462
[0.1 , 0.15) ┤█▏ 28 540
[0.15, 0.2 ) ┤▋ 16 534
[0.2 , 0.25) ┤▍ 10 542
[0.25, 0.3 ) ┤▍ 7 367
[0.3 , 0.35) ┤▎ 5 366
[0.35, 0.4 ) ┤▎ 4 022
[0.4 , 0.45) ┤▎ 3 058
[0.45, 0.5 ) ┤▎ 2 329
[0.5 , 0.55) ┤▏ 1 908
[0.55, 0.6 ) ┤▏ 1 551
[0.6 , 0.65) ┤▏ 1 319
[0.65, 0.7 ) ┤▏ 1 091
[0.7 , 0.75) ┤▏ 940
[0.75, 0.8 ) ┤▏ 753
[0.8 , 0.85) ┤▏ 715
[0.85, 0.9 ) ┤▏ 619
[0.9 , 0.95) ┤▏ 601
[0.95, 1.0 ) ┤▏ 546
└ ┘
Frequency
Indeed, as expected, we see that in this case we are getting low p-value most
of the time.
The fact that p-value has uniform distribution under H0 is a crucial
property. Unfortunately, not all hypothesis tests can ensure this.
A typical issue with p-value distribution is encountered when we work with
discrete distributions. Let me give you an example.
Now assume we sample data from a binomial distribution with sample sizen=16 and success probability p=0.5. Let us repeat the simulation that we
performed above using this distribution:
julia> using Distributions
julia> pvalues = [pvalue(BinomialTest(rand(Binomial(16, 0.5)), 16, 0.5))
for _ in 1:10^6]
1000000-element Vector{Float64}: 0.21011352539062514 0.07681274414062504 0.8036193847656249 0.8036193847656249 1.0 0.8036193847656249 0.8036193847656249 0.45449829101562506 ⋮ 0.8036193847656249 0.45449829101562506 0.8036193847656249 0.8036193847656249 0.21011352539062514 1.0 1.0 julia> histogram(pvalues) ┌ ┐[0.00.05)┤██▉31600[0.050.1)┤██████▌68901[0.10.15)┤0[0.150.2)┤0[0.20.25)┤█████████████▊6
[0.0 , 0.05) ┤█▊ 21 491
[0.05, 0.1 ) ┤████▉ 55 699
[0.1 , 0.15) ┤ 0
[0.15, 0.2 ) ┤ 0
[0.2 , 0.25) ┤███████████▊ 133 700
[0.25, 0.3 ) ┤ 0
[0.3 , 0.35) ┤ 0
[0.35, 0.4 ) ┤ 0
[0.4 , 0.45) ┤ 0
[0.45, 0.5 ) ┤█████████████████████▋ 244 309
[0.5 , 0.55) ┤ 0
[0.55, 0.6 ) ┤ 0
[0.6 , 0.65) ┤ 0
[0.65, 0.7 ) ┤ 0
[0.7 , 0.75) ┤ 0
[0.75, 0.8 ) ┤ 0
[0.8 , 0.85) ┤███████████████████████████████ 348 485
[0.85, 0.9 ) ┤ 0
[0.9 , 0.95) ┤ 0
[0.95, 1.0 ) ┤ 0
[1.0 , 1.05) ┤█████████████████▌ 196 316
└ ┘
Frequency
Now we can see that clearly the distribution is not uniform. For example, under
the standard 0.05 cut-off threshold for p-value we would expect to have
50,000 observations in [0.0, 0.05) bin, but we got only 21,491. Is this a
problem? Well, it is. Assume that we generate the data with p=0.55, but assume
the H0 probability is 0.5. We get:
julia> pvalues = [pvalue(BinomialTest(rand(Binomial(16, 0.55)), 16, 0.5))
for _ in 1:10^6]
50[03035)┤0[03504)┤0[04045)┤0[04505)┤████████████████████▏243914[05055)┤0[05506)┤0[0.60.65)┤0[0.650.7)┤0[0.70.75)┤0[0.750.8)┤0[0.70.75)┤0[0.750.8)┤0[0.8)┤███████████████████████████████328306[0.850.9██████████6]. 9500[0.951.0)┤0[1.01.05)┤█████████████████▎181315└┘Frekuensi
Jadi kita dapat melihat bahwa meskipun saya menghasilkan data dari distribusi lain
dari yang dihipotesiskan H0 Anda akan menolak hipotesis ini dengan 0.05 ambang
lebih jarang daripada yang Anda harapkan di bawah H0.
Bias dalam distribusi p .nilai dapat memiliki konsekuensi serius ketika
inferensi statistik dalam praktek. Misalnya, dalam sebuah artikel yang saya tulis bersama
beberapa waktu yang lalu kami menunjukkan milik p .nilai untuk berbagai uji statistik
digunakan dalam backtesting VaR (pemeriksaan yang sangat umum dalam aplikasi keuangan). jika kamu
Ingin mempelajari detailnya, Anda dapat menemukannya di sini.
Terkait
Software Terbaru Saat Ini
Aplikasi yang sedang trend saat ini
object oriented programming, programming language, programming adalah, web programming, belajar programming, tournament software, software, software adalah, contoh software, apa itu software, pengertian software, aplikasi, aplikasi penghasil uang, aplikasi bokep, aplikasi video, programming
#Selidiki #nilaip #dalam #uji #hipotesis