วิธีการพล็อตช่วงความเชื่อมั่นใน r


ช่วงความเชื่อมั่น คือช่วงของค่าที่น่าจะมีพารามิเตอร์ประชากรที่มีระดับความเชื่อมั่นที่แน่นอน

บทช่วยสอนนี้จะอธิบายวิธีการสร้างช่วงความเชื่อมั่นสำหรับชุดข้อมูลใน R

ตัวอย่าง: การวางแผนช่วงความเชื่อมั่นใน R

สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน R ซึ่งมี 100 แถวและ 2 คอลัมน์:

 #make this example reproducible
set.seed(0)

#create dataset
x <- rnorm(100)
y <- x*2 + rnorm(100)
df <- data.frame(x = x, y = y)

#view first six rows of dataset
head(df)

           xy
1 1.2629543 3.3077678
2 -0.3262334 -1.4292433
3 1.3297993 2.0436086
4 1.2724293 2.5914389
5 0.4146414 -0.3011029
6 -1.5399500 -2.5031813

ในการสร้างกราฟความสัมพันธ์ระหว่าง x และ y ขั้นแรกเราสามารถติดตั้งแบบจำลองการถดถอยเชิงเส้นได้:

 model <- lm(y ~ x, data = df)

ต่อไป เราสามารถสร้างพล็อตของเส้นการถดถอยเชิงเส้นโดยประมาณโดยใช้ฟังก์ชัน abline() และฟังก์ชัน lines() เพื่อสร้างแถบความเชื่อมั่นจริง:

 #get predicted y values using regression equation
newx <- seq(min(df$x), max(df$x), length.out=100)
preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence')

#create plot of x vs. y, but don't display individual points (type='n') 
plot(y ~ x, data = df, type = 'n')

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[,3], lty = 'dashed', col = 'blue')
lines(newx, preds[,2], lty = 'dashed', col = 'blue') 

พล็อตช่วงความเชื่อมั่นใน R

เส้นสีดำแสดงเส้นการถดถอยเชิงเส้นพอดี ในขณะที่เส้นประสีน้ำเงินสองเส้นแสดงช่วงความเชื่อมั่น

หรือคุณสามารถเติมพื้นที่ระหว่างเส้นช่วงความเชื่อมั่นและเส้นการถดถอยเชิงเส้นโดยประมาณโดยใช้โค้ดต่อไปนี้:

 #create plot of x vs. y
plot(y ~ x, data = df, type = 'n')

#fill in area between regression line and confidence interval
polygon(c(rev(newx), newx), c(rev(preds[,3]), preds[,2]), col = 'grey', border = NA)

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[,3], lty = 'dashed', col = 'blue')
lines(newx, preds[,2], lty = 'dashed', col = 'blue') 

แผนภูมิช่วงความเชื่อมั่นใน R

นี่คือรหัสที่สมบูรณ์ตั้งแต่ต้นจนจบ:

 #make this example reproducible
set.seed(0)

#create dataset
x <- rnorm(100)
y <- x*2 + rnorm(100)
df <- data.frame(x = x, y = y)

#fit linear regression model
model <- lm(y ~ x, data = df)

#get predicted y values using regression equation
newx <- seq(min(df$x), max(df$x), length.out=100)
preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence')

#create plot of x vs. y
plot(y ~ x, data = df, type = 'n')

#fill in area between regression line and confidence interval
polygon(c(rev(newx), newx), c(rev(preds[,3]), preds[,2]), col = 'grey', border = NA)

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[,3], lty = 'dashed', col = 'blue')
lines(newx, preds[,2], lty = 'dashed', col = 'blue')

แหล่งข้อมูลเพิ่มเติม

ช่วงความเชื่อมั่นคืออะไร?
วิธีใช้ฟังก์ชัน abline() ใน R เพื่อเพิ่มเส้นตรงลงในแปลง

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *