空飛ぶチンアナゴの統計解析日記

統計解析を嗜むチンアナゴのメモ帳です

SQLの初心者向けの名著


マンガでわかるデータベース | 麻奈, 高橋, 笙子, あづま, トレンドプロ |本 | 通販 | Amazon

安心安定のオーム社さんのマンガでわかるデータベースの教科書。
とてもわかりやすいので本当に初心者でも安心して最後まで完読できます。

とりあえずSQLの環境があって捜査を覚えないといけない人にはオススメです。

そういえばSQLのデータベースを構築する初心者向けの本とかないかしら?
個人的に探しています。

回帰分析初心者用の本

オーム社のマンガでわかるシリーズ*1から回帰分析の本。
単なる線形の単回帰分析から、重回帰分析、ロジスティック回帰分析と基本的な回帰分析がまとまった良作。
とはいえ統計環境を使ってどうこうという内容は含まれていないので、ちょっと物足りないところはあります。

ロジスティック回帰分析はExcelの手にあまるのでやっぱり専用の統計環境がないと説明が大変かなーと思います。

マンガでわかるRとRStudioを用いた一般化線形モデルとか出ないかしら?

オーム社さん宜しくお願いします!

オーム社のマンガでわかるシリーズは安定です

このシリーズは全体的に安定感が高いのでオススメです。
その中でも統計の初心者向けの教科書として個人的にオススメしたいのがこちらの本です。

内容としてはシンプルなので中学生でも読めると思います。
高校レベルの数学から丁寧に復習してくれている印象があるので、折れずに最後まで読むことができます。

折れずに最後まで読みきるのは大事です。

東大の統計学の教科書みたいな本もいいのですが、途中で理解できずに投げ出してしまうことも考えるとあまり最初から難しい本を読むことはオススメしません。
最初の一歩はお手軽なものから。
何事も基本です。

初学者向けの疫学の教科書


基礎から学ぶ 楽しい疫学 第4版 | 中村 好一 |本 | 通販 | Amazon

ド安定の中村好一先生の『基礎から学ぶ 楽しい疫学』以外になにかいい本あるかしら?
もし何かあればご紹介いただけますと幸いです。

コードを書く意味とは

GUIをメインに使ってできるようなSAS*1とかSPSSとかではなく、STATAやR、pythonを使うにあたってはコードを書くことが求められます。STATAは一応GUIがありますが、RやpythonにはGUIがないので何をするにしてもコードを書いて計算させたり、図表を描かせる必要があります。

そもそもコードの書き方を覚えるメリット

コードの書き方を覚えるメリットは

  1. 作業の自動化
  2. 作業の記録と再現性の担保

の二つです。

作業の自動化とは

コードが書けるようになることで「2000年から2020年までの20年分の毎月のデータを表にしといて、男女別で!」といった上司からのクソ面倒くさい指示もコンピューターに全部押し付けることができます。20年x12ヶ月x2種類(男女)の計480個の表をいちいち人間の手で操作してやるよりかは、コンピューターにやらせたほうが爆速で正確です。他にも「あっ、ついでに男女合計もお願い」とかいうナメた指示が後から飛んできてもコードをちょいちょいっと弄ればあとはコンピューターがやってくれるので、240個の表を夜を徹して書き出さずに済みます。

作業の記録と再現性の担保とは

作業の記録と再現性の担保についてはコードを書いてコンピューターにやらせることで、作業の手順は嫌でも記録されますし、同じコードを打ち込めばランダムな要素がない限りは人間と違って毎回同じ結果が出てくるので再現性も担保されます。

なお、基本的にSTATAやR、pythonのコードを書く時は、各言語のインタプリタ*2に直接コードを打ち込むのではなく、メモ帳のようなテキストエディタ*3に一旦コードを書いてから、インタプリタに読ませることが基本になります。

まとめ

人間繰り返しやる作業はミスるわ、数ヶ月前のことどころか1週間前のことは大抵覚えていないのが常なのでコードを書いてコンピューターにやらせた方が手早く確実に作業手順も忘れずに安定して作業できますよということです。
コンピューターに指示を出すにはコードを書くことが必要になるので、コードの書き方を覚えておいて基本的に損することはないですよというお話でした。

*1:SAS Studioは本当使い勝手がいい

*2:書いたコードをコンピューターの言葉に翻訳してコンピューターに伝えるソフト。RであればRをダウンロードした時にアプリケーションフォルダーにいるあいつのことだ

*3:Microsoft Wordではない。あれはワープロソフトだ

坊主になればやきうは上手くなるのか?

togetter.com

ダルビッシュ 野球人口の減少に持論 「誰がこの時代に坊主にしたいねんっていう話」

 カブスからパドレスに移籍したダルビッシュ有投手(34)が24日放送のTBS「林先生の初耳学」(後10・15)にリモート出演し、野球人口の減少について言及した。

 インタビュアーの予備校講師でタレントの林修(54)から「少子化もありますが、やっぱり野球少年が明らかに減っている」と指摘を受けたダルビッシュは「それは、今までこれだけ高校野球体罰も多かったですし、高校生みんな坊主やし、誰がこの時代に坊主にしたいねんっていう話だと思う。今の子どもたちは」と時代の流れを説いた。「サッカー選手とか、髪の毛染めてカッコ良くてというイメージがあるし、いろんなスポーツもそうですけど自由度が高い部分がある」と違いを語った。

 「無条件に全員が強制されるようなスポーツって、どんどん堕ちていくのは目に見えている。少子化じゃなくても野球をやる人は減ると思う。もっと楽しまないと」と持論を展開した。また「指導者が小学生にバントをさせている時点でやらない。僕が今の時代に子どもとして生まれていたら、多分やっていないと思います」とし「小学生でバントさせられるならやりたくない」と自身の考えを明かした。「普通に打って、好きに楽しんで、投げてをやれるスポーツならやりたいなと思う」とした。

https://news.yahoo.co.jp/articles/0c98e57b74dc23e920107412559e3167270217b8

のtogetterまとめ。
野球は割とお金がかかるうえに、めんどくさいしきたりがあったりするので、親は「お金がかかるし、めんどくさい仕事をやらされるから子供にやらせたくない」、子供も「坊主はダサいのでやりたくない」ということで順当に競技人口を減らしている印象。
坊主は仕切っている人たちのナウでヤングなイケてる若者像とマッチしているため、なかなか改善は進まないし、そもそもやきうの空気に合わない層はもう既にやきうから離れて二度と戻ってこないんじゃないのかな? 別に自分から積極的に空気を変えてまでやきうをやる必要はないだろうしw

余談はさておき


という話を見つけたのでこれは面白そうだなと当該論文を探してみました。


これは科学的な論文なのか?

www.jstage.jst.go.jp
なにぶん四半世紀前の話なのでよくわかりせんが、これはおそらく学会の抄録だと思われます。
Basecall Clinic誌に掲載された論文をベースにとありますが、Basecall Clinic誌はベースボール・マガジン社から出ている商業誌であるということを考慮に入れる必要があります。あくまでもまともな査読がある雑誌に掲載された論文として扱うには無理があると思います。
すごくうがった見方をするのであれば自分の指導している選手を坊主にしたい指導者層にウケるように書かれた論文ということは十分に考えられれます。読者にウケない論文なんて純粋な商業誌に掲載されるとは思えないしね。
まぁ、なんというかこの時点でかなり科学的根拠としては怪しいものです。


昔はおおらか(皮肉)だったんですね

本研究者は、前任校で野球部監督を務めた際に、野球部員の頭髪を従来のスポーツ刈りから丸刈りに変更させた。それが功を奏したのかどうか定かではないが、その直後に行われた春季大会の地区予選で、少人数ながらシード2校を倒し、108校中、20校が参加できる県大会に初出場を果たした。そこで丸刈り高校野球選手の心理や打撃成績にどのように影響するのかを明らかにし、今後の指導に役立てたいと考えた。

と目的にありますが、『野球部員の頭髪を従来のスポーツ刈りから丸刈りに変更させた』って今ならハラスメントで問題なりそうな文章がのっけから来て笑うしかない。
当時はおおらかだったんですね。医学系の論文だとこういう対象者になんらかの行為を強制して人体実験をしたというのは確実に問題になるんだけど体育学会では当時許されたのでしょうか? 謎。


単純に研究デザインとしてアウト

そもそもこの研究のデザインとして問題なのは打者個人の結果を見たいのかチームの結果をみたいのかというところが疑問です。
そもそもこのサーチクエスチョンはなんなのでしょうか? PICO*1に当てはめて考えてみましょう。

P:某高校の野球部員()→推定したい集団は高校生のやきう部員
I:丸刈りにした野球部員
C:スポーツ刈りの野球部員? スポーツ刈りにする前の野球部員?
O:1. 選手個人の精神尺度の変化、2. チーム全体の打率

アウトカムが1. 選手精神尺度の変化、2. チーム全体の打率の2要素があるので研究のやりたいことがわかりにくいのが難点です。
個人であれば統計的に精査する意味がかろうじてある研究ですが、チーム全体を対象にするのであれば、科学的にはほとんど意味をなさない単なるたまたまの結果ということで終わってしまいます。仮にチームレベルでの結果をみたいのであれば複数チームでやるべきなのですが、今回は単一チームなのであくまでもただの1例に過ぎないわけです。
ということでそもそもの研究デザインとして「自チームの野球部員を丸刈りにすることで自チームの成績は向上するのか?」というリサーチクエスチョンを科学的に論証することは事実上不可能なわけです。


個人レベルでのリサーチクエスチョンでもやっぱりダメ

仮に個人レベルで「野球部員を丸刈りにすることで、野球部員の打率は向上するのか?」というリサーチクエスチョンにした場合を考えてみましょう。
これならまだ科学的に論証ができそうな気がしますが、それでもやはり難しいと思います。

この場合の研究デザインの難点としては

  1. 研究者=評価者=チーム監督であることから発生するバイアス
  2. サンプル数が少ない、もしくは後期、前期で起用されたものが異なることにより生じるバイアス
  3. 対照群の設定とその他交絡に関わる問題

の3点がぱっと思い浮かびます。
他にも致命的ではなさそうなのが幾つかありますが、チンアナゴが査読をするのであればこの3点を根拠にrejectに丸をつけて編集者に送り返します。

研究者=データの評価者=チーム監督であることから発生するバイアス

これは誰がどの回答をしたか分かっている状態であるのは、そこまで致命傷ではないとは思うのですが、チーム監督であることが致命的だと思います。
単純に自分の上司がやっているアンケートで「坊主を強制されたのでやきうへのモチベーションが下がりました。闘争心? そんなのなくなりました」とは普通は書かないと思います。
むしろ自分が起用されることを考えれば坊主になることとと評価者が評価したい項目の関連を積極的に証明するように書くのではないかと考える方が自然なように思えます。

サンプル数が少ない、もしくは後期、前期で起用されたものが異なることにより生じるバイアス

やきうは1チーム9人プラスαでやる以上仕方ないのかもしれませんがサンプル数が少ないことがまず難点です。
また、坊主になって成績が落ちた人間は翌年の前期で起用されなくなると思うので、坊主になることと打率の向上に関連が生じるようにバイアスが発生していることが考えられます。
諸般の事情でデータが取れなくなった選手の数や大元のやきう部の人数がわからないのでどのくらいのバイアスがあるのかはわかりませんが、それなりにサンプルを起因とするバイアスがある可能性は排除できません。

対照群の設定とその他交絡に関わる問題

対照群が設定されておらず、丸刈り以外の要因が打率に与えた影響が考慮されていないので、単純に「打率が上がったのは指導者が変わってうまくなっただけなのでは?」ということを否定することはできません。常識的に考えて「丸刈りにした」以外のことを全くやっていないとは考えられないですし、各選手の自主的な練習の量やコーチとの相性等他にも打率を改善したと考えられる原因はいろいろあると思います。
丸刈り以外の要素が打率に与えた影響を排除するためには多変量解析等による交絡の調整が必要になりますが、サンプル数が少ないので不可能です。


結局のところ坊主にすることに科学的な根拠はあるのか

残念ながら「ない」、少なくとも科学的根拠には「乏しい」と結論付けざる得ません。
丸刈り以外の要因があまりにも多く、それ以外の原因をある程度排除しきれていないのに「丸刈りは打率に効果がある」というのはさすがに無理があるのではないかと思います。
ぶっちゃけご意見番(笑)のご意見とそんなにたいして変わらないぞ、これ
ということで「喝」3つほど置いて終わりにしたいと思います。
最後まで読んでいただきありがとうございましした。

(コードを書くことが)初心者向けのpythonの本

SPSSみたいにGUIが強いソフトウェアを使わない限りはなんらかの形でコードを書くことを強いられると思うので、まずはコードを書くことに慣れましょうというのが最初の一歩です。

とりあえずpython、まずpython

全くコードを書いたことのない初心者がコードを書くのにオススメな言語はpythonです。

  1. コードの書き方にブレがなく、読みやすい
  2. なんだんだでよく使う
  3. 無料で使える

基本的にpythonは定型の書き方以外にないので、定型の書き方さえ覚えてしまえば自然と綺麗なコードが書けます。また、変な書き方をする予定がないので他人が書いたコードも比較的容易に読むことができます。

最近は色々なソフトでpythonが使えるのでオススメです。
思いつくだけでも

などなどあります。
また、Word形式、Excel形式、pdf形式といったよく見るファイルもpythonを使うことで操作することができます。

無料で使えることも大きいです。導入コストが安価であることはとても重要。
有償ソフトとは異なり手厚いサポートはありませんが、やりたいことでググれば大抵先人たちのノウハウが出てくるので最初のうちは問題ないかと。

オススメの教科書

初心者向けのオススメの教科書はこの二つです

  1. Head First はじめてのプログラミング
  2. 退屈なことはPythonにやらせよう

Head First はじめてのプログラミング ―頭とからだで覚えるPythonプログラミング入門


Head First はじめてのプログラミング ―頭とからだで覚えるPythonプログラミング入門 | Eric Freeman, 嶋田 健志, 木下 哲也 |本 | 通販 | Amazon
プログラミングの基本を理解するのに一番わかりやすい教科書だと個人的には思います。
手順を踏んで、簡単なことからできることをどんどん広げていくスタイルなのでとっつきやすいと思います。
丁寧に一通りこなせばpythonだけではなく、Rといった他の言語を使う時も役に立つ本です。

少しクセのある本なので一旦公式からお試し版を見て合うか合わないかを確認してから買ってもいいかもしれません。
www.oreilly.co.jp

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング


https://amzn.to/3sib5Oo
プログラマーではない人でもpythonを使った業務の自動化処理ができるようになるための本です。
「Head First はじめてのプログラミング」よりも少し内容は高度になりますが、ExcelファイルやWordファイル、電子メールの送信といった実務に直結した内容が多いことが特長です。

ちなみにもうすぐ二版が出るので二版が出るまで待つのも一つの手

「入門 Python 3」はオススメしないの?


これは結論から言うとオススメしません
これはあくまでも別のプログラミング言語をやっている人が「pythonやってみるかー」となったときの本です。
これを本当の初心者が手を出すのにはちょっと難しいかなーと。

まとめ

コードを書くことが初心者向けの本と他の言語は書けるけどpythonは初心者向けの本が世の中ありますので、コードを書くことが初心者の場合は前者向けの本を手に取ると良いでしょう。
今日紹介した2冊はどちらかというと前者向けの内容なので是非お手にとっていただければと思います。