渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

男の子のなりたい職業1位が「学者・研究者」になったのは本当に日本人ノーベル賞受賞者のおかげか?(追記あり)

f:id:TJO:20180106153417p:plain

第一生命が例年行っている「大人になったらなりたいもの」つまり子供のなりたい職業ランキングのキャンペーンで、昨年2017年度の男の子のランキングでは「学者・研究者」が15年ぶりに1位になったというのが大きなニュースになっていました。

なのですが、ここで「日本人が3年連続でノーベル賞を受賞したことなどが影響しているのではないか」というコメントがなされている点に個人的に引っかかりました。僕の記憶にある範囲では、過去に日本人のノーベル賞受賞者が多かった時期でも有名なこのキャンペーンで「学者・研究者」が上位になったケースはそれほど多くなかった印象があるからです。


と言っても、ここで印象が云々言っていてもただの床屋政談になるだけなので、試しにきちんとデータセットを用意してきて、可能な限り定量的に分析してみようと思います。

お断り

この記事の末尾の追記1の方が原理的には正しい分析をしているので、そちらも是非ご覧ください。

データソース及びデータセット


「大人になったらなりたいもの」のランキングデータは、1989年までなら主催の第一生命のキャンペーンサイトで見ることができます。ただし最新以外は1-3位のデータがあるだけです。

一方、日本人のノーベル賞受賞者数(特に自然科学分野)についてはWikipedia記事「日本人のノーベル賞受賞者 - Wikipedia」を参照することにします。なお「日本人ノーベル賞受賞者」の定義も基本的にはこちらに従っています。


データセットの作り方ですが、「学者・研究者」の順位を1-3位及び「圏外」(4位以下で2016年以前では記載がないケース)の4段階に分け、生の順位データ及び反転させた順位データの2種類を各年度ごとに作ります。加えて各年度の日本人の自然科学分野ノーベル賞受賞者数をまとめます。これをデータフレームとしてCSVファイルにまとめたものをGitHubに置いておきました。

準備はこれでおしまいです。冒頭のプロット画像は、反転順位データと自然科学分野ノーベル賞受賞数とを単に折れ線プロットしたものです。


順序ロジット単回帰で「日本人ノーベル賞受賞者数」と「学者・研究者の順位」との関係性を探る


やることは単なる順序ロジットの単回帰です。多項ロジットとは微妙に異なり、クラス間に大小の順序がある順序尺度を目的変数とするロジットモデルです。詳細は面倒なのでこの辺の本でも読んで下さい。

一般化線形モデル入門 原著第2版

一般化線形モデル入門 原著第2版

が、僕はこれまできちんと順序ロジットを実践したことがないので、今回はFiS Projectさんの記事「【R】順序ロジットモデルと順序プロビットモデル【比例オッズ】」を参照させていただきました。大変参考になり、有難うございました。


ということで、以下の通りやればおしまいです。ただし下記Rコードをご覧になれば分かる通り、{MASS}と{texreg}の2つのパッケージは先にインストールしておいてください(後者は使ったことがなく今回初めて知りました)。

# データを読み込む
> d <- read.csv('childrens_dream_nobel_laureate.csv', header=T, sep='\t')
> head(d)
  year rank inv_rank laureate
1 1989    4        1        0
2 1990    4        1        0
3 1991    4        1        0
4 1992    4        1        0
5 1993    2        3        0
6 1994    4        1        0

# データを切り出す
> d1 <- d[,3:4]

# 反転させた順序データを、Rの順序インデックス"ordered factor"に直す
> d1$inv_rank <- as.ordered(d1$inv_rank)
> d1$inv_rank
 [1] 1 1 1 1 3 1 1 1 1 3 1 2 1 4 1 2 2 2 3 2 1 2 2 3 2 1 1 3 4
Levels: 1 < 2 < 3 < 4

# 順序ロジットモデルを推定する
> fit <- MASS::polr(inv_rank~laureate, data=d1)
> summary(fit)

Re-fitting to get Hessian

Call:
MASS::polr(formula = inv_rank ~ laureate, data = d1)

Coefficients:
          Value Std. Error t value
laureate 0.1775     0.3114  0.5699

Intercepts:
    Value  Std. Error t value
1|2 0.0405 0.4198     0.0965 
2|3 1.2620 0.4837     2.6090 
3|4 2.7180 0.7628     3.5631 

Residual Deviance: 68.94633 
AIC: 76.94633 

# モデルの有意性をチェックする
> texreg::screenreg(fit)

Re-fitting to get Hessian


=======================
                Model 1
-----------------------
laureate          0.18 
                 (0.31)
-----------------------
AIC              76.95 
BIC              82.42 
Log Likelihood  -34.47 
Deviance         68.95 
Num. obs.        29    
=======================
*** p < 0.001, ** p < 0.01, * p < 0.05

単回帰モデルに過ぎません(つまり順序データとの相関を見ているだけ)し、このモデルの立て方だと「その年の中での影響」つまり同時影響的なものしか見られないことになります。時間遅れも考慮したければVARモデル的な自己回帰モデルが必要ですが、浅学にして順序データでVARモデル的なものを立てる方法は分からず。。。ともあれ、「自然科学分野日本人ノーベル賞受賞者数」は当該年度における「子供のなりたい職業における『学者・研究者』の順位」には有意な影響を与えない、という結果になりました。


個人的にデータを見ていて覚えた感想


2つの変数をプロットしたデータを見れば分かることですが、

  • 1年に最多の4人が受賞した2008年とその翌年で「学者・研究者」の順位が振るわない(3位と圏外)
  • 青色LEDが受賞した2014年とその翌年はどちらも「学者・研究者」が圏外
  • 近年では最も注目を集めた日本人ノーベル賞受賞者である山中伸弥さんが2012年に受賞した際も2位止まりで、翌年は3位に後退している
  • 1993, 1998, 2007年はいずれもしばらく日本人ノーベル賞受賞者が出なかった時期であるにもかかわらず、2位まで上がっている

ということが見て取れるので、時間遅れを考慮したとしてもあまり結果は変わらない、つまり「やはり『学者・研究者』の順位と日本人の自然科学分野ノーベル賞受賞者数とは関係がない」のではないかという感想を個人的には持ちました。


Twitterで流れていた説


まぁこちらの方が説得力があるのではないでしょうか(笑)。幼稚園から小学校の男の子が接するメディアと言えば、仮面ライダーのようなヒーローものなどのTV番組というのが定番だと思いますのでさもありなんという気はします。一つ気になるのは「作文の募集時期が7〜9月」であるのに対して、こちらの天才物理学者仮面ライダー番組の放映が「9月3日から」なので、どこまでその影響があるかははっきりしない点です。これは残念ながら手持ちのデータでは分かりません。


ちなみに全くの余談ですが、上記の「2007年にしばらく日本人ノーベル賞受賞者が出ていなかったのに2位まで上がっている」点についてこんなデータを見つけました。

f:id:TJO:20180106164043p:plain

Googleトレンドの結果によれば、この年の10〜12月に放映されたテレビドラマ『ガリレオ』に関連する検索ボリュームが8月に急上昇しています。おそらく番宣などが注目を集めたのではなかったかと思いますが、いかんせん10年も前のことなので僕自身の記憶が曖昧で。。。


注意点

  • サンプルサイズが小さい(29年分=29行しかない)
  • 単回帰しかしていない、即ち共変量に「各年度の自然科学系分野の日本人ノーベル賞受賞者数」しか置いていない
  • 自己回帰などの方法で時間遅れを評価していない
  • モデルの当てはまり及び汎化性能はチェックしていない

ので、今回の結果はあくまでも手持ちのデータセットのみから見られる切り口の一つを紹介したものに過ぎません。他にも様々な共変量を加えたり、順位ではなく(例えば)個々の選択肢を挙げた子供たちの人数そのものやそのパーセンテージを目的変数として使うなどすれば、もっと精度の高いモデルになる可能性が高いことを指摘しておきます。


追記1(こちらの方が重要)


というご指摘をいただいたので、試しに「前年のノーベル賞受賞者数」で同じことをやってみました。というか、原理的にはこちらのモデルの方が正しいはずです。

> dm <- data.frame(inv_rank=d1$inv_rank[2:29], laureate=d1$laureate[1:28])
> head(dm)
  inv_rank laureate
1        1        0
2        1        0
3        1        0
4        3        0
5        1        0
6        1        0
> fit <- MASS::polr(inv_rank~laureate, dm)
> summary(fit)

Re-fitting to get Hessian

Call:
MASS::polr(formula = inv_rank ~ laureate, data = dm)

Coefficients:
           Value Std. Error t value
laureate -0.1818     0.3529 -0.5152

Intercepts:
    Value   Std. Error t value
1|2 -0.2450  0.4270    -0.5738
2|3  1.0091  0.4682     2.1555
3|4  2.4741  0.7533     3.2844

Residual Deviance: 67.50577 
AIC: 75.50577 
> texreg::screenreg(fit)

Re-fitting to get Hessian


=======================
                Model 1
-----------------------
laureate         -0.18 
                 (0.35)
-----------------------
AIC              75.51 
BIC              80.83 
Log Likelihood  -33.75 
Deviance         67.51 
Num. obs.        28    
=======================
*** p < 0.001, ** p < 0.01, * p < 0.05

やはり有意な関係性なし、即ち「自然科学分野日本人ノーベル賞受賞者数」は翌年度における「子供のなりたい職業における『学者・研究者』の順位」にも有意な影響を与えない結果になりました。というか、有意ではないもののむしろ偏回帰係数が負になっているので、傾向としては「むしろ日本人ノーベル賞受賞者が増えると学者・研究者の順位は下がる」ということになるような。。。

f:id:TJO:20180106174256p:plain

実際に並べてプロットしてみると、確かに負の相関があるかのように見える気がします。。。これは謎ですね。


追記2


とある尊敬する研究者の先生から「たぶん、シン・ゴジラの影響です」というコメントをいただきました(笑)。確かにこれなら2016年7月公開だし。。。と思ったんですが、それなら当該の2016年のランキングがもっと上がっていても良い気はします。