2026年版データサイエンスのための統計学:確率論、仮説検定、面接対策

データサイエンス面接に必要な統計学を解説。確率分布、仮説検定、p値の解釈、A/Bテスト、そして2026年の技術面接で頻出する質問と回答例を詳しく紹介します。

2026年版データサイエンスのための統計学:確率論、仮説検定、面接対策

統計学は、データサイエンスのあらゆる職務を支える数学的基盤です。Google、Meta、Netflixなどの企業の面接官が統計的推論をテストするのは、モデルを構築できる候補者と、そのモデルがなぜ機能するかを理解している候補者を区別するためです。

面接官が求めるもの

統計学の質問は3つの能力を評価します:ビジネス課題を統計的フレームワークに変換する能力、データに適した検定を選択する能力、そして結論を過度に一般化せずに結果を解釈する能力です。

データサイエンティストが必ず知っておくべき確率分布

確率分布は、データポイントが取りうる値にどのように分散するかを記述します。面接官が確率分布の習熟を期待するのは、サンプリング、A/Bテスト、モデルの前提条件の基盤となるためです。

正規分布(ガウス分布)はあらゆる場面で現れます:測定誤差、身長、テストスコアなど。その釣鐘型曲線は平均を中心とし、データの68%が1標準偏差以内に、95%が2標準偏差以内に収まります。サンプルサイズが30を超えると、中心極限定理により、母集団の形状に関係なく標本平均は正規分布に従うことが保証されます。

二項分布は成功/失敗の試行をモデル化します。クリック率、コンバージョンイベント、品質検査の合否などが二項分布に従います。n回の試行で成功確率pの場合、期待値はnp、分散はnp(1-p)となります。

ポアソン分布は固定された間隔での稀なイベントの発生回数をカウントします:1分あたりのWebサイト訪問数、バッチあたりの欠陥数、1時間あたりの電話件数など。単一のパラメータλが平均と分散の両方を表します。イベントが一定の平均レートで独立して発生する場合、ポアソン分布が適合します。

python
# distributions_demo.py
import numpy as np
from scipy import stats

# Normal: customer spend follows N(μ=50, σ=15)
normal_samples = stats.norm.rvs(loc=50, scale=15, size=1000)
prob_above_80 = 1 - stats.norm.cdf(80, loc=50, scale=15)  # P(X > 80)

# Binomial: 100 users, 5% conversion rate
binom_samples = stats.binom.rvs(n=100, p=0.05, size=1000)
prob_at_least_10 = 1 - stats.binom.cdf(9, n=100, p=0.05)  # P(X >= 10)

# Poisson: 3 support tickets per hour on average
poisson_samples = stats.poisson.rvs(mu=3, size=1000)
prob_zero_tickets = stats.poisson.pmf(0, mu=3)  # P(X = 0)

これら3つの分布で、ほとんどの実務的なシナリオに対応できます。面接官は特定のビジネスコンテキストにどの分布が適合するかをよく質問するため、実際の問題を適切なモデルにマッピングする練習が重要です。

仮説検定:A/Bテストの背後にあるフレームワーク

仮説検定は、データから意思決定を行うための形式的な構造を提供します。このフレームワークは、効果や差がないことを表す帰無仮説(H₀)と、実験が検出しようとしているものを表す対立仮説(H₁)から始まります。

典型的なA/Bテストの帰無仮説は「新機能はコンバージョン率に影響を与えない」と述べます。対立仮説は効果が存在すると主張します。検定は、帰無仮説が真である場合に観測されたデータがどの程度起こりやすいかを計算します。

p値はこの可能性を定量化します。p値が0.03ということは、帰無仮説が成り立つ場合にこれほど極端な結果が得られる確率が3%であることを意味します。p値が有意水準(一般的にα = 0.05)を下回ると、帰無仮説は棄却されます。

python
# ab_test_analysis.py
import numpy as np
from scipy import stats

# A/B test data: control vs treatment conversion rates
control_conversions = 120
control_visitors = 2000
treatment_conversions = 145
treatment_visitors = 2000

# Proportions
p_control = control_conversions / control_visitors  # 0.060
p_treatment = treatment_conversions / treatment_visitors  # 0.0725

# Pooled proportion under null hypothesis
p_pooled = (control_conversions + treatment_conversions) / (control_visitors + treatment_visitors)

# Standard error
se = np.sqrt(p_pooled * (1 - p_pooled) * (1/control_visitors + 1/treatment_visitors))

# Z-statistic
z_stat = (p_treatment - p_control) / se

# Two-tailed p-value
p_value = 2 * (1 - stats.norm.cdf(abs(z_stat)))

print(f"Z-statistic: {z_stat:.3f}")  # Z-statistic: 1.681
print(f"P-value: {p_value:.4f}")  # P-value: 0.0928

p値が0.0928の場合、この検定はα = 0.05で帰無仮説を棄却しません。観測された差はランダムな変動かもしれません。統計的有意性に達するには、より多くのデータまたはより大きな効果量が必要です。

第1種・第2種の過誤:面接官が探る統計的トレードオフ

統計的検定は2種類の過誤のバランスをとります。第1種の過誤(偽陽性)は、真の帰無仮説を棄却した場合に発生します。第2種の過誤(偽陰性)は、偽の帰無仮説を棄却できなかった場合に発生します。

有意水準αは第1種の過誤の確率を直接制御します。α = 0.05を設定することは、5%の偽陽性の可能性を受け入れることを意味します。αを0.01に下げると偽陽性は減少しますが、偽陰性は増加します。

検出力(1 - β)は、偽の帰無仮説を正しく棄却する確率を測定します。検出力は効果量、サンプルサイズ、有意水準に依存します。業界標準では80%の検出力を目標とし、これは実際の効果を見逃す確率が20%であることを意味します。

面接の落とし穴

候補者はしばしば「有意差なし」と「差が存在しない」を混同します。帰無仮説を棄却できなかったことは、帰無仮説が真であることを証明するものではありません。検定には、小さいが実際の効果を検出する検出力が不足している可能性があります。

サンプルサイズの計算はこれらの懸念のバランスをとります。コンバージョン率の2%向上(5%から7%へ)を目標とし、検出力80%、α = 0.05でのA/Bテストの場合:

python
# sample_size_calculation.py
from statsmodels.stats.power import zt_ind_solve_power

# Baseline conversion: 5%, expected lift: 2 percentage points
baseline = 0.05
expected = 0.07
effect_size = (expected - baseline) / np.sqrt(baseline * (1 - baseline))  # Cohen's h

# Required sample size per group
n_per_group = zt_ind_solve_power(
    effect_size=effect_size,
    alpha=0.05,
    power=0.80,
    alternative='two-sided'
)

print(f"Sample size per group: {int(np.ceil(n_per_group))}")  # ~1,570 per group

検出力不足の検定は、現実的な効果を検出できない実験を実行することでリソースを浪費します。

信頼区間:不確実性の定量化

95%信頼区間の意味は:同じサンプリングプロセスを何度も繰り返した場合、構築された区間の95%が真のパラメータを含むということです。信頼区間は点推定だけよりも不確実性をより良く伝えます。

母集団分散が既知の平均の場合、区間はz分布を使用します。サンプルサイズが小さいか分散が未知の場合、t分布が適用されます。t分布は正規分布よりも裾が重く、追加の不確実性を考慮したより広い区間を生成します。

python
# confidence_intervals.py
import numpy as np
from scipy import stats

# Sample data: response times in milliseconds
response_times = np.array([245, 312, 278, 299, 256, 334, 287, 301, 265, 289])

n = len(response_times)
mean = np.mean(response_times)  # 286.6
std_err = stats.sem(response_times)  # Standard error of the mean

# 95% confidence interval using t-distribution (df = n-1)
t_critical = stats.t.ppf(0.975, df=n-1)
margin_of_error = t_critical * std_err

ci_lower = mean - margin_of_error
ci_upper = mean + margin_of_error

print(f"Mean: {mean:.1f}ms")  # Mean: 286.6ms
print(f"95% CI: [{ci_lower:.1f}, {ci_upper:.1f}]ms")  # 95% CI: [265.4, 307.8]ms

区間が狭いほど、推定値がより正確であることを示します。サンプルサイズが精度を左右します:nを4倍にすると誤差の範囲は半分になります。

Data Science & MLの面接対策はできていますか?

インタラクティブなシミュレーター、flashcards、技術テストで練習しましょう。

ベイズ統計と頻度主義:統計哲学に関する面接質問

面接官は時に、競合する統計的パラダイムの理解を探ります。頻度主義統計は確率を長期的な頻度として扱います:パラメータは固定されており、データは繰り返しの実験で変動します。p値と信頼区間はこの伝統から来ています。

ベイズ統計は確率を信念の度合いとして扱います:事前知識がデータと組み合わさって事後の信念を生み出します。このフレームワークではドメインの専門知識を組み込むことができ、パラメータについての確率的な記述を直接生成します。

A/Bテストでは、ステークホルダーが実際に尋ねる質問「トリートメントBがトリートメントAを上回る確率はどれくらいか?」に答えられるため、ベイズ手法の採用が増えています。これは「差がない場合にこのデータがどれほど驚くべきか?」という質問とは異なります。

python
# bayesian_ab_test.py
import numpy as np
from scipy import stats

# Prior: Beta(1, 1) = uniform prior for conversion rate
# Posterior: Beta(alpha + successes, beta + failures)

control_successes, control_failures = 120, 1880
treatment_successes, treatment_failures = 145, 1855

# Posterior distributions
posterior_control = stats.beta(1 + control_successes, 1 + control_failures)
posterior_treatment = stats.beta(1 + treatment_successes, 1 + treatment_failures)

# Monte Carlo estimation: P(treatment > control)
samples_control = posterior_control.rvs(100000)
samples_treatment = posterior_treatment.rvs(100000)
prob_treatment_better = np.mean(samples_treatment > samples_control)

print(f"P(treatment > control): {prob_treatment_better:.2%}")  # ~95%

ベイズ的な結果は直接的に伝わります:「トリートメントのコンバージョン率がコントロール率を超える確率は95%です。」頻度主義の結果はより慎重な解釈が必要です。

統計的推論に関する頻出面接質問

これらの質問は、テック企業のデータサイエンス面接で頻繁に出題されます。それぞれが特定の統計的概念をテストします。

「中心極限定理を説明し、なぜ重要なのか述べてください。」

中心極限定理(CLT)は、任意の母集団(有限分散を持つ)からの標本平均がサンプルサイズの増加に伴って正規分布に近づくと述べています。これが重要なのは、仮説検定における正規性の仮定が、元の分布に関係なく大規模サンプルで成り立つためです。サンプルサイズ30以上で通常は十分です。

「p-hackingとは何か、どのように防止しますか?」

p-hackingは、有意性が見つかるまで複数の仮説をテストしたり、結果が有意になった時点でデータ収集を停止したりすることで、偽陽性率を水増しします。防止策:分析計画を事前登録する、多重比較の補正(ボンフェローニ、FDR)を適用する、データ収集前にサンプルサイズを設定する。

「t検定とマン・ホイットニーU検定をいつ使い分けますか?」

t検定は正規分布データ(またはCLTによる大規模サンプル)を仮定し、平均を比較します。マン・ホイットニーU検定は正規性の仮定なしに分布を比較するノンパラメトリックな代替手法です。明らかに非正規な小さなサンプルや順序尺度の測定値を比較する場合にマン・ホイットニーを使用します。

「A/Bテストで多重比較をどのように扱いますか?」

複数のバリアントをテストすると第1種の過誤が増大します。α = 0.05で20回の比較を行うと、少なくとも1つの偽陽性が発生する確率は60%を超えます。ボンフェローニ補正はαを検定数で割ります。ベンジャミニ・ホッホベルク法は、ボンフェローニより検出力を維持しながら偽発見率を制御します。

シンプソンのパラドックス:人気の面接トピック

シンプソンのパラドックスは、集計データの傾向がサブグループレベルで逆転する現象です。面接官がこのトピックを好むのは、統計の仕組みだけでなく因果推論をテストするためです。

典型的な例:病院Aは病院Bよりも全体の死亡率が高いですが、病院Aは軽症と重症の両方のケースで死亡率が低いです。このパラドックスは、病院Aがより多くの重症例を治療しており、重症例は病院の質に関係なく死亡率が高いために生じます。

python
# simpsons_paradox.py
import pandas as pd

# Hospital mortality data
data = {
    'Hospital': ['A', 'A', 'B', 'B'],
    'Severity': ['Mild', 'Severe', 'Mild', 'Severe'],
    'Patients': [200, 800, 800, 200],
    'Deaths': [10, 160, 48, 50]
}
df = pd.DataFrame(data)
df['Mortality'] = df['Deaths'] / df['Patients']

# Subgroup mortality
print(df[['Hospital', 'Severity', 'Mortality']])
# Hospital A: Mild 5%, Severe 20%
# Hospital B: Mild 6%, Severe 25%

# Aggregate mortality
agg = df.groupby('Hospital').agg({'Deaths': 'sum', 'Patients': 'sum'})
agg['Mortality'] = agg['Deaths'] / agg['Patients']
print(agg['Mortality'])
# Hospital A: 17%, Hospital B: 9.8%

解決策は交絡変数(重症度)を特定し、サブグループを別々に分析することです。サブグループの割合が異なる場合、集計分析は誤解を招きます。

特徴量エンジニアリングのための統計的概念

統計学の知識は特徴量エンジニアリングを直接向上させます。分布の理解が変換を導き、関係性の理解が特徴量の作成を導きます。

歪度は分布の非対称性を測定します。右に歪んだデータ(収入、価格)は、分布を正規化してモデルのパフォーマンスを向上させる対数変換から恩恵を受けます。左に歪んだデータは二乗または指数変換を使用します。

相関は線形関係を定量化します。ピアソン相関は正規性と線形性を仮定します。スピアマン相関は単調な非線形関係を扱います。高度に相関した特徴量は線形モデルで多重共線性を引き起こすため、通常は一方を削除します。

外れ値は平均と標準偏差に不釣り合いな影響を与えます。ロバスト統計(中央値、四分位範囲)は外れ値の影響を受けにくいです。外れ値がエラーを表すか真の極端な値を表すかによって、削除、キャップ、または変換を決定します。

これらの概念を機械学習モデルに適用する詳細については、特徴量エンジニアリング面接ガイドを参照し、推測統計練習モジュールを探索してください。

今すぐ練習を始めましょう!

面接シミュレーターと技術テストで知識をテストしましょう。

統計学の質問で優秀な候補者を際立たせるもの

データサイエンス面接での統計的能力には、教科書的な定義以上のものが必要です。優秀な候補者は以下の能力を示します:

  • 統計をビジネス成果に結びつける:A/Bテストの結果をp値だけでなく、収益への影響やユーザーエンゲージメントの観点で表現する
  • 前提条件を知る:すべての検定には条件(独立性、正規性、等分散性)があり、候補者はそれらの条件が成り立たない可能性がある場合を述べるべきである
  • 不確実性を定量化する:信頼区間や確信区間のない点推定は、ステークホルダーに信頼性について推測させる
  • 因果関係の限界を認識する:観測データは相関を示すものであり、候補者は因果関係を確立するための実験デザインを明確に述べるべきである
  • 適切な検定を選択する:データの種類(連続か離散か)、サンプルサイズ、研究課題を適切な統計手法にマッチさせる
  • 結果を明確に伝える:統計的な発見を、非技術的なステークホルダーが理解し行動できる実用的な推奨事項に変換する
今日のチャレンジ

Data Science & ML のバグを見つけられますか

実際のコード、隠れたバグ、1日1回。アカウントなしで試せます。

Anthony Fillion-Maillet

執筆

Anthony Fillion-Maillet

SharpSkill 創業者

10 年以上フルスタック開発に携わっています。SharpSkill を運営し、ここで公開される内容に責任を負っています。

2026年8月21日 更新

共有

関連記事