アカデミー編集ノミネート作品は作品賞受賞しやすいのか(片側検定実践)

スポンサーリンク
映画関連

はじめに

有名な「エッセンシャル思考」という本に以下のような一節がある。

1981年以来、作品賞をとった作品はほぼ例外なく編集賞にもノミネートされているのだ。実際、編集賞と両方ノミネートされている場合、3分の2は作品賞を獲得しているほどである。

これは、

「編集賞と作品賞の両方にノミネートされた作品は、高い確率で作品賞を獲得する、と主張してよいか?」

ということです。

そのことを示すためには片側検定(右片側検定)を実施します。

編集賞ノミネート作品は作品賞を獲りやすいのか

まずは、編集賞ノミネートを獲った作品が作品賞がどれだけ獲れるかを調べてみます。

コードは以下のようにしています。

import pandas as pd
from statsmodels.stats.proportion import proportions_ztest

# BEST PICTURE と FILM EDITING のデータ抽出
df_bestpic = df[df["category"].str.upper().str.contains("BEST PICTURE")]
df_edit = df[df["category"].str.upper().str.contains("FILM EDITING")]

# 編集賞ノミネート作品
edit_nominees = df_edit["film"].dropna().unique()

n = len(edit_nominees)

# 編集賞ノミネート作品のうち、作品賞受賞数
bp_winners_set = set(df_bestpic[df_bestpic["winner"] == True]["film"].dropna())
x = sum(film in bp_winners_set for film in edit_nominees)
p_hat = x / n

# 全体の BEST PICTURE 勝率
p0 = df_bestpic["winner"].mean()

# 検定
z_smaller, p_smaller = proportions_ztest(count=x, nobs=n, value=p0, alternative="smaller")

print("編集賞ノミネート作品数 n =", n)
print("作品賞受賞数 x =", x)
print("観測割合 p̂ =", p_hat)
print("全体作品賞勝率 p0 =", p0)
print("\n--- 検定結果(p < p0) ---")
print("Z =", z_smaller, ", p-value =", p_smaller)

結果は以下のようになりました。

編集賞ノミネート作品数 n = 427
作品賞受賞数 x = 52
観測割合 p̂ = 0.12177985948477751
全体作品賞勝率 p0 = 0.17417417417417416

--- 検定結果(p < p0) ---
Z = -3.310614943710103 , p-value = 0.00046545605264210297

あれ??3分の2も無かったです。

何なら12.2%ぐらいしかなかったです。

編集賞ノミネート作品数は427本あり、そのなかで、作品賞受賞数は52本あります。

全体作品賞勝率はp_0 = 0.174(約 17.4%)になります。

これは作品賞ノミネート作品の中から、作品賞受賞する確率です。

これらの値から、結果の値は以下になります。

  • Z値(-3.31)
    • 標本の割合が期待値(全体勝率)より低い方向にどれだけ離れているかを示す指標です。
    • 負の値は編集賞ノミネート作品の勝率は全体より低いことを示しています。(実際、12.2 < 17.4で低いですし)
  • p値(0.000465 ≈ 0.046%)
    • この値は「帰無仮説(編集賞ノミネート作品も作品賞を受賞する確率は全体と同じ)」のもとで、観測された 12.2% という結果が起こる確率です。
    • 非常に小さいので、帰無仮説は棄却されますので、編集賞ノミネート作品が作品賞を受賞しやすいとは言えないです。

期待した結果が得られませんでした、、、。

編集賞受賞作品は作品賞を獲りやすいのか

念のため、

import pandas as pd
from statsmodels.stats.proportion import proportions_ztest

# --- 1. BEST PICTURE と FILM EDITING が存在する年を特定 ---
years_bp = set(df[df["category"].str.upper().str.contains("BEST PICTURE")]["year_ceremony"])
years_edit = set(df[df["category"].str.upper().str.contains("FILM EDITING")]["year_ceremony"])

valid_years = years_bp & years_edit  # 両方ある年

# --- 2. その年だけ抽出 ---
df_valid = df[df["year_ceremony"].isin(valid_years)]

# --- 3. カテゴリごとに抽出 ---
df_bestpic = df_valid[df_valid["category"].str.upper().str.contains("BEST PICTURE")]
df_edit = df_valid[df_valid["category"].str.upper().str.contains("FILM EDITING")]

# --- 4. 編集賞を受賞した作品(ユニーク) ---
edit_winners = df_edit[df_edit["winner"] == True]["film"].dropna().unique()

# --- 5. 編集賞受賞作品の中で作品賞受賞した数 ---
bp_winners_set = set(df_bestpic[df_bestpic["winner"] == True]["film"].dropna())
x = sum(film in bp_winners_set for film in edit_winners)
n = len(edit_winners)
p_hat = x / n

# --- 6. 全体の BEST PICTURE 候補の勝率(全体ベースライン) ---
p0 = df_bestpic["winner"].mean()

# --- 7. 検定 ---
z, p = proportions_ztest(count=x, nobs=n, value=p0, alternative="larger")

print("編集賞受賞作品数 n =", n)
print("作品賞受賞数 x =", x)
print("観測割合 p̂ =", p_hat)
print("全体作品賞勝率 p0 =", p0)
print("\n--- 検定結果(p > p0) ---")
print("Z =", z, ", p-value =", p)

結果は以下のようになりました。

編集賞受賞作品数 n = 58
作品賞受賞数 x = 24
観測割合 p̂ = 0.41379310344827586
全体作品賞勝率 p0 = 0.17417417417417416

--- 検定結果(p > p0) ---
Z = 3.705254421364054 , p-value = 0.00010558932545846104

各値は以下の意味になります。

  • 編集賞を受賞した映画の数:n=58
  • その中で作品賞も受賞した映画の数:x=24
  • 編集賞受賞作品の中で作品賞を受賞した割合:0.414(24/58 ≈ 41.4%)
  • 作品賞にノミネートされた映画全体が受賞する割合: p0=0.174

検定結果の値は以下になります。

  • Z値: 3.705
    • Z値が大きいほど「差が偶然では起こりにくい」ことを示すので高め。
  • p値: 0.000106
    • 今回の場合、帰無仮説(編集賞を受賞した作品が作品賞を受賞する確率は全体と同じ)の下で、観測された「編集賞受賞作品の中で作品賞を受賞した割合」以上の差が起こる確率を表す。
    • 0.05(有意水準5%)より小さいので、統計的に有意。

以上から、編集賞を受賞した作品の約41%が作品賞も受賞しているのに対し、全体では17%程度しか受賞していませんし、p-value が非常に小さいので、「偶然による差」とは考えにくいです。

「編集賞を受賞した作品は他の作品に比べて作品賞を受賞しやすい」と言えます。

最後に

「編集賞と作品賞がノミネートされた作品は作品賞を受賞しやすい」とは言えないが、

「編集賞を受賞した作品が作品賞をノミネートされていたら、その作品は作品賞を受賞しやすい」と言えます。

タイトルとURLをコピーしました