論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
ベクトル
Vector
数学基礎線形代数必修

🔖 キーワード索引

💡 結論 📍 文脈 🎨 直感 📐 定義 🔬 記号 🧮 実値 🐍 Python ⚠️ 落とし穴 🌐 関連手法 🔗 関連用語 📚 グループ教材 🗺 概念マップ

💡 30秒で分かる結論

📍 あなたが今見ているもの

ベクトル」は 行列 の前提となる、 数学・統計の最も基礎的な対象です。 SSDSE-B-2026 では、 1 つの都道府県 = 1 本のベクトルとして表現できます。 ベクトルの内積・ノルム・コサイン類似度を理解すると、 「東京と大阪はどれくらい似ているか?」を 数値で 言えるようになります。 本ページでは、 都道府県ベクトルの内積・コサイン類似度を実値で計算しつつ、 ベクトル空間の幾何イメージを身につけます。

前提知識: 中学・高校レベルの平面・空間ベクトル。 次に学ぶ: 行列内積ノルム

🎨 直感で掴む

イメージ 1: 矢印。 2 次元なら $(x, y)$、 3 次元なら $(x,y,z)$。 矢印の始点を原点に置き、 終点が要素の値。 大きさ = 長さ、 向き = 角度。

イメージ 2: 都道府県プロフィール。 東京都 = (人口, 面積, GDP, …) という 110 次元のリスト。 これがそのままベクトル。 47 本の矢印が、 110 次元の空間に並んでいる風景を想像しましょう。

イメージ 3: 類似度。 2 つの矢印のなす角が小さいほど「似ている」。 これがコサイン類似度。 神奈川と埼玉は近い方向を向き、 東京と沖縄は遠い角度を成すと予想できます。

補足: ベクトルは「データ点・特徴量・方向」の 3 つの顔を持ちます。 同じ列ベクトルでも、 観測なのか変数なのか文脈で意味が変わります。

📐 数式による定義

$n$ 次元ベクトル $v$ は、 実数 $v_1, \ldots, v_n$ を縦に並べた要素:

$$ v = \begin{pmatrix} v_1\\ v_2\\ \vdots\\ v_n \end{pmatrix} \in \mathbb{R}^{n} $$

基本演算:

特別なベクトル:

$$ \mathbf{0} = \begin{pmatrix}0\\\vdots\\0\end{pmatrix},\quad e_i = \begin{pmatrix}0\\\vdots\\1\\\vdots\\0\end{pmatrix}\;(i\text{番目だけ}1) $$

$\mathbf{0}$ は零ベクトル、 $e_i$ は標準基底ベクトル。 任意のベクトル $v=\sum_i v_i e_i$。

🔬 記号 → 意味

記号読み方SSDSE での意味
$v$ブイ1 つの都道府県のプロフィール
$\|v\|_2$L2 ノルムプロフィールの「絶対サイズ」
$\|v\|_1$L1 ノルム各要素の絶対値和
$\|v\|_\infty$最大ノルム最大成分の絶対値
$v\cdot w$内積2 都道府県の特徴の合致度
$\cos\theta_{vw}$コサイン類似度$-1\sim 1$ の類似度尺度
$d(v,w)$距離プロフィール差の大きさ
$e_i$基底$i$ 番目だけ 1 の単位ベクトル

🧮 SSDSE-B-2026 で実値計算

3 都道府県(東京・神奈川・沖縄)× 3 変数(総人口・小売販売額・出生率)を取り出し、 標準化してベクトル化します(簡略化のため代表値):

$$ v_{\text{東京}} = \begin{pmatrix}2.91\\3.10\\-1.06\end{pmatrix},\; v_{\text{神奈川}} = \begin{pmatrix}1.88\\1.92\\-0.74\end{pmatrix},\; v_{\text{沖縄}} = \begin{pmatrix}-0.32\\-0.41\\2.05\end{pmatrix} $$

ノルム:

$$ \|v_{\text{東京}}\| = \sqrt{2.91^2 + 3.10^2 + 1.06^2} \approx 4.38 $$ $$ \|v_{\text{神奈川}}\| \approx 2.78,\quad \|v_{\text{沖縄}}\| \approx 2.10 $$

内積とコサイン類似度:

$$ v_{\text{東京}}\cdot v_{\text{神奈川}} = 2.91\cdot 1.88 + 3.10\cdot 1.92 + (-1.06)\cdot(-0.74) \approx 12.20 $$ $$ \cos\theta_{\text{東京-神奈川}} = \frac{12.20}{4.38\cdot 2.78} \approx 1.00 $$ $$ \cos\theta_{\text{東京-沖縄}} = \frac{-3.20}{4.38\cdot 2.10} \approx -0.35 $$

解釈:東京と神奈川は同じ方向(大都市圏 / 出生率低)、 東京と沖縄は反対方向(人口低 / 出生率高)。 ベクトルの幾何が、 そのまま都道府県の「タイプ」を捉えます。

尺度東京-神奈川東京-沖縄神奈川-沖縄
ユークリッド距離1.715.314.36
コサイン類似度+1.00-0.35-0.34
マンハッタン距離2.538.346.79

🐍 Python 実装

例 1: SSDSE-B-2026 で都道府県ベクトルを作る。

import pandas as pd
import numpy as np

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8', skiprows=1)
cols = ['総人口', '年間商品販売額(小売業)', '出生数']
sub  = df.loc[df['都道府県'].isin(['東京都','神奈川県','沖縄県']), ['都道府県'] + cols].reset_index(drop=True)

# 標準化
X = sub[cols].values
X = (X - X.mean(axis=0)) / X.std(axis=0, ddof=0)
v_tokyo, v_kanagawa, v_okinawa = X
print('東京:', v_tokyo)
print('沖縄:', v_okinawa)

例 2: 内積・ノルム・コサイン類似度。

def cos_sim(a, b):
    return float(a @ b / (np.linalg.norm(a) * np.linalg.norm(b)))

print('|東京|:', np.linalg.norm(v_tokyo))
print('東京 . 神奈川:', v_tokyo @ v_kanagawa)
print('cos(東京,神奈川):', cos_sim(v_tokyo, v_kanagawa))
print('cos(東京,沖縄):', cos_sim(v_tokyo, v_okinawa))

例 3: 全 47 都道府県のコサイン類似度行列。

from sklearn.metrics.pairwise import cosine_similarity

num = df.select_dtypes(include='number').fillna(0)
num = (num - num.mean()) / num.std(ddof=0)

sim = cosine_similarity(num.values)            # 47x47
print('shape:', sim.shape)

pref = df['都道府県'].values
i = list(pref).index('東京都')
top = np.argsort(-sim[i])[1:6]
print('東京に似た 5 県:', list(zip(pref[top], sim[i][top].round(3))))

例 4: ベクトルの可視化(2 次元射影)。

import matplotlib.pyplot as plt
from sklearn.decomposition import PCA

p = PCA(n_components=2).fit_transform(num.values)
fig, ax = plt.subplots(figsize=(8, 6))
for i, name in enumerate(pref):
    ax.scatter(p[i, 0], p[i, 1])
    ax.annotate(name, (p[i, 0], p[i, 1]), fontsize=8)
ax.set_xlabel('PC1'); ax.set_ylabel('PC2')
plt.tight_layout(); plt.savefig('vector_pca.png')

⚠️ よくある落とし穴

❌ 標準化なしで内積
人口(百万人)と出生率(%)を素のまま内積しても意味が壊れる。 必ず Z-score へ変換して、 単位を揃えてから内積をとる。
❌ ユークリッド距離だけを盲信
高次元では「次元の呪い」で全ての点が等距離になる現象が出る。 110 次元の都道府県データでは、 コサイン類似度や次元削減後の距離を使うのが安全。
❌ 行ベクトルと列ベクトルの混同
数式では列ベクトルが標準。 NumPy では 1 次元配列 (n,) と 2 次元 (n,1) の挙動が違う。 行列積を含む計算では v.reshape(-1, 1) で揃える。
❌ コサイン類似度を率と勘違い
$\cos\theta = 0.9$ は「90 %」ではない。 角度に翻訳すれば 26°。 距離尺度の感覚を磨くため、 角度に直して比較する習慣をつける。
❌ 欠損のあるベクトルで距離
NaN が 1 個入るだけで距離が NaN に。 補完するか、 欠損のない列だけで距離を計算するかを事前に決める。

🔢 距離・類似度の比較

ベクトル間の「近さ」を測る指標は複数あり、 状況に応じて使い分けが必要です。 SSDSE-B-2026 のような社会経済データでよく使う指標を比較しましょう。

指標定義特徴SSDSE での使い所
ユークリッド L2$\sqrt{\sum(v_i-w_i)^2}$直線距離。 スケール敏感標準化済み県データの k-means
マンハッタン L1$\sum|v_i-w_i|$外れ値に強い所得分布の差を比較
コサイン類似度$\frac{v\cdot w}{\|v\|\|w\|}$大きさ非依存構造の類似(人口規模差を無視)
マハラノビス$\sqrt{(v-w)^\top\Sigma^{-1}(v-w)}$相関を補正多変量の異常検知
チェビシェフ L∞$\max_i|v_i-w_i|$最大差で支配突出変数の検出

🧱 ベクトル演算で組み立てる手法

統計・機械学習の各手法は、 たいてい「ベクトル演算 + 集約」の組み合わせで書けます。 何を何のベクトルにし、 どの演算で集約するかを見抜くと、 各手法の本質が見えてきます。

① 線形回帰

$\hat y_i = x_i^\top \beta$。 観測 $i$ の説明変数ベクトル $x_i$ と係数ベクトル $\beta$ の内積が予測値。 残差ベクトル $r = y - X\beta$ のノルム最小化が最小二乗。

② コサイン類似度ベースの推薦

ユーザーベクトル $u_i$ と他のユーザーベクトル $u_j$ のコサインを取り、 上位 $k$ ユーザーの嗜好を集約。 都道府県でも同じ:「東京に似た 5 県は?」と聞ける。

③ k-means

各都道府県ベクトル $x_i$ を最も近い中心ベクトル $c_k$ に割り当て、 中心を $c_k = \mathrm{mean}\{x_i\}$ で更新。 ベクトルの平均と距離だけで成立。

④ k-NN

新しいベクトル $x_{\text{new}}$ から距離が近い $k$ 個の既知点を見て多数決。 「ある未知の地域に似た都道府県の平均的特徴」を当てる予測器。

⑤ ニューラルネットの 1 ニューロン

$y = \phi(w^\top x + b)$。 重みベクトル $w$ と入力ベクトル $x$ の内積。 これを並列・直列に積み重ねたのが深層学習。

🎯 ベクトルが活きる場面

① 推薦システム

「ユーザー × アイテム」の評価行列を埋め込み、 ユーザーベクトル・アイテムベクトルの内積で嗜好を推定。 都道府県を「ユーザー」、 公共サービスを「アイテム」と読み替えれば、 SSDSE データから「沖縄に似た県」の推薦ができます。

② 自然言語処理

word2vec や BERT は単語を 300〜768 次元のベクトルにする。 同じ「ベクトル空間 + 内積」で意味の近さを測る。 「東京」「大阪」が近いベクトルに、 「東京」「沖縄」が遠いベクトルになるのと同じ構造。

③ 画像処理

CNN の最終層は画像 1 枚を 512 次元のベクトルに変える。 顔認識ではベクトルの距離で本人判定。 SSDSE-B-2026 の都道府県も、 同じ意味で「都道府県ベクトル」と呼んでよい。

④ 異常検知

マハラノビス距離が大きい都道府県を「異常値」として検出。 SSDSE-B では沖縄・東京が外れ値として浮かぶことが多い。

⑤ ベクトル算術

$v_{\text{東京}} - v_{\text{神奈川}}$ は「東京と神奈川の差ベクトル」。 その差を別の県(千葉)に足すと「もし千葉が東京化したら」というシミュレーションになります。 単純ですが、 意味のあるベクトル算術です。

📊 ベクトル演算 早見表

演算数式NumPy意味
$v+w$v + w成分ごとの和
スカラー倍$cv$c * v全要素 $c$ 倍
内積$v\cdot w$v @ wスカラー値の類似度
外積 (3D)$v\times w$np.cross(v,w)直交するベクトル
L2 ノルム$\|v\|_2$np.linalg.norm(v)長さ
L1 ノルム$\|v\|_1$np.linalg.norm(v,1)絶対値和
単位化$\hat v = v/\|v\|$v / np.linalg.norm(v)方向ベクトル
距離$\|v-w\|$np.linalg.norm(v-w)差ベクトルのノルム
射影$\frac{v\cdot w}{\|w\|^2}w$(v@w)/(w@w) * w$v$ を $w$ 方向へ落とす

📐 内積の幾何的解釈

内積 $v\cdot w = \|v\|\|w\|\cos\theta$ は、 ノルム積に角度のコサインをかけたもの。 言い換えれば「$w$ を $v$ 方向に射影した長さに $v$ のノルムをかけた量」。

SSDSE で「東京 ベクトル」「神奈川 ベクトル」をなす角度を $\arccos(0.99) \approx 8^\circ$ と計算すれば、 ほとんど同じ方向だと言える。 一方「東京-沖縄」は約 110°、 逆向きに近い。

射影の応用:回帰の予測値 $\hat y$ は $y$ を $X$ の列空間へ 射影 したベクトル。 残差は射影残差。 つまり最小二乗とは「直交射影」の幾何問題に他なりません。

❓ よくある質問

Q1. なぜベクトルは縦書きが標準なのですか?

行列との互換性のため。 $Ax$(左から行列を作用させる)が縦ベクトルで自然に書ける。 ただし NumPy では 1 次元配列は向きがない(行でも列でもない)扱い。

Q2. ベクトルの「次元」と統計の「自由度」は同じ?

違います。 次元は要素の数、 自由度は独立に動ける成分の数。 平均を引いたあとは次元 $n$、 自由度 $n-1$ になる。

Q3. 単位の違うベクトルでもコサイン類似度は使えますか?

原理的にはノルムで割るので「大きさは打ち消される」。 ただし、 ある成分の単位が極端に大きいと、 その成分が方向を支配してしまうので、 やはり標準化が安全。

Q4. ノルムの種類を選ぶ基準は?

外れ値に強くしたい → L1、 滑らかさ重視 → L2、 最大成分を抑えたい → L∞。 機械学習の正則化(Lasso / Ridge)でも同じ選択基準が出てきます。

Q5. ベクトルの「向き」と「長さ」を切り離すには?

$\hat v = v / \|v\|$ で単位ベクトル化(正規化)。 これでベクトルは方向情報だけを保持。 cos 類似度はまさにこの単位ベクトルどうしの内積です。

🔄 「同じベクトル」でも見方で意味が変わる

SSDSE-B-2026 を行列 $X$ にすると、 行を取れば「都道府県ベクトル」、 列を取れば「変数ベクトル」。 同じ数字が、 ある時は「東京の特徴」、 別の時は「人口の都道府県分布」になります。

取り方ベクトル意味使い所
行ベクトル$X[i,:]$都道府県 $i$ のプロフィール類似度・クラスタリング
列ベクトル$X[:,j]$変数 $j$ の 47 都道府県分布相関・共分散
中心化行$X[i,:] - \bar X$平均からのずれPCA・異常検知
標準化行Z-score単位を揃えた特徴距離計算

📌 ベクトル分析の実務手順

  1. SSDSE-B-2026 を pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8', skiprows=1) で読み込む
  2. 数値列のみを抽出(select_dtypes(include='number')
  3. 欠損処理(除外 or 補完)
  4. 標準化 (X - X.mean()) / X.std(ddof=0)
  5. 各都道府県を 1 つのベクトルとして取り出す
  6. 距離指標を選ぶ(ユークリッド / コサイン / マハラノビス)
  7. 類似度・距離行列を計算 pdist
  8. 近傍検索・クラスタリング・可視化に進む
  9. 結果の解釈で「単位 / 標準化 / 次元数」をレポートに明記

📐 ベクトル空間の公理

「ベクトル空間」と呼べるためには、 和とスカラー倍について以下の規則が成り立つ必要があります。 これらを満たす集合(実は関数の集合や数列の集合も)に対して、 ベクトルの数学が同じように使えます。

  1. 和の閉性 $v+w \in V$、 和の結合・交換律
  2. 零ベクトルの存在 $v+\mathbf{0}=v$
  3. 逆ベクトルの存在 $v+(-v)=\mathbf{0}$
  4. スカラー倍の閉性 $cv \in V$
  5. スカラー倍の分配 $c(v+w)=cv+cw$、 $(c+d)v=cv+dv$
  6. スカラー倍の結合 $(cd)v=c(dv)$
  7. 単位元 $1\cdot v=v$

SSDSE の数値列も $\mathbb{R}^d$ の元なので、 これらの公理が成立。 だからベクトルとして扱える。 ただし「都道府県名」「カテゴリ」はベクトルではないので、 ワンホット化などの前処理が必要です。

📚 ケーススタディ:ベクトルで都道府県を「描く」

問 1. 「東京 = (人口, GDP, 商業面積)」の方向は他の県と比べてどれくらい尖っている?

標準化済みベクトルのノルムが「尖り具合」。 東京のノルムは 12 を超え、 平均的な県(ノルム 3〜4)の 3 倍以上に大きい。 つまり東京は「ベクトル空間の端」に位置する極端点。

問 2. 東北 6 県のベクトル平均を取ると?

$v_{\text{東北}} = \frac{1}{6}(v_{\text{青森}}+\cdots+v_{\text{福島}})$。 平均ベクトルは「典型的な東北プロフィール」。 これと最も近い県は東北外(北陸など)に出ることもあり、 地理的な近さと統計的な近さの違いが面白い。

問 3. 「都市性」軸を定義するには?

東京と沖縄のベクトル差 $v_{\text{東京}} - v_{\text{沖縄}}$ が「都市 - 地方」軸の候補。 これを単位化して全 47 県を投影すれば、 都市性スコアが得られる。 PCA 第 1 軸とよく一致する。

問 4. 47 県をクラスタリングするには?

標準化済みベクトルに対して k-means($k=4$)を実行すると、 「大都市」「地方都市」「人口減地方」「離島・沖縄」のような自然なグループが現れる。 すべてベクトルの距離計算だけで成立する。

🪙 ベクトル周辺のミニ用語集

用語意味
スカラー1 つの数。 0 次元の特殊なベクトル。
単位ベクトルノルム 1 のベクトル。 方向のみを表す。
基底空間を張る独立なベクトルの組。 標準基底 $e_1, e_2, \ldots$。
線形結合$\sum c_i v_i$。 ベクトルの足し算で表せる範囲。
線形独立どれも他の線形結合で表せない関係。
直交内積 0。 統計では「無相関」と対応。
射影あるベクトル方向への成分。 最小二乗の本質。
スパース多くの要素が 0。 Lasso の解はスパース。

🧪 完全実行例:47 都道府県ベクトル空間

SSDSE-B-2026 を読み込んで、 都道府県ベクトルを作り、 ノルム・コサイン類似度・距離行列まで一気に出すサンプル。

import pandas as pd
import numpy as np
from scipy.spatial.distance import pdist, squareform

df  = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8', skiprows=1)
pref = df['都道府県'].values
num  = df.select_dtypes(include='number').fillna(0)

# 標準化済みベクトル群(47 x d)
X = ((num - num.mean()) / num.std(ddof=0)).values

# ノルム(プロフィールの極端さ)
norms = np.linalg.norm(X, axis=1)
print('最も尖った県:', pref[np.argmax(norms)], norms.max().round(2))
print('最も平均的な県:', pref[np.argmin(norms)], norms.min().round(2))

# 距離行列(47 x 47)
D = squareform(pdist(X))
i = list(pref).index('東京都')
nearest = np.argsort(D[i])[1:6]
print('東京に近い 5 県:', list(zip(pref[nearest], D[i][nearest].round(2))))

出力からは「東京に最も近いのは神奈川・大阪・愛知・千葉・埼玉」という首都圏・大都市圏の構造が見えます。 同様に「沖縄に近いのは?」と聞けば、 出生率や産業構造で別の県群が抽出されます。 ベクトル 1 つで「都道府県の特徴」を扱う力強さを実感できるはずです。

🛠 ベクトル計算でハマるポイント

🧷 学習チェックリスト

🗺 概念マップ

ベクトルから始まる線形代数のロードマップ。 矢印 → 行列 → 分解 → 機械学習へと階段を上がっていきます。

[スカラー] → [ベクトル] → [行列] → [テンソル]
                │
                ├─ 内積・ノルム → 類似度・距離 → クラスタリング
                ├─ 線形結合     → 基底・部分空間 → 次元削減 (PCA)
                ├─ 射影         → 回帰 (最小二乗) → 機械学習
                └─ 距離指標     → k-NN / k-means → 推薦・分類

学習順序の推奨:

  1. 本ページでベクトル・内積・ノルムを掌握
  2. 行列 でデータテーブルを扱う
  3. 固有値PCA で構造抽出
  4. k-means でベクトル空間クラスタリング
  5. ニューラルネット で非線形ベクトル変換

📖 さらに学ぶための文献