Xem xét mối tương quan có ý nghĩa thống kê trong phân tích định lượng
· 2 min read
Trong phân tích dữ liệu định lượng, việc xác định mối tương quan giữa các biến số là rất quan trọng. Bài viết này hướng dẫn cách tính toán ma trận tương quan kèm theo giá trị p-value để đánh giá ý nghĩa thống kê của mối quan hệ giữa các biến.
1. Nhập các thư viện cần thiết
import pandas as pd
import numpy as np
import plotly.figure_factory as ff
from scipy.stats import pearsonr
2. Chuẩn bị dữ liệu
Chúng ta chỉ lấy các cột số liệu để tính toán mối tương quan:
# Chỉ lấy các cột số liệu để tính toán
numeric_data = data[['open', 'high', 'low', 'close', 'volume']]
# Xử lý các giá trị NaN nếu có
numeric_data = numeric_data.dropna()
3. Tính toán ma trận tương quan và giá trị p-value
# Tính toán ma trận tương quan
correlation_matrix = numeric_data.corr()
# Khởi tạo ma trận p-value
p_values = np.zeros_like(correlation_matrix)
# Tính toán p-values
for row in range(len(correlation_matrix)):
for col in range(len(correlation_matrix)):
if row != col:
_, p_value = pearsonr(numeric_data.iloc[:, row], numeric_data.iloc[:, col])
p_values[row, col] = p_value
else:
p_values[row, col] = np.nan # Giữ NaN cho đường chéo chính
# Tạo DataFrame cho p-value
p_value_df = pd.DataFrame(p_values, columns=correlation_matrix.columns, index=correlation_matrix.index)
4. Kết hợp ma trận tương quan và p-value
# Tạo annotation cho heatmap
annotations = correlation_matrix.round(2).astype(str) + "\n(p=" + p_value_df.round(3).astype(str) + ")"
5. Vẽ biểu đồ Heatmap với Plotly
# Tạo danh sách annotation
z_text = annotations.values.tolist()
# Vẽ biểu đồ tương quan với Plotly
fig = ff.create_annotated_heatmap(
z=correlation_matrix.values,
x=correlation_matrix.columns.tolist(),
y=correlation_matrix.index.tolist(),
annotation_text=z_text,
colorscale='RdBu',
showscale=True
)
# Cập nhật tiêu đề
fig.update_layout(title='Ma trận tương quan với p-value', width=800, height=800)
# Hiển thị biểu đồ
fig.show()
6. Kết luận
- Ma trận tương quan giúp chúng ta hiểu được mức độ liên quan giữa các biến số.
- Giá trị p-value giúp đánh giá ý nghĩa thống kê của mối tương quan.
- Nếu p-value nhỏ hơn 0.05, mối tương quan có ý nghĩa thống kê.
Với cách tiếp cận trên, chúng ta có thể xác định những mối tương quan quan trọng trong dữ liệu và đưa ra quyết định phân tích phù hợp hơn.