1. 社会のモデル化:ベクトル空間としての人間集団
社会を、個々の人間(性・ジェンダー・価値観など)が持つ属性ベクトルの集合とみなす。
個人ベクトル p_i = [gender_i, sexuality_i, class_i, race_i, age_i, belief_i, ...]
全体空間:
社会空間 V = span{ e₁, e₂, …, eₙ }
ここで e₁, e₂, … は「社会的属性の基底」。
男性中心主義・異性愛規範などは、特定の基底方向(例:e₁方向)に強く偏っている。
→ 社会が rank=1(一次元的)に偏っている状態を表す。
2. フェミニズム=基底の再定義(Basis Transformation)
フェミニズムは、「男性中心(male-centered)」という主成分軸を
再定義・回転(変換)して、より多次元的に社会を表そうとする運動である。
線形代数学的には:
新しい基底系 E' = P · E
ここで P は変換行列(basis transformation matrix)。
ジェンダー平等とは、「主成分を男性から女性・ノンバイナリ方向へ拡張する」行列変換である。
3. ジェンダー構造のPCA(主成分分析)モデル
データサイエンスでは、社会的データ(賃金・労働時間・政治参加など)を
主成分分析で可視化できる。
主成分分析の式:
Principal Component v₁ = argmax_v (vᵀΣv)
ここで Σ は共分散行列。
男性中心社会では、最大分散(v₁方向)が「男性の行動パターン」に偏る。
フェミニズム的分析は、次のような問いを立てる:
「他の軸(v₂, v₃)に潜む女性・マイノリティの特徴は、なぜ“ノイズ”とされたのか?」
→ これは**小分散成分の意味再評価(de-principalization)**であり、
クィア理論や交差性(インターセクショナリティ)とも接続する。
4. インターセクショナリティ=共分散項の再発見
差別構造は単一変数では説明できない。
性 × 人種 × 階級 などの交差項(共分散項)が決定的な役割を持つ。
数学的には:
不平等指数 O = Σ_i Σ_j w_ij · x_i · x_j
非対角項 wᵢⱼ ≠ 0 が、交差的抑圧(intersectional oppression)を表す。
→ データサイエンスでは、共分散行列の非対角成分が差別構造の「見えない接続線」に相当する。
5. セクシュアリティ=非線形写像(Nonlinear Mapping)
性的指向やアイデンティティは、線形的に分類できない。
連続的・流動的であり、非線形関数として表現される:
identity = f(gender, desire, culture, time)
ここで f は非線形(sigmoid, tanh など)関数。
機械学習ではこのような非線形変換が複雑な人間関係のモデリングに対応する。
6. 抑圧と抵抗のダイナミクス(力学モデル)
社会的変化を微分方程式で近似できる。
dV/dt = -∇L(V)
- L(V):社会的不平等の「損失関数」
- ∇L(V):その勾配(どの方向に変化すべきか)
フェミニズムやクィア運動は、「∂L/∂V ≠ 0」である限り活動を続けるダイナミクス。
社会が平等(∇L=0)に近づくと、安定点(equilibrium)に達する。
7. 可視化例:PCAで見る社会構造の変換
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
# =======================================
# 1. Modeling Society as Vector Space
# =======================================
# Each individual is a vector of social attributes:
# p_i = [gender, sexuality, class, race, age, belief, ...]
# The whole society: V = span{ e1, e2, ..., en }
# Generate synthetic gendered data
np.random.seed(1)
men = np.random.multivariate_normal([2, 2],
[[1.0, 0.8],
[0.8, 1.0]], 50)
women = np.random.multivariate_normal([-2, -1.5],
[[1.0, -0.6],
[-0.6, 1.0]], 50)
data = np.vstack((men, women))
labels = np.array([0]*50 + [1]*50)
# =======================================
# 2. Feminism = Basis Transformation
# =======================================
# In linear algebra:
# New basis E' = P · E
# Feminism redefines the main axis
# from “male-centered” to “multi-dimensional equality.”
# PCA performs such a transformation in data space
pca = PCA(n_components=2)
pca.fit(data)
center = np.mean(data, axis=0)
components = pca.components_
explained = pca.explained_variance_ratio_
# =======================================
# 3. Intersectionality = Covariance Interaction
# =======================================
# Oppression index: O = Σ_i Σ_j w_ij * x_i * x_j
# Non-diagonal terms w_ij ≠ 0 represent intersectional effects.
cov_matrix = np.cov(data.T)
# =======================================
# 4. Visualization: PCA of Social Structure
# =======================================
plt.figure(figsize=(7,6))
plt.scatter(data[:,0], data[:,1], c=labels,
cmap='coolwarm', alpha=0.6, s=70,
label="Individuals (feature vectors)")
# Draw principal axes
plt.quiver(center[0], center[1],
components[0,0], components[0,1],
color='r', scale=3, width=0.015,
label=f"Principal Axis (Social Norm) Var={explained[0]:.2f}")
plt.quiver(center[0], center[1],
components[1,0], components[1,1],
color='b', scale=3, width=0.015,
label=f"Minor Axis (Hidden Diversity) Var={explained[1]:.2f}")
plt.title("Gender & Feminism through PCA — Social Structure Visualization")
plt.xlabel("Economic / Visibility Dimension")
plt.ylabel("Power / Representation Dimension")
plt.legend()
plt.grid(True)
plt.axis("equal")
plt.show()
# =======================================
# 5. Interpretation Summary
# =======================================
print("=== Mathematical Interpretation ===")
print("Principal axis (red): dominant social norm (male-centered direction)")
print("Minor axis (blue): marginalized, hidden diversity (female/queer space)")
print("Covariance matrix:\n", cov_matrix)
print("\nFeminism redefines the basis of social representation —")
print("expanding a rank-1 (one-dimensional) structure into a higher-dimensional inclusive space.")