Definition:Multivariate Data
多変量データ(multivariate data)とは、1つの観測対象に対して複数の変数(variable)が同時に観測されたデータである。
例えば、ある人物について次のような情報が存在するとき、
| 身長 | 体重 | 年齢 | 血圧 |
|---|---|---|---|
| 170 cm | 65 kg | 35 歳 | 120 mmHg |
身長・体重・年齢・血圧という複数の変数が同時に記録されており、このようなデータを多変量データという。
単変量データ(univariate data)・二変量データ(bivariate data)との対比を以下に示す。
| データの種類 | 変数の数 | 例 |
|---|---|---|
| 単変量データ(univariate) | 1 | 身長のみ |
| 二変量データ(bivariate) | 2 | 身長・体重 |
| 多変量データ(multivariate) | 3以上 | 身長・体重・年齢・血圧 |
多変量データの本質は、変数同士の関係性を同時に扱う点にある。
単変量データでは、平均・分散・ヒストグラムなど、1変数内部の性質しか扱えない。しかし多変量データでは、
のような、変数間の依存関係・共変動・構造を扱うことができる。
多変量データでは、各観測対象を列ベクトルとして表現する。\[\mathbf{x} = (x_1,\, x_2,\, \dots,\, x_p)^\top \in \mathbb{R}^p\]
例えば身長・体重・年齢・血圧の4変数の場合は、\[\mathbf{x} = (170,\; 65,\; 35,\; 120)^\top\]
は4次元ベクトルである。
観測対象が $n$ 個存在する場合、多変量データは $n \times p$ のデータ行列として表現される。\[X = \begin{pmatrix}x_{11} & x_{12} & \cdots & x_{1p} \\x_{21} & x_{22} & \cdots & x_{2p} \\\vdots & \vdots & \ddots & \vdots \\x_{n1} & x_{n2} & \cdots & x_{np}\end{pmatrix} \in \mathbb{R}^{n \times p}\]
多変量データでは、変数の型(尺度)が分析手法の選択に直結するため極めて重要である。
| 種類 | 説明 | 例 | 数学演算 |
|---|---|---|---|
| 数量変数(Quantitative) | 数値として測定される | 身長・体重・気温 | 可 |
| 質的変数(Qualitative) | カテゴリを表す | 性別・血液型・国籍 | 不可 |
スティーブンス(S. S. Stevens, 1946)の尺度分類が広く用いられる。
対象を区別するだけの尺度。順序・差・比率の概念を持たない。
例:血液型、性別、国籍
順序のみが有意味。差は定義できない。
例:満足度評価、学年、ランク
差に意味がある。ただし真のゼロが存在しないため比率は無意味。真のゼロが存在しないとは、数値の「0」が「全く存在しないこと(無)」を意味していない、ということ。摂氏0度は、単に「水が凍る点」という基準点にすぎない。0はあくまで人間が決めた、便宜上のスタート地点。
例:摂氏温度、西暦年
真のゼロを持ち、差・比率ともに有意味。
例:長さ、重量、時間、年収
| 尺度 | 区別 | 順序 | 差 | 比率 | 例 |
|---|---|---|---|---|---|
| 名義尺度 | ○ | × | × | × | 血液型・性別 |
| 順序尺度 | ○ | ○ | × | × | 満足度・ランク |
| 間隔尺度 | ○ | ○ | ○ | × | 摂氏温度・西暦 |
| 比率尺度 | ○ | ○ | ○ | ○ | 身長・重量・年収 |
import pandas as pd
df = pd.DataFrame({
"age": [20, 30, 40],
"income": [300, 500, 800],
"gender": pd.Categorical(["M", "F", "M"])
})
データの確認・前処理
df.info() # 型・メモリ情報
df.describe() # 基本統計量
df.isnull().sum() # 列ごとの欠損数
df.dropna() # 欠損行の除去
df.fillna(df.mean(numeric_only=True)) # 平均値補完
df <- data.frame(
age = c(20, 30, 40),
income = c(300, 500, 800),
gender = factor(c("M", "F", "M"))
)
データの確認・前処理
str(df) # 構造確認(型・次元)
summary(df) # 基本統計量
is.na(df) # 欠損値の位置確認
na.omit(df) # 欠損行の除去
scale(df[, c("age","income")]) # 数値列のみ標準化
Mathematics is the language with which God has written the universe.