วิธีการพล็อตการแจกแจงไคสแควร์ใน r ได้อย่างง่ายดาย


ในการสร้างกราฟความหนาแน่นสำหรับการแจกแจงแบบไคสแควร์ใน R เราสามารถใช้ฟังก์ชันต่อไปนี้:

  • dchisq() เพื่อสร้างฟังก์ชันความหนาแน่นของความน่าจะเป็น
  • Curve() เพื่อพล็อตฟังก์ชันความหนาแน่นของความน่าจะเป็น

สิ่งที่เราต้องทำเพื่อสร้างพล็อตคือระบุ องศาอิสระ สำหรับ dchisq() รวมถึงจุด ออก และจุด หลัง สำหรับ curve()

ตัวอย่างเช่น โค้ดต่อไปนี้แสดงวิธีสร้างกราฟความหนาแน่นสำหรับการแจกแจงแบบไคสแควร์ที่มีอิสระ 10 องศา โดยที่แกน x ของกราฟอยู่ระหว่าง 0 ถึง 40:

 curve(dchisq(x, df = 10), from = 0, to = 40)

การแก้ไขแผนผังความหนาแน่น

นอกจากนี้เรายังสามารถแก้ไขกราฟความหนาแน่นได้โดยเพิ่มชื่อเรื่อง เปลี่ยนป้ายกำกับแกน Y เพิ่มความกว้างของเส้น และเปลี่ยนสีเส้น:

 curve(dchisq(x, df = 10), from = 0, to = 40,
      main = 'Chi-Square Distribution (df = 10)', #add title
      ylab = 'Density', #change y-axis label
      lwd = 2, #increase line width to 2
      col = 'steelblue') #change line color to steelblue

เติมพล็อตความหนาแน่น

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

รหัสต่อไปนี้สาธิตวิธีการกรอกส่วนความหนาแน่นของพล็อตสำหรับค่า x ระหว่าง 10 ถึง 40:

 #create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#create vector of x values
x_vector <- seq(10, 40)

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in portion of the density plot from 0 to 40
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

รหัสต่อไปนี้สาธิตวิธีการกรอกส่วนความหนาแน่นของพล็อตสำหรับค่า x ระหว่าง 0 ถึง 10:

 #create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#create vector of x values
x_vector <- seq( 0, 10 )

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in portion of the density plot from 0 to 10
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

รหัสต่อไปนี้แสดงวิธีการกรอกส่วนของกราฟความหนาแน่นสำหรับค่า x นอก จุดศูนย์กลาง 95% ของการแจกแจง:

 #create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#find upper and lower values for middle 95% of distribution
lower95 <- qchisq(.025, 10)
upper95 <- qchisq(.975, 10)

#create vector of x values
x_lower95 <- seq(0, lower95)

#create vector of chi-square density values
p_lower95 <- dchisq(x_lower95, df = 10)

#fill in portion of the density plot from 0 to lower 95% value
polygon(c(x_lower95, rev(x_lower95)), c(p_lower95, rep(0, length(p_lower95))),
        col = adjustcolor('red', alpha=0.3), border = NA)

#create vector of x values
x_upper95 <- seq(upper95, 40)

#create vector of chi-square density values
p_upper95 <- dchisq(x_upper95, df = 10)

#fill in portion of the density plot for upper 95% value to end of plot
polygon(c(x_upper95, rev(x_upper95)), c(p_upper95, rep(0, length(p_upper95))),
        col = adjustcolor('red', alpha=0.3), border = NA)

สุดท้ายนี้ โค้ดต่อไปนี้แสดงวิธีกรอกข้อมูลในส่วนของกราฟความหนาแน่นของค่า x ที่อยู่ ภายใน ค่าส่วนกลาง 95% ของการแจกแจง:

 #create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#find upper and lower values for middle 95% of distribution
lower95 <- qchisq(.025, 10)
upper95 <- qchisq(.975, 10)

#create vector of x values
x_vector <- seq(lower95, upper95)

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in density plot
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

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

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