#今年読んだ一番好きな論文2021 開催要項&結果発表
今年読んだ一番好きな論文 アドベントカレンダー2021
実施要項
2021年に読んだ論文の中で、自分の中で一番インパクトのあった、面白かった論文をアドベントカレンダーに登録した日(12/1-12/25)に紹介してもらうプロジェクト
- 期間: 12/1-12/25 (期間内で1日1名の登録が可能、定員25名)
- 募集人数:先着25名まで。
- 終了日時: 12/26 0:00
- ランキング発表ならびに表彰: 1/4 (予定)
- 期間中の情報ハッシュタグ #今年読んだ一番好きな論文2021
目的: 大学院生を勇気づけること
開催ページ:
賞:決定次第随時更新していきます(賞を支援してくださる方を募集しています)
毎回、賞ができるだけ多くの人に行くように運営しています。(が、重複して受賞される方もいます)
最優秀賞
筆者@_b1ueprintさん
商品券(Amazon券とか、応相談)
その他審査員賞
賞を支援してくださる方に審査員となっていただいて、特別賞を決めていただきます。
滋賀の魅力を勝手に押し付けるで賞(審査員@nkjmuさん)
筆者@hinata20000102さん
賞品:滋賀の名産品
醸しま賞
賞品:飲める人には奈良の酒、飲めない人にはおいしい発酵食品
応募者ルール
- 募集期間にアドベントカレンダーに紹介日を登録し、紹介の日にアドベントカレンダーと、紹介記事のリンクを公開してください。
- Twitterアカウントで、アドベントカレンダーへログイン
- 今年読んだ一番好きな論文2021のアドベントカレンダーのページへ
- 紹介する日を選び、登録する
- 登録日当日に、アドベントカレンダーへログインして、論文の紹介記事へのリンクとタイトルをコメント欄に記載して、公開
- Twitterのハッシュタグを利用して、紹介記事へのリンクとタイトルを告知してください (#今年読んだ一番好きな論文2021)
- 紹介する論文は、2000-2021年に出版 (published date) されたものとさせていただきます。
- 紹介する論文の分野(文学、工学、医療など)、種類(査読付きか否か、プレプリントなど)は問いません。
- 既に日本語の他のメディアで紹介された記事で論文紹介することはお控えください (実験医学、ライフサイエンス新着レビューなど)
- 論文から図表をblogへ引用する場合は、図表を改変するなどして著作権法に觝触しないようにしてください。また、これまでの傾向からも、図示による分かりやすい解説が人気をあつめますのでオススメいたします。
- 受賞者は、発表後に@kebabfiestaからDMをさせていただきます。従いまして、@kebabfiestaをフォローしていただきますようお願いいたします。賞品の宛先について、自宅/研究室など選択できます。
2020年開催時の要項(参考)
https://festakebab.hatenadiary.com/entry/2019/11/17/225434
2020年のadventar(参考)
2019年のadventar(参考)
2018年のadventar(参考)
2017年のadventar(参考)
#今年読んだ一番好きな論文2020 結果発表
今年もたくさんの論文紹介ありがとうございました!
開催ページ:
優秀賞の投票は、残念ながら故意に同じ記事に何度も投票した形跡がみられるので、中止としました。性善説で運営してしまっていたので、いつかありうる話だとは思っていたものの、楽しみにしてくださっていた皆様には申し訳ありません。その代わり、参加してくださった学生の皆様には参加賞として(下記の審査員賞とは別に)2000円のアマゾンギフト券をこちらからお送りします。(アマゾンギフト券使わない方は別の方法を検討します。)
審査員賞の各賞の受賞者を発表します!
タチコマ賞 (支援: @antiplastics さん) 全国のお米セット
免疫システムを悪用する新型コロナウイルス
受賞者: @RNoda43425207さん
受賞理由・講評: スライドがかなり読みやすい構成でかつ絵が多く、詳しくない自分でも内容が理解しやすかったため。早くコロナが終わるといいですね。
南国からのお届けで賞 (支援: @KaeKogane さん) 沖縄産マンゴー (来夏配送予定)
食べるものを変えない、という抵抗
食べるものを変えない、という抵抗―18-19世紀スペイン統治下でのカリフォルニア先住民の植物利用と食生活―wordpressn4.wordpress.com
受賞者: @Nishiharakaz さん
受賞理由・講評: 小説を読んでいるようで頭に映像が流れました!日本で考古学というと土器分析のイメージが強く、海外の研究の話はとても興味深かったです。(海外への商品発送どうしよう!)
健康が大事で賞 (支援: @mofumofu0w0 さん) 野菜ジュース詰め合わせセット
細菌に出来事の数え方を教えるお話
受賞者: @kkyamada11 さん
受賞理由・講評: 紹介論文の分野内での立ち位置がきちんと示されていて、構成も簡潔でわかりやすかったです。欲を言えばどのあたりが推しポイントなのかもう少し熱く語っていただけるとなお良しでした!
そんなことよりビール飲もうぜ賞 (支援: @debugordie さん) オリオンビールか哈爾浜ビールひと箱
土壌中のプラスチック ー分析方法とその供給源ー
受賞者: @nougakuto_tetsu さん
受賞理由・講評: 僕こういう話ずっと気になってたんです・・・
バイオインフォやりま賞 (支援: @suimye さん) RNA-Seq データ解析 WET Labのための鉄板レシピ
ヒストンが持つ抗菌活性について
受賞者: @docr16s さん
受賞理由・講評: これからも複数の役割をもつゲノム構造と制御に関わるタンパク質の意義について興味をもって研究してもらいたい。
投票の方法については考えつつ、また来年もやっていきたいなと思っています!ご参加・ご支援くださった皆様、ありがとうございました。
今年読んだ一番好きな論文2020 開催要項
今年読んだ一番好きな論文 アドベントカレンダー2020
実施要項
2020年に読んだ論文の中で、自分の中で一番インパクトのあった、面白かった論文をアドベントカレンダーに登録した日(12/1-12/25)に紹介してもらうプロジェクト
目的: 大学院生を勇気づけること
開催ページ:
賞:決定次第随時更新していきます(賞を支援してくださる方を募集しています)
毎回、賞ができるだけ多くの人に行くように運営しています。(が、重複して受賞される方もいます)
最優秀賞 (アンケートによる人気紹介記事の投票)
今回は不正投票がみられたので、学生の参加者全体に等分します!
特別賞(審査員賞)(審査員による選出・賞品の選定が行われます)(随時追加予定)
(特別賞支援してくださる方募集中です。)
タチコマ賞 (支援: @antiplastics さん) 全国のお米セット
南国からのお届けで賞 (支援: @KaeKogane さん) 沖縄産マンゴー (来夏配送予定)
健康が大事で賞 (支援: @mofumofu0w0 さん) 野菜ジュース詰め合わせセット
そんなことよりビール飲もうぜ賞 (支援: @debugordie さん) オリオンビールか哈爾浜ビールひと箱
バイオインフォやりま賞 (支援: @suimye さん) RNA-Seq データ解析 WET Labのための鉄板レシピ
https://www.yodosha.co.jp/yodobook/book/9784758122436/
賞を支援してくださる方、募集しています。@kebabfiesta まで。
- 期間: 12/1-12/25 (期間内で1日1名の登録が可能、定員25名)
- 募集人数:先着25名まで。
- 終了日時: 12/26 0:00
- 人気投票期間: 12/31-12/3 24:00
- ランキング発表ならびに表彰: 1/4 (予定)
- 期間中の情報ハッシュタグ #今年読んだ一番好きな論文2020
応募資格
- 大学に在籍する学生の方々(年齢、性別、twitter上での生物種を問わない。学振DC、社会人学生も可)(学部生でも可としました)
- Twitterアカウント(鍵付きはお控えいただければ幸いです)、連絡をとれるメールアドレス、論文紹介できるメディアを利用できること (例えば、各種blogやSlide shareなどのスライド共有環境、google docs、qiitaなど、各自紹介するメディアは自由に工夫してください)。
応募者ルール
- 募集期間にアドベントカレンダーに紹介日を登録し、紹介の日にアドベントカレンダーと、紹介記事のリンクを公開してください。
- Twitterアカウントで、アドベントカレンダーへログイン
- 今年読んだ一番好きな論文2020のアドベントカレンダーのページへ
- 紹介する日を選び、登録する
- 登録日当日に、アドベントカレンダーへログインして、論文の紹介記事へのリンクとタイトルをコメント欄に記載して、公開
- Twitterのハッシュタグを利用して、紹介記事へのリンクとタイトルを告知してください (#今年読んだ一番好きな論文2020)
- 紹介する論文は、2000-2020年に出版 (published date) されたものとさせていただきます。
- 紹介する論文の分野(文学、工学、医療など)、種類(査読付きか否か、プレプリントなど)は問いません。
- 既に日本語の他のメディアで紹介された記事で論文紹介することはお控えください (実験医学、ライフサイエンス新着レビューなど)
- 論文から図表をblogへ引用する場合は、図表を改変するなどして著作権法に觝触しないようにしてください。また、これまでの傾向からも、図示による分かりやすい解説が人気をあつめますのでオススメいたします。
- 受賞者は、発表後に@kebabfiestaからDMをさせていただきます。従いまして、@kebabfiestaをフォローしていただきますようお願いいたします。賞品の宛先について、自宅/研究室など選択できます。
前回開催時の要項(参考)
https://festakebab.hatenadiary.com/entry/2019/11/17/225434
2019年のadventar(参考)
2018年のadventar(参考)
2017年のadventar(参考)
「政策評価のための因果関係の見つけ方 ランダム化比較試験入門」
「政策評価のための因果関係の見つけ方 ランダム化比較試験入門」を読んだ。政策評価というよりは因果推論の勉強の一環で読んだ。エビデンスに基づいた政策決定(EBPM)において、日本は後進国であると思うが、そのEBPMを進めるためのランダム化比較試験入門(RCT)の簡易的なレビューとして、どちらかというと政策評価に興味あるひとにRCTを紹介する本になっている。
帯でうまく隠してあるけど、裏表紙にデカデカと近頃何かと話題のエルゼビアの名前がある(購入してから気づいた)。レビュー論文っぽいやつを輪講ののち、翻訳し40ページ近い解説をつけて本にしたらしい。元が論文であって、教科書ではないことが重要で、薄さと安さの割に比較的広範な話題をカバーしているが、記述の丁寧さはその分譲歩している書き方だと思う。ただ、ついている解説記事が結構丁寧に書かれているので、エッセンスを捉えることは容易だと思う。この本だけで勉強が完結できるとは考えず、気になった各論については都度各自で他の文献等で調べる、という使い方をお勧めしたい。
因果推論の教科書には不足しがちな実際に実験を行う際に留意する点(サンプルサイズや検定力の見積もり、他国でのRCTによる教育政策決定事例の紹介、完全にRCTできないケースでどのような手法が取られてきたかという先行研究の紹介など)が書かれていて、特に他国での研究の例では政策評価に主眼を置いていない読者の私でも楽しむことができた。
最初に述べたようにEBPMが主眼であり、これだけでRCTについては万事OKかというと、おそらくそうではないだろう。ただ、RCTにおいて何が重要か俯瞰図を得るためには十分であり、かつ実際にRCTを試行する際の留意点が得られるという点で優れたものだと思う。政策決定以外の分野の人にとっても(全く興味がない方なら苦痛かと思うが)RCTの理解についての良い橋頭堡になっている。付き合い方を理解した上で読むにはとても良い本だと思う。
データサイエンス100本ノック(構造化データ編)SQL版全問題解説
データサイエンティスト協会スキル定義委員によるデータサイエンス100本ノック(構造化データ編)をやってみたので、簡単に解説を書いていきます。全問題といいましたが風呂敷を広げすぎたので、適宜端折ります。今のところ、おおよそ数問毎にどのような知識が必要かというガイドライン程度に止まっていますが、目安になると幸いです(問題個別の解説になるように定期的に改善していく予定)。
githubレポジトリはこちら。
GitHub - The-Japan-DataScientist-Society/100knocks-preprocess: データサイエンス100本ノック(構造化データ加工編)
問題を解くためのセットアップはこちらの記事を参考にしました。
Windows 10 ProであればDocker Desktop推奨。
Macの方はこちら。
ちなみにIEやEdgeではlocalhost:8888とやってもJupyter Labが走らないので気をつけてください。
ちなみに100本ノックに臨む前にSQLの最低限の記法を知っているほうが良いと思います。ただ、答えを見つつ、ググりつつやれば(プログラミングの経験がある人などは特に)初学者でも進められるかもしれません。SQLの文法を気楽にまず学びたい方で英語が得意な方は実際に実行しつつ学べるKaggleの二つのSQL Courseがあります。もちろん、100本全てを解けるだけの題材はカバーしてないのですが、基礎事項は押さえられると思います。日本語が良い方は自分に合いそうな本や記事を探してみてください。
1-9問目
基礎の基礎です。最初の9問は
SELECT文でカラムの名前を指定する
FROM文で参照するテーブルの名前を指定する
WHERE文でデータを取ってくるときの条件を指定する
(実際に何千行もある全データを表示できないので)LIMIT文で表示するデータの行数を指定する
この4つさえわかっていれば進めることができます。
SELECT *で全てのカラムを指定できること
文字列は'(シングルクォーテーション)で囲むこと
WHERE文の条件は複数のものをANDやORでつなげられること
などがちょっと進んだ概念としていくつかの問題で必要になってきます。
10-16問目
WHERE文の中で文字列を比較する問題が続いて出てきます。
where 変数 like '文字列'で比較できます。PostgreSQLでは%によって任意の文字を表すことができます。
また、いくつかの問題は「正規表現」というSQLに限らずプログラミング言語ではよく出てくる別の記法で解く必要があります。その場合、likeではなく~(チルダ)を代わりに使います。where 変数 ~ '正規表現'
17-33問目
大きなトピックとして、GROUP BY, ORDER BY, HAVING文と、SUM(),AVG(),MIN(),MAX()などの集計関数が出てきます。また、Rank(), Row_number()といった少しハイレベルな集計関数も出てきます。
GROUP BYと集計関数を使うことで、とあるカラムに注目して、集計ができるようになります(例:genderに注目して、異なるgenderごとに売り上げの合計や平均を取るなど)。
ORDER BYでは行の順番を指定します。例えば、売り上げの合計が大きい順に顧客IDを表示できたりします。
また、GROUP BYとセットで使用されるHAVING文があります。これはGROUP BYで着目するグループに条件を課すことができる点でWHEREに似ています。例えば、顧客毎に売り上げの合計を算出する時、そもそもIDがZで始まる顧客は非会員なので計算から除外する場合などに使います。
34-44問目
大事な構文として、WITHとJOINそしてUNIONが出てきます。
WITH句はいったん集計して一時的な表を作るもので、その後最終的な表や数値を出すために使います。たとえば一旦WITHで顧客ごとに今までの売り上げを合計しておき、最終的には顧客ごとの合計売り上げの平均を取ることで、顧客一人あたりの売り上げを出すといったクエリを書くことができます。
JOINは複数のテーブルを(横に)統合することができます。例えばreceiptというテーブルにはカラムとして商品が売れた日時と売れた商品の商品コードがあり、productというテーブルにはカラムとして商品コードと商品の名前が書かれているとします。これらreceiptとproductというテーブル二つを共通のカラムである商品コードを参照として統合することで、いつなんという名前の商品が売れたのかという新しいテーブルができることになります。JOINにはINNER JOIN, LEFT JOIN, OUTER JOINなどの種類があり、それらの違いを理解していくことも重要です。(ちなみにPostgreSQLでは何もついていないJOINはINNER JOINとして解釈されます。)
UNIONは複数のテーブルを縦に結合する(つまり単純に行数を増やす)ものです。このノックで2-3回だけの出番でした。
また、Tableを作る、消すといった作業が必要になる問題も問題43で出てきます。
そのほかの重要な概念として、NULL値が入っていた場合に補完できるcoalesce()、時系列データなどで集計の際、n個手前の時刻(行)の数値を参照できるlag()、条件分岐に応じて入れる数値を指定できるcase文などが出てきます。もちろん、それ以前に用いた構文等もフル活用するので、このあたりから少しづつ難しくなっていくかと思います。焦らず復習するなどして、少しづつ理解していきましょう。
45-74問目
DATE型、timestamp型といった時刻を表すデータの扱いと、文字列型の扱い、そして標本標準偏差や対数、小数点切り捨てといった数値を計算する問題が並んでいます。必要なものは多岐に渡るので、また個別の解説を書く際に詳しく言及しようと思います。特に時刻は関数もたくさんあり、引数の違いなどにも気を使う必要があります。
また、既出の構文ですがcase文を用いて、ダミー変数を作るという問題も出てきます。機械学習系の人にはよく使う技術の一つですね。
75-88問目
サンプリングや欠損値の比較、そして欠損値の補完や名寄せといった実務上とても重要なものが出てきます。またここでは、nestされたカラムというのが初めて出てきます。ちょっとややこしい概念の内の一つだと思いますが、ここでしか出てこないようです。新しい概念を一度の問題で複数学ぶ必要も出てきうるので、一つ一つ丁寧に理解していく必要があります。わからない場合は思い切って飛ばして後で戻ってくるのも良いかと思います。
89-100問目
データセットの作成や、ファイル出力といった問題が並んでいます。問題43や80で使ったテーブルの作成方法を思い出しつつやっていきましょう。データセットの作成にはサンプリングをするのでやはり今までに習ったことを使う必要があります。早く終わらせたくなる気持ちはわかりますが、これを機に復習しつつ進めてみてください。
おまけ:処理順
各々の句がどの順番で処理されるかは覚えた方が絶対に良いです。(暗記する、というより流れをイメージできて自然と思い出せる形で)
1. from
2. on
3. join
4. where
5. group by
6. having
7. select
8. distinct
9. order by
10. limit
くどうれいん『うたうおばけ』
歌人くどうれいんさんのエッセイ集。ISBNがついていない『わたしを空腹にしないほうがいい』をやっと手に入れて読んでとても良かったので、今作も見つけた瞬間購入を決めた。
食べ物がテーマの前作と違って周りの人にフォーカスした作品が多かったように思う。最近短歌が気になっていて、特に自分+/-10歳くらいの世代の短歌を読みあさっている。初谷むい、九螺さらら、千種創一とか。自分の中の感覚に近いけど自分では思いつかないような感性を見つけるのがとても良い。くどうさんのエッセイにも似たものを感じる。
特に自分が好きだったのはお婆ちゃんの話だ。おれもこんなお婆ちゃん欲しい。あんまり試し読みせずにエイヤッと買って読んで欲しいが、出版社のnote.comからこの話は読めるということを後で知った。(note.comの連載は読んだことがなかった)
https://note.com/kankanbou_e/n/nca5906988281?magazine_key=m332e3bb4947d
くどうさんの短歌を残念ながらあまり読んだ事がないので、今度はそちらも読んでみたい。
Kaggleの"Intro to SQL"をやってみた
自分用メモ。ドットインストールの動画をさっと眺めたぐらいでSQLを触ったことがなかったが、勉強がてらやってみた。とりあえず無料のものでいい&自分の環境でやるのはめんどくさいので、Kaggleのチュートリアルを使うことにした。
Learn Intro to SQL Tutorials | Kaggle
SQLとBigQuery
SQLにはいくつか種類があることは理解しているが、MySQLとPostgreSQLの違いが何かとか、まったくわかっていない。細かい違いはあるがたぶんここに出てくるような公文で大きな違いはないっぽい。KaggleのSQLはGoogle BigQueryを使っているらしい。
SELECT, FROM, WHERE
SELECTで引出したい項目を、FROMで対象となるテーブルを、WHEREで条件を指定する。
SELECT *
FROM table
WHERE country=US
でcountryの項目がUSであるsub tableが生成される。
GROUP BY, HAVING, COUNT()
COUNT()は数を数える。たとえばCOUNT(ID)とあるとIDの数が何種類あるか数える。ID0-99までの顧客リストがあるとCOUNT(ID)は(IDが重複していない限り)顧客数100を返す。SUM()などと同様にこういう複数の値から一つ値を返す関数なのでaggregate functionという。
GROUP BYはCOUNT()の結果を種別に返す。たとえば先ほどの顧客リストにregionという項目があって関東、関西などとある場合、COUNT(ID) とGROUP BY regionによって
関東 25
関西 19
東北 13
...
四国 1
などというような地域別のID数(顧客数)を表示できる。
HAVINGは条件式である。GROUP BY region HAVING COUNT(ID)>1で顧客数が2以上の地域別顧客リストが返る。なのでさきほどの例で言えばリストから四国(IDが1なので)が消える。
COUNT(1)で行の数を数えられる。
ORDER BY
順番を決められる。DESCで降順。なのでORDER BY COUNT(1) DESCで個数順
AS WITH
ASはaliasだが、WITH...ASと合わせることで一時的なtable(Common Table Expression, CTE)を作ることができ、可読性をあげることができる。
query_with_CTE = """ WITH Timetable AS ( SELECT DATE(timestamp) AS trans_date FROM `bigquery-public-data.bitcoin.transactions` ) SELECT COUNT(1) AS transactions, trans_date FROM Timetable GROUP BY trans_date ORDER BY trans_date """
のような感じ。例えばたくさんのトランザクションのデータから、顧客ごとに合計額を算出して、それから全顧客に対して平均をとるような処理などに使える。
Joining data
pandasのmergeのような感じ。複数のtableをid等を目印に統合する。left join, full joinなどの種類がある。
実際全部やるのに5時間くらいだったと思う。Advanced編をやったり、100本ノックをしてみたい。
Learn Advanced SQL Tutorials | Kaggle