1105_4.3 散布圖

1105_4.3 散布圖
Photo by JProducer / Unsplash

這張圖是基於不同公司的收盤價(Close Price)與 NVIDIA (NVDA) 的收盤價之間的關係進行分析的圖表,具體來說是二項回歸線與散佈圖的結合。每個子圖表示一家公司與 NVIDIA 的股價變化之間的關聯性。

圖表說明:

  1. 橫軸(X 軸):表示該公司的收盤價(例如 TSMC、AMD 等)。
  2. 縱軸(Y 軸):表示 NVIDIA 的收盤價。
  3. 散佈點:每個藍色點代表在特定日期,該公司的收盤價與 NVIDIA 收盤價的關係。
  4. 紅色線條:這是基於數據擬合的二項回歸曲線,它展示了兩家公司股價之間的關係趨勢。二項回歸是一種非線性回歸方法,用來捕捉更複雜的數據模式。

具體觀察:

  1. 整體趨勢
    • 大部分公司的股價與 NVIDIA 的股價之間呈現正相關關係,即當其他公司的股價上升時,NVIDIA 的股價也趨於上升。
    • 紅色的回歸線展示了股價之間的趨勢,例如某些公司與 NVIDIA 的關係可能是近似線性的,其他公司可能顯示出非線性的趨勢。
  2. 個別公司
    • TSMC (台積電)NVIDIA 顯示了非常強的正相關,隨著 TSMC 的股價上升,NVIDIA 的股價也顯著上升。
    • SK hynix (SKH) 與 NVIDIA 的關係顯示出了一個較不尋常的曲線,這可能反映了兩者之間的複雜或不穩定的關聯性,尤其是當 SK hynix 的股價非常高時,NVIDIA 的股價反而保持相對穩定或略有下滑。
    • ARM、AMD、Intel (INTC) 等公司與 NVIDIA 的股價呈現較強的正相關,顯示這些公司的業務或市場表現與 NVIDIA 有著一定程度的聯動性。
  3. 擬合線的形狀
    • ARM、AMD、ASML 等公司的擬合曲線大致為正相關,但隨著價格的增加,關係可能變得更加複雜。
    • SK hynix (SKH) 的回歸線顯示出有些特殊的非線性趨勢,表明它與 NVIDIA 的股價變動關係不是一個簡單的正向關係。
  4. 圖的數量和排列
    • 每個圖表代表 NVIDIA 和另一家半導體公司的收盤價關係。
    • 圖表按 4x5 的形式排列,展示了 20 家公司的情況,沒有出現多餘的空白圖表。

總結:

這張圖表主要展示了半導體行業中多家公司與 NVIDIA 之間的股價關係。大多數公司與 NVIDIA 之間的關係呈現正相關,尤其是像 TSMC、AMD、ASML 這樣的公司。但也有一些公司(例如 SK hynix)顯示了更為複雜或非線性的股價聯動模式。這些關係可以幫助投資者理解在整個行業中,哪些公司的股價與 NVIDIA 呈現聯動趨勢,哪些公司則表現出相對獨立的模式。

如果你想進一步分析某個具體公司的股價變動趨勢或是了解更多,請隨時告訴我!

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

# 讀取 CSV 文件
df = pd.read_csv('/content/drive/My Drive/Semicon_Analysis/semiconductor_merged_1017.csv')

# 確保日期格式正確
df['Date'] = pd.to_datetime(df['Date'])

# 選擇基準公司 (NVIDIA)
benchmark_company = 'NVDA'
benchmark_close_price = df[df['company_abbr'] == benchmark_company][['Date', 'Close Price_Local']].rename(columns={'Close Price_Local': 'Benchmark Close Price'})

# 選擇其他公司
other_companies = df['company_abbr'].unique().tolist()
other_companies.remove(benchmark_company)

# 只取同一日期的數據,先過濾
filtered_df = df[df['company_abbr'].isin(other_companies)]
close_price_data = filtered_df.pivot_table(index='Date', columns='company_abbr', values='Close Price_Local').reset_index()

# 合併基準公司的收盤價數據
combined_df = pd.merge(benchmark_close_price, close_price_data, on='Date')

# 繪製圖表 - 每行顯示4個圖表
fig, axes = plt.subplots(len(other_companies)//4 + 1, 4, figsize=(20, len(other_companies)//4 * 5))
axes = axes.flatten()

# 繪製散佈圖和二項迴歸線
for i, company in enumerate(other_companies):
    if company in combined_df.columns:
        sns.regplot(x=company, y='Benchmark Close Price', data=combined_df, ax=axes[i], order=2, ci=95, line_kws={"color": "red"})
        axes[i].set_title(f'{company} vs {benchmark_company}')
        axes[i].set_xlabel(f'{company} Close Price')
        axes[i].set_ylabel(f'{benchmark_company} Close Price')

# 隱藏空白的圖
for j in range(i + 1, len(axes)):
    fig.delaxes(axes[j])

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