**TAIEX.ML.s14_Box Plot.箱型圖

**TAIEX.ML.s14_Box Plot.箱型圖

Box Plot Matrix Map 提供了對各變數數據分佈的直觀了解,有助於識別數據中的異常值和分佈特徵。通過觀察這些圖表,可以為後續的數據清洗和特徵工程提供參考。

Box Plot Matrix Map 圖表顯示了每個變數的數據分佈情況,其中包括中位數、四分位數範圍、異常值等信息。以下是圖表的摘要說明:

  1. 數據範圍
    • 大多數變數的數據範圍較小,集中在較低的數值區間。
    • VolumeOBV 的數據範圍明顯大於其他變數,因此在圖表中顯示時有較大的差異。
  2. 異常值(Outliers)
    • 幾乎所有變數都存在異常值,這些異常值顯示為圖表中的小圓點。
    • 特別是 VolumeBand WidthMACD LineSignal Line 等變數,異常值較多且分佈較廣。
  3. 變數分佈
    • 部分變數(如 Aroon UpAroon DownRSI7RSI14 等)顯示出較為均勻的分佈。
    • 其他變數(如 CCI20CMO14Market ReturnStock Return 等)則顯示出一定程度的偏態,數據集中在某些區間。
  4. 比較分析
    • 多數技術指標變數如 MA7MA21MA50MA100 等,數據範圍和分佈比較相似,顯示出技術指標之間的相關性。
    • 市場回報(Market Return)和個股回報(Stock Return)的分佈類似,顯示出它們的相關性。

import math
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 加載數據
file_path = '/content/drive/My Drive/MSCI_Taiwan_30_data_with_OBV.csv'
data = pd.read_csv(file_path)

# 排除非數值列
numeric_data = data.drop(columns=['Date', 'ST_Code', 'ST_Name'])

# 獲取變數列表
variables = numeric_data.columns

# 設置圖表大小
num_vars = len(variables)
num_cols = 4
num_rows = math.ceil(num_vars / num_cols)
fig, axes = plt.subplots(num_rows, num_cols, figsize=(20, num_rows * 5))

# 繪製每個變數的 Box Plot
for i, var in enumerate(variables):
    row = i // num_cols
    col = i % num_cols
    sns.boxplot(data=numeric_data[var], ax=axes[row, col])
    axes[row, col].set_title(f'Box Plot of {var}')
    axes[row, col].set_xlabel(var)
    axes[row, col].set_ylabel('Value')

# 調整佈局
plt.tight_layout()
plt.show()