Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแสดง 95% Confidence Interval ใน Matplotlib

ใช้ plt.fill_between() เติมสีพื้นที่ระหว่าง Upper และ Lower Bound ของ Confidence Interval

ขั้นตอน

  1. ตั้งค่าขนาด Figure
  2. สร้างข้อมูล X, Y
  3. คำนวณ Confidence Interval (ตัวอย่างใช้สูตรง่าย)
  4. Plot เส้นหลัก
  5. เติมสีพื้นที่ CI ด้วย fill_between
  6. แสดงผล

ตัวอย่างโค้ด


from matplotlib import pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.arange(0, 10, 0.05)
y = np.sin(x)

# คำนวณ CI แบบง่าย (ตัวอย่าง)
ci = 0.1 * np.std(y) / np.mean(y)

plt.plot(x, y, color='black', lw=7)

# fill_between: x, lower, upper
plt.fill_between(x, (y-ci), (y+ci), color='blue', alpha=0.5)

plt.show()

การคำนวณ CI ที่ถูกต้องทางสถิติ


import scipy.stats

# สำหรับ Mean CI (t-distribution)
def mean_confidence_interval(data, confidence=0.95):
    n = len(data)
    mean = np.mean(data)
    se = scipy.stats.sem(data)
    h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1)
    return mean, mean-h, mean+h

# สำหรับ Regression Line CI
# ใช้ statsmodels หรือ sklearn

การปรับแต่ง Fill Between


plt.fill_between(x, y_lower, y_upper, 
                 color='blue', alpha=0.3, 
                 label='95% CI',
                 hatch='//', edgecolor='blue')
plt.legend()

ผลลัพธ์

เส้น Sine Wave สีดำหนา พร้อมบริเวณเงาสีฟ้าครึ่งโปร่งแทน 95% CI