当サイトでも以前紹介させていただいた、有料にてIQテストを受けることができるサイト https://international-iq-test.com/ ですが、記事自体がサイト内でも人気のようですので、追加の調査をしてみました。
信憑性と言うと少し大げさですが、実際にどういった方式でIQを算出しているのか、結果として提示されるIQはどれほど信用に値する数値なのか、気になったため調べてみました。
ちなみに紹介記事はこちらです。
調査概要
国際IQテストのサイトトップページでは、直近20件のテストを受けた方の結果がリアルタイムで掲載されています。
Pythonのスクリプトでそれらの結果を定点観測し、ある程度のデータが溜まった時点で解析するという方法をとりました。
取得したデータを元に、
- どういった方式でIQの値を算出しているのか?
- 分布は適切なのか?
などを推測・解析していきたいと思います。
調査に使ったスクリプト紹介
今回の調査はPythonのスクレイピングと、統計解析用のライブラリを使いました。あんまり興味のない方は読み飛ばしてください。
データの取得
import requests from bs4 import BeautifulSoup import pandas as pd from pathlib import Path # データの取得からデータフレーム化まで url = "https://international-iq-test.com/ja" res = requests.get(url) soup = BeautifulSoup(res.content, "lxml") results = soup.find(class_="results") countries = [tag["title"] for tag in results('img')] usernames = [tag.string for tag in results(class_='username')] iq_score = [tag.string for tag in results('b')] datetimes = [tag.string for tag in results.select('.col-xs-12.res > div:last-child')] df = pd.DataFrame({ "country": countries, "name": usernames, "IQ": iq_score, "datetime": datetimes }) # データフレーム化ここまで # 取得したデータをCSVとして保存する this_path = Path(__file__).parent file_path = this_path / 'data' file_name = 'data.csv' Path(file_path).mkdir(parents=True, exist_ok=True) # すでに取得した分のデータがあれば追記保存 if (Path(file_path) / file_name).exists(): old_df = pd.read_csv(file_path / file_name) else: old_df = pd.DataFrame() save_df = pd.concat([df, old_df]) save_df.drop_duplicates(keep='first', inplace=True) #重複削除 save_df.to_csv(file_path / file_name, index=False)
データの定点観測/取得用のソースコードは上記の通りです。
後はこれをサーバーにアップロードして、CRONで10分おきにスクリプトが動作するように設定するとCSVにどんどん受験者の結果データが蓄積されていきます。
https://lets-hack.tech/wp-content/python/international-iq-test/data/data.csv
取得したデータを解析してみる
とりあえず、取得したデータを解析するためのスクリプトの下準備です。
import pandas as pd import matplotlib.pyplot as plt import requests from scipy import stats import io url = "https://lets-hack.tech/wp-content/python/international-iq-test/data/data.csv" res = requests.get(url) csv = io.StringIO(res.content.decode('utf-8')) df = pd.read_csv(csv) df.drop_duplicates(inplace=True) df.reset_index(drop=True, inplace=True) length = len(df.IQ)
理想的なIQの出現率と視覚化
現代で広くIQとして認識されている数値は2種類存在しますが、今回はDIQと呼ばれる、いわゆる偏差値に近い計算の方法で算出されていると仮定します。
100を中央値とした標準偏差15として補正した場合のIQの出現率は以下の様なグラフとなります。
スクリプト例は下記。
ideal_model = stats.norm.rvs(loc=100, scale=15, size=length) plt.hist(ideal_model, bins=100)
正規分布する100を中央値、標準偏差15としたランダムな値を生成して、それを視覚化したものです。要するに理想的な形をとるダミーデータですね。
縦軸に出現回数、横軸にIQを取っていて、100から離れるにしたがって出現数がきれいに下がっていく様子が直感的に分かるかと思います。
ついでに中央値、平均値、最小値、最大値、歪度、尖度、シャピロウィルク検定もやっときます。
pd.Series(ideal_model).median() Out: 99.96870648199513 # 中央値 pd.Series(ideal_model).mean() Out: 99.50565534193794 # 平均値 pd.Series(ideal_model).min() Out: 55.87989191742147 # 最小値 pd.Series(ideal_model).max() Out: 151.80232766777902 # 最大値 pd.Series(ideal_model).skew() Out: 0.019438853075768286 # 歪度 pd.Series(ideal_model).kurt() Out: 0.13524388481050442 # 尖度 stats.shapiro(ideal_model) # シャピロウィルク検定 Out: (0.9978461265563965, 0.45649024844169617) # 右がP値
最大値くらいまでは意味が分かる方が大半かと思いますが、歪度、尖度、シャピロウィルク検定は中々聞くことが少ないかと思いますので、軽く解説。
- 歪度
出現の左右対称性。0に近いほど中央値を境に対称な出現率であり、正の値に伸びるほど右に伸びていると判断できる。 - 尖度
0(または3)を基準としたグラフの尖り方。基準である正規分布の尖度よりも大きければ分布は尖っており、小さければ緩やかな分布である。 - シャピロウィルク検定
そのデータの分布が「正規分布である」かどうかを調べるための便利な公式。P値が0.05を超えるとそのデータは「正規分布である」と言ってもよいことになる。
ぶっちゃけ、シャピロウィルク検定の中身に関しては僕もほぼわかってません(笑)
ただ、この関数があるので、数字の意味さえ読めれば特に分かる必要性がありませんね。
先人の英知、プライスレス。
国際IQテストのIQ出現率を視覚化
実際に国際IQテストのサイトから取得したデータを元に、理想の出現率を視覚化したのと同じようにやってみます。
iq = df.IQ plt.hist(iq, bins=100)
理想の形と比べるとかなり歪であることがパッと見で分かります。
ただ一応100付近を中心とした山型にはなっていますね。
iq.median() Out: 106.0 # 中央値 iq.mean() Out: 107.76266666666666 # 平均値 iq.min() Out: 70 # 最小値 iq.max() Out: 142 # 最大値 iq.skew() Out: 0.15267723119210513 # 歪度 iq.kurt() Out: -0.8438411191891304 # 尖度 stats.shapiro(iq) # シャピロウィルク検定 Out: (0.9795734286308289, 9.900694486475459e-09) # 右がP値
シャピロウィルク検定によると、正規性は認められないという結論になります。
ダミー(理想)データと実データを重ねてみる
データのサンプルの件数は両者とも750件です。ブルーが理想値のダミーデータ、オレンジが実際に測定されたIQの出現回数です。
こうしてみるとそこそこ重なっているような気もしますが、実際のデータはIQ120付近が理想値よりあからさまに突出して多いこと、逆に80以下、142以上の出現を切って捨てたかのようになくなっていることが目につきますね。
分析と考察
ここからは推測を含む部分が多くなります。
まず国際IQテストの結果を取得したデータを見る限り、「正規性は認められない」と言う結論になるかと思います。
では、それをもって直ちに「このテストが信用に値しないのか」と言われれば僕が考える答えは「No」です。
国際IQテストのIQの算出法について
IQの算出法に関してですが、オンラインでのIQテストのアプリケーションをデザインする際の算出方法としては2パターンが考えられるかと思います。
- 実際のオンラインテスト受験者の得点をもとにIQを割り出す。
- 事前に十分な量のサンプル受験者データを用意しておき、そのデータをもとに受験者のIQを算出する。
つまり、事前に準備したデータからIQを割り出すか、リアルタイム算出するか、という2通りです。
前者の方式であれば、出現するIQはキレイに正規分布に従いますので、見た目のIQ出現率自体は非常にそれらしいものになると思います。
ただ、この方式をオンラインのIQテストで実施してしまうと、いくつかの致命的な問題が出てきます。
- 2回目以降の受験者もデータに含めてしまう可能性がある。
- 問題が外部に漏れた時に、答えを知った状態参加した受験者のデータも計算に含めてしまうことになる。
- 受験したタイミングで測定される(測定された)IQが後々変わる可能性がある。(母集団が変化するため)
このように最終的に算出されたIQの出現率自体は整いますが、内容としては非常にアンフェアなものになる可能性が高いです。
ですので、国際IQテストでの算出方法は後者であると考えるのが普通かなと思います。
明らかにデータが偏っている点に関して
実際のIQデータに関して、グラフを見れば明らかですが、115以降の高IQ値の出現率が非常に高くなっている点、80未満と142以上が切って捨てたかのように出現率が低くなっている点が少し不自然に感じる方も多いでしょう。
IQ142以上が出現していない点
なだらかに出現率が下がっているのは見て取れますが、IQ 142を境に出現が0になります。
ダミーのデータでもIQ 150以上が2件ほど出現している点を考えてもこれは明らかに不自然です。
この点に関しては IQ 142 がこのテストにおける最高計測値である可能性が非常に高いです。
このテストの問題数は40問。仮に全問正解者(または全問不正解者)がいた場合は、その人のIQはこのテストでは計測不能となります。
この部分に関しては最高計測値が原因であるという推測でほぼほぼ間違いないと思います。
IQ 80以下が極端に少なくIQ 115以上が多い点
この部分に関してはあくまで推測の域を出ませんが、テスト自体に何かがあると言うよりは、このテストの受験者側に偏りがある可能性が考えられます。
- ネットでIQテストを受けるようなタイプの人(しかも有料)がそもそも高いIQを持っている可能性が高い?
- テストの問題を解き終わってから料金を催促されるため、テストの結果にある程度自信がなければ、お金を払ってまで結果を見たいと言う人が少ない可能性が高い?
- SNSとかで「俺すげぇ」したいために、2回目以降の受験をしている可能性がある。
あくまでサイト上に掲載されるIQのスコアは「お金を払った人のもの」です。(5ユーロですが)
この時点で、結果のデータにそこそこのバイアスがかかる事は容易に予測できるかと思います。
少し難しい言葉で「生存バイアス」と言ったりもします。
受講者に対するヨイショをする意図があるのであれば、そもそも100以下のIQとか出現してるのが不自然ですし、サイト側からしてみれば、もう金は払ってもらってるわけですから結果の公開時点で無理にヨイショする必要は一切ないわけです。
収益に影響しませんからね(笑)
ちなみに中央値、平均値がIQ 106 ~ IQ 107くらいですので、高い方に偏っているのは明らかですね。
加えてテスト自体に時間制限がないことも中央値・平均値を引き上げている要因になっているかもしれません。
結論
以上のことを踏まえて、僕の感想としては「意外とちゃんとしてそう」という事です。(あくまで個人の見解です)
そもそも100以下のIQも結構な割合で算出されるようですので、テスト自体の意図的な「よいしょ」はあまり感じませんね。
慎重で、じっくり考えこんで時間を十分にかける方は5~10ポイントほど高いIQが表示される可能性が高いと思いますので、より正確な値を知りたければ受験時に自身で制限時間を設けたりするのもイイかもしれません。
40問ですので制限時間40分くらいが妥当でしょうか。
おそらくですが、最高計測値付近のIQが出た方なら結構な割合でMensa受かるんじゃないでしょうか。
MensaのリミットはSD15でIQ130という基準のようですので、このテストで10ポイントもその基準をオーバーしていれば十二分に受かる可能性はあると思います。
もちろん受講二回目とか、一日考え込んでテストやり切ったとかなら流石に論外ですが。
やや高めのIQが表示される可能性は制限時間の件もあり、否定は出来ませんが、このテストで悪いIQが出た方が逆に他のIQテストで高得点だったみたいなケースはかなり考えにくいかと思います。
自身で意図的に有利な結果が出るような操作をしなければ比較的他のテストなんかで得られる数値と近い値、もしくはそれ以上の信憑性のある数値は得られそうな気がします。
コメント
コメント一覧 (9件)
時間制限がないのは時間でもIQ値を測っているからではないでしょうか?正直なところ国際IQテストの内容はよく見れば容易に解けると思います。
なので、タイムアタック制にすることで如何に早く読解出来るかを測っているのではないかと私は思います。
かもしれませんね。
国際IQテスト自体が有料なので、ビジネス的な側面で時間無制限になってる気がしなくもないですが・・・(笑)
Brain Metrics Initiative. All rights reserved.ってとこが主催しているThe BMI Certified IQ Test(ttps://www.test-iq.org※冒頭h落としてあります)なんですが、ここも20ドル支払ってIQ教えてもらうタイプのサイトなようです
設問は20問程度
…ちょっとテストやってみたんですが、こういうTESTやりなれてる勢からしたらそうとうぬるい(?)感じがする
しかもちょっと時間おいたら今だと25%オフだよ~みたいなアラートウインドウが出て、それに従ってやってみると内容が全く同じの20問、ええ…意味あるの…?
よいしょしてお金稼ぐタイプのIQテストなのかなって思いました…。
ちょっとやってみましたが、確かに難易度は劇低ですね(笑)
余りにも簡単すぎてお金払って結果は見てないんですが、
この難易度で20問だとスウェーデンメンサのテスト以下の精度かなと体感的に思います。
私は一年前にこのテストを受けて、145と出ましたから、142が上限ではないですよ。その時の結果には、人口の上位0.13%です。741人に一人の出現率です、と書いてありました。
そうなんですね。
でしたら今回の計測のタイミングでたまたまそのレベルの得点を撮った方がいらっしゃらなかっただけっぽいです。
このテストでIQスコア142でしたがわからない問題が数問ありました。
測定尺度の限界は興味のあるところです。
しかし今更ながら、この記事面白い!
思い返せば今まで自分が話してて楽しいと感じるのはIQ高そうな人が多かったことに気付きました。ある意味孤独。。
145が出たという情報もコメントでいただいたので、まだもう少し上まで測れるのかもしれません。
データ集めた2日間にそれ以上の受験者がいなかっただけかもしれません。
ここの方々レベルが高い…
自分はこの国際IQテストで117だったので、皆様が凄く羨ましい限りです(笑)
普段私はIQテスト系はやらないのですが、このテストの信憑性が気になったためこちらのサイトにお邪魔しました。
凄く正確という訳ではなくてもある程度は正確なら一度受けてみるのも良いかもですね。友達に紹介してみます!