คำนวณช่วงความมั่นใจสำหรับค่าเฉลี่ยของการแจกแจงแบบเบต้า


12

พิจารณาการแจกแจงแบบเบต้าสำหรับชุดคะแนนที่กำหนดใน [0,1] หลังจากคำนวณค่าเฉลี่ยแล้ว:

μ=αα+β

มีวิธีให้ช่วงความมั่นใจรอบ ๆ ค่าเฉลี่ยนี้ไหม


1
โดมินิค - คุณได้กำหนดประชากรเฉลี่ย ช่วงความมั่นใจจะขึ้นอยู่กับการประมาณการของค่าเฉลี่ยนั้น คุณใช้สถิติตัวอย่างอะไร
Glen_b -Reinstate Monica

Glen_b - สวัสดีฉันใช้ชุดการจัดอันดับตามปกติ (ของผลิตภัณฑ์) ในช่วงเวลา [0,1] สิ่งที่ฉันกำลังมองหาคือการประเมินของช่วงรอบหมายถึง (สำหรับระดับความเชื่อมั่นที่กำหนด) ตัวอย่างเช่น: ค่าเฉลี่ย + - 0.02
โดมินิก

2
Dominic: ให้ฉันลองอีกครั้ง คุณไม่รู้ค่าเฉลี่ยประชากร หากคุณต้องการให้การประมาณอยู่ตรงกลางช่วงเวลาของคุณ ( ประมาณ ครึ่งความกว้างเช่นเดียวกับในความคิดเห็นของคุณ) คุณจะต้องมีตัวประมาณค่าสำหรับปริมาณนั้นในลำดับกลางเพื่อวางช่วงเวลารอบ ๆ คุณใช้อะไรเพื่อสิ่งนั้น โอกาสสูงสุด? วิธีช่วงเวลา? อื่น ๆ อีก? ±
Glen_b -Reinstate Monica

Glen_b - ขอบคุณสำหรับความอดทนของคุณ ฉันกำลังจะไปใช้ MLE
โดมินิก

2
โดมินิค; ในกรณีนั้นสำหรับขนาดใหญ่หนึ่งคนจะใช้คุณสมบัติซีมโทติคของตัวประมาณความน่าจะเป็นสูงสุด ประมาณการ ML ของจะ asymptotically กระจายตามปกติที่มีค่าเฉลี่ยและข้อผิดพลาดมาตรฐานที่สามารถคำนวณจากข้อมูลฟิชเชอร์ ในตัวอย่างเล็ก ๆ บางครั้งเราสามารถคำนวณการกระจายตัวของ MLE (แม้ว่าในกรณีของเบต้าฉันดูเหมือนจะจำได้ว่าเป็นเรื่องยาก); อีกทางเลือกหนึ่งคือจำลองการกระจายตัวที่ขนาดตัวอย่างของคุณเพื่อทำความเข้าใจพฤติกรรมของมันที่นั่น μ μnμμ
Glen_b -Reinstate Monica

คำตอบ:


22

ในขณะที่มีวิธีการเฉพาะสำหรับการคำนวณช่วงความมั่นใจสำหรับพารามิเตอร์ในการแจกแจงแบบเบต้าฉันจะอธิบายวิธีการทั่วไปบางอย่างที่สามารถใช้สำหรับ (เกือบ) การแจกแจงทุกประเภทรวมถึงการแจกแจงแบบเบต้าและนำไปใช้อย่างง่ายดายใน R .

ความน่าจะเป็นของโปรไฟล์ช่วงเวลา

เริ่มต้นด้วยการประมาณค่าความน่าจะเป็นสูงสุดพร้อมช่วงความเชื่อมั่นของโปรไฟล์ที่สอดคล้องกัน ก่อนอื่นเราต้องการข้อมูลตัวอย่าง:

# Sample size
n = 10

# Parameters of the beta distribution
alpha = 10
beta = 1.4

# Simulate some data
set.seed(1)
x = rbeta(n, alpha, beta)

# Note that the distribution is not symmetrical
curve(dbeta(x,alpha,beta))

ฟังก์ชันความหนาแน่นน่าจะเป็นสำหรับการแจกแจงเบต้า

ค่าเฉลี่ยจริง / เชิงทฤษฎีคือ

> alpha/(alpha+beta)
0.877193

ตอนนี้เราต้องสร้างฟังก์ชั่นสำหรับการคำนวณฟังก์ชันบันทึกความน่าจะเป็นลบสำหรับตัวอย่างจากการแจกแจงแบบเบต้าโดยมีค่าเฉลี่ยเป็นหนึ่งในพารามิเตอร์ เราสามารถใช้dbeta()ฟังก์ชั่นได้ แต่เนื่องจากสิ่งนี้ไม่ได้ใช้การตั้งค่าที่เกี่ยวข้องกับค่าเฉลี่ยเราจึงต้องแสดงพารามิเตอร์ ( αและβ ) เป็นฟังก์ชันของค่าเฉลี่ยและพารามิเตอร์อื่น ๆ (เช่นส่วนเบี่ยงเบนมาตรฐาน):

# Negative log likelihood for the beta distribution
nloglikbeta = function(mu, sig) {
  alpha = mu^2*(1-mu)/sig^2-mu
  beta = alpha*(1/mu-1)
  -sum(dbeta(x, alpha, beta, log=TRUE))
}

เพื่อหาค่าประมาณความน่าจะเป็นสูงสุดเราสามารถใช้mle()ฟังก์ชันในstats4ไลบรารี:

library(stats4)
est = mle(nloglikbeta, start=list(mu=mean(x), sig=sd(x)))

เพียงเพิกเฉยต่อคำเตือนตอนนี้ พวกเขากำลังที่เกิดจากขั้นตอนวิธีการเพิ่มประสิทธิภาพพยายามค่าที่ไม่ถูกต้องสำหรับพารามิเตอร์ให้ค่าลบสำหรับαและ / หรือβ (เพื่อหลีกเลี่ยงคำเตือนคุณสามารถเพิ่มlowerอาร์กิวเมนต์และเปลี่ยนการเพิ่มประสิทธิภาพที่methodใช้)

ตอนนี้เรามีทั้งค่าประมาณและช่วงความมั่นใจสำหรับพารามิเตอร์สองตัวของเรา:

> est
Call:
mle(minuslogl = nloglikbeta, start = list(mu = mean(x), sig = sd(x)))

Coefficients:
        mu        sig 
0.87304148 0.07129112

> confint(est)
Profiling...
         2.5 %    97.5 %
mu  0.81336555 0.9120350
sig 0.04679421 0.1276783

โปรดทราบว่าตามที่คาดไว้ช่วงความเชื่อมั่นจะไม่สมมาตร:

par(mfrow=c(1,2))
plot(profile(est)) # Profile likelihood plot

พล็อตโอกาสในโปรไฟล์สำหรับการแจกแจงเบต้า

(เส้นสีม่วงแดงด้านนอกที่สองแสดงช่วงความมั่นใจ 95%)

โปรดทราบว่าแม้จะมีการสังเกตเพียง 10 ครั้งเรายังได้รับการประมาณการที่ดีมาก (ช่วงความมั่นใจแคบ)

อีกทางเลือกหนึ่งmle()คือคุณสามารถใช้fitdistr()ฟังก์ชั่นจากMASSแพคเกจ สิ่งนี้จะคำนวณตัวประมาณความน่าจะเป็นสูงสุดและมีความได้เปรียบที่คุณต้องการเพียงแค่ให้ความหนาแน่นไม่ใช่ความน่าจะเป็นบันทึกเชิงลบ แต่ไม่ได้ให้ความมั่นใจในความน่าจะเป็นของคุณ

ตัวเลือกที่ดีกว่าคือmle2()(และฟังก์ชั่นที่เกี่ยวข้อง) จากbbmleแพ็คเกจซึ่งค่อนข้างยืดหยุ่นและทรงพลังกว่าmle()และให้แผนการที่ดีกว่าเล็กน้อย

Bootstrap ช่วงความมั่นใจ

อีกทางเลือกหนึ่งคือการใช้ bootstrap มันใช้งานง่ายมากใน R และคุณไม่จำเป็นต้องมีฟังก์ชั่นความหนาแน่น:

> library(simpleboot)
> x.boot = one.boot(x, mean, R=10^4)
> hist(x.boot)                # Looks good
> boot.ci(x.boot, type="bca") # Confidence interval
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 10000 bootstrap replicates

CALL : 
boot.ci(boot.out = x.boot, type = "bca")

Intervals : 
Level       BCa          
95%   ( 0.8246,  0.9132 )  
Calculations and Intervals on Original Scale

bootstrap มีข้อดีเพิ่มเติมที่ใช้งานได้แม้ว่าข้อมูลของคุณจะไม่ได้มาจากการแจกจ่ายเบต้า

ช่วงความเชื่อมั่นที่ไม่มีอาการ

สำหรับช่วงความเชื่อมั่นในค่าเฉลี่ยเราอย่าลืมช่วงความเชื่อมั่นแบบเชิงเส้นแบบเก่าที่ดีตามทฤษฎีข้อ จำกัด กลาง (และค่าt -distribution) ตราบใดที่เรามีตัวอย่างขนาดใหญ่ (ดังนั้น CLT จะใช้และการกระจายของค่าเฉลี่ยตัวอย่างนั้นประมาณปกติ) หรือค่าขนาดใหญ่ของทั้งαและβ (เพื่อให้การกระจายตัวของเบต้านั้นปกติประมาณ) มันทำงานได้ดี ที่นี่เราไม่มี แต่ช่วงความมั่นใจยังไม่เลว:

> t.test(x)$conf.int
[1] 0.8190565 0.9268349

สำหรับค่าที่น้อยมากของn (และไม่มากเกินไปค่าของพารามิเตอร์ทั้งสอง) ช่วงความเชื่อมั่นของ asymptotic ทำงานได้ดีมาก


ขอบคุณคาร์ล คำถามด่วน: คุณทราบอัลฟ่าและเบต้าอย่างไร ฉันใช้ความแปรปรวนและค่าเฉลี่ยตัวอย่างเพื่อให้ได้อัลฟ่าและเบต้า แต่ฉันคิดว่าฉันอาจสับสนค่าเฉลี่ยตัวอย่างกับค่าเฉลี่ยของประชากรดังนั้นฉันไม่แน่ใจว่าฉันได้ไปในทางที่ถูกต้อง ... ดูความคิดเห็นของ Glen_b ด้านบน .
Dominic

เพื่อกำหนดαและβเป็นฟังก์ชันของค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานฉันเพิ่งกลับค่าฟังก์ชันสำหรับค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานเป็นฟังก์ชั่นของαและβ (แต่ฉันแน่ใจว่าคุณสามารถค้นหาได้บนเน็ต)
Karl Ove Hufthammer

+1 คาร์ล ฉันมีคำถามที่คล้ายกันซึ่งได้รับค่าเฉลี่ยและความแปรปรวนของการแจกแจงแบบเบต้ามีวิธีการประมาณช่วงความมั่นใจของค่าเฉลี่ยหรือไม่ ตัวอย่างเช่นในการแจกแจงแบบปกติเราทำได้อย่างง่ายดาย แต่ฉันไม่รู้ว่าคุณจะทำการแจกแจงแบบเบต้าอย่างไร ฉันตั้งคำถามแต่มันถูกทำเครื่องหมายว่าซ้ำกัน α,β
พยากรณ์

0

ตรวจสอบการถดถอยเบต้า คำแนะนำที่ดีเกี่ยวกับวิธีการใช้Rสามารถพบได้ที่นี่:

http://cran.r-project.org/web/packages/betareg/vignettes/betareg.pdf

อีกวิธีที่ง่ายมากในการสร้างช่วงความมั่นใจคือการใช้วิธีเพิ่มประสิทธิภาพแบบไม่ใช่พารามิเตอร์ Wikipedia มีข้อมูลที่ดี:

http://en.wikipedia.org/wiki/Bootstrapping_%28statistics%29

ยังวิดีโอที่ดีที่นี่:

http://www.youtube.com/watch?v=ZCXg64l9R_4

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.