Skip to main content

Biểu đồ phân phối chuẩn với khoảng tin cậy 95%

· 2 min read

Giới thiệu

Bài viết này hướng dẫn cách vẽ biểu đồ phân phối chuẩn với khoảng tin cậy 95% bằng thư viện Plotly trong Python.

Mã nguồn

import numpy as np
import plotly.graph_objects as go
from scipy.stats import norm

# Xác định các giá trị cho phân phối chuẩn
mu = 0
sigma = 1
x = np.linspace(mu - 4*sigma, mu + 4*sigma, 1000)
y = norm.pdf(x, mu, sigma)

# Tính z-score cho khoảng tin cậy 95%
confidence_level = 0.95
alpha = 1 - confidence_level
z = norm.ppf(1 - alpha / 2)

# Vùng tô màu cho khoảng tin cậy 95%
x_fill = np.linspace(-z, z, 1000)
y_fill = norm.pdf(x_fill, mu, sigma)

# Tạo biểu đồ bằng Plotly
fig = go.Figure()

# Đường phân phối chuẩn
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='Phân phối chuẩn', line=dict(color='blue')))

# Đường z-score
fig.add_trace(go.Scatter(x=[z, z], y=[0, norm.pdf(z, mu, sigma)], mode='lines', name=f'z = {z:.2f}', line=dict(color='red', dash='dash')))
fig.add_trace(go.Scatter(x=[-z, -z], y=[0, norm.pdf(-z, mu, sigma)], mode='lines', name=f'z = -{z:.2f}', line=dict(color='red', dash='dash')))

# Vùng tô màu khoảng tin cậy 95%
fig.add_trace(go.Scatter(x=np.concatenate(([x_fill[0]], x_fill, [x_fill[-1]])),
y=np.concatenate(([0], y_fill, [0])),
fill='tozeroy', fillcolor='rgba(255, 0, 0, 0.3)',
line=dict(color='rgba(255, 0, 0, 0)'),
name='Khoảng tin cậy 95%'))

# Định dạng biểu đồ
fig.update_layout(title='Biểu đồ phân phối chuẩn với khoảng tin cậy 95%',
xaxis_title='Z-score',
yaxis_title='Mật độ xác suất',
template='plotly_white',
xaxis_rangeslider_visible=False,
width=1200, # Đặt chiều rộng lớn hơn
height=600 # Đặt chiều cao hợp lý
)

# Hiển thị biểu đồ
fig.show()

fig.write_html("bieu_do_phan_phoi_chuan.html", full_html=True, include_plotlyjs="cdn")

Kết luận

Mã nguồn trên giúp vẽ biểu đồ phân phối chuẩn với khoảng tin cậy 95% bằng Plotly. Bạn có thể xuất biểu đồ dưới dạng file HTML để dễ dàng chia sẻ hoặc nhúng vào trang web.