みんなのデータサイエンス
Data Science for All
データサイエンスは、広い意味をもったことばで、一口に、学び始めると言っても、さまざまな始め方があると思います。本書では、そのひとつを提案するとともに、共に学んでいきたいと願って、書き始めました。
いろいろな方々や、利用方法を想定して、導入のような内容や、本書の中心をなす、R でのプログラミングを利用しなくても、ダッシュボードなどを利用することにより、データをさまざまな角度から見る経験をすること、スクリプトや、テンプレートを使って、一部を置き換えることで、データサイエンスを経験すること、基本的な R でのプログラミングを学んで、自分で、簡単なプログラムを書いて、分析をすること、さらに、こんなときは、どうしたら良いかなど、少し詳しい説明などを含んだ部分などです。
また、順次、例を提供する、ブログのようなものも書いていきたいと思います。この書を利用するために「データサイエンスを教えてみませんか」と、教える方のサポートも、書いていく予定です。
みなさんも一緒にデータサイエンスを学んでみませんか。
著者について
著者は、大学の学生の時以来、数学を学び、大学で教え、2019年春に退職。それ以来、少しずつ、データサイエンスを学んでいます。
幸運にも、2019年9月の日本数学会教育委員会主催教育シンポジウムで、「文理共通して行う数理・データサイエンス教育」という題で、話す機会が与えられ、その後、あることが契機となり、2020年度から、毎年、冬学期(12月から2月)に、大学院一般向け(分野の指定なし)の授業、「研究者のためのデータ分析(Data Analysis for Researchers)」を担当しています。複数の教員で担当しますが、基本的な部分は、わたしが教え、応用について、他の先生がおしえています。受講生は20人程度で、殆どが、外国人。それも、多国籍で、多くても一国から三人程度。英語で教えています。
この授業の関係で親しくなった経済学の先生に依頼されて、いくつかのレベルの経済学の授業で、2・3時限、世界銀行の世界開発指標などを使った分析の入門を、特別講師として教えさせていただきました。これらのコースは日本語で教えましたが、日本語で書かれた一般の学生向けのデータサイエンスの教科書、学習教材が不足していることも感じました。
2023年3月に京都大学数理解析研究所で開かれた数学教育の会で、話す機会が与えられ、大学などで全学生向けに提供する「数理・データサイエンス・AI」について講演し、生成系AIの進化も踏まえて、どのようなことを学ぶ機会とすれば良いかについても、考えました。
「みんなのデータサイエンス」も、このような背景の下で書かれたものです。
コースで利用したものや、講演記録ににご興味のある方は、このページの下にもリンクがある、著者のホームページを参照してください。
コンピュータ言語について
データサイエンスには、コンピュータを使います。コンピュータに指示をして、データを使いやすく変形したり、計算をしてもらったり、グラフを書いてもらったりします。そのためにコンピュータとのやりとりをする言語が必要です。さまざまな言語(プログラミング言語と呼びます)が、使われますが、データサイエンスで、一番、使われているのは、Python と、R です。
「みんなのデータサイエンス」では、統計解析のために開発された R を使います。いずれは、python についても触れたいと思いますが、プログラミングの経験がない方も含めて、最初にデータサイエンスを学ぶには、R は最適だと考えています。また現在は、R Studio IDE(integrated development environment, 統合開発環境) で、R を簡単に使うことができます。さらに、簡単なプログラムであれば、Posit Cloud で試したり、共有することも可能です。また、再現性(Reproducibility)や、なにを実行しているのかの説明を同時に記述すること(Literate Programming)は、非常に重要ですが、その記述も、R Markdown や、Quarto によって、可能になっています。これが、Excel や、Google Spread Sheet ではなく、R を推奨する理由でもあります。 この文書も、R Markdown の一つの形式の、bookdown を利用しています。最後に、Bookdown に関連して、膨大な数の、参考書も、無償で提供されており、オンラインで読むことができることも、R をお薦めする理由です。
ただし、日本語の学習教材は、まだ十分とは言えない状況です。この文書を書き始めたのも、すこしでも、お役に立つことができればとの、気持ちが背景にあります。
もう一つ付け加えると、高校の教科書でも、一部、Python のスクリプトが使われ、大学で、全学生向けに、データサイエンスのコースを提供するときにも、Excel を使うか、Python を使うかが R と比較するとより一般的のように見えます。しかし、それは、教える側の都合が影響しているのではないでしょうか。急いでコースを提供するため、身近な Excel から始めることにしたり、データサイエンスなら、情報科学の教員がコースをデザインせざるを得ないことから、汎用性が高く、かつデータサイエンスでも、中心的な役割を果たす Python を選択すると言ったことです。
しかし、すべての人が、データサイエンスを学ぶ必要があるならば、文系の先生、そして、純粋数学を生業(なりわい)としてきたわたしのようなものも含めて、教えることに関わることは、とても大切だと思います。教員も学ぶ必要があるからです。R は、社会科学系の分野で、最近特に使われています。分野ごとには、SPSS や、Stata や、MATLAB などが使われいるかもしれませんが、これらは、有償で、大学では、使えたとしても、一般の学生が卒業後も、これらのソフトを使えることは稀です。また、研究においても、最近は、さまざまな分野で、R がより一般的になっているとも聞きます。
百聞は一見にしかずで、例を見ていただくのがよいと思いますが、R では、非常に短い命令で、対話的に、すぐ結果が得られます。テンプレートを使って、一部だけ書き換えて使うことも可能で、その人のレベルにあった利用が可能だと思います。さらに、Shiny のような、ダッシュボード形式のものも、利用可能ですし、learnr のように、対話型の、練習問題を提供することも可能です。
少しずつ紹介していきたいと思います。
言語について
ご覧の通り、本書は、日本語で書かれています。用語は、英語、あるいは、英語を追記、または、英語をカタカナにしただけのものを使用する可能性が大きいですが、説明は、極力、日本語で書いていく予定です。
しかし、基本的に、コード(プログラムの記述)には、日本語を使わないで書いていく予定です。とくに、初心者にとっては、二バイト文字で表現される日本語を含むコードの扱いは、負担になることが多いからです。最近は、コードの中で日本語を使用しても、ほとんど、問題は起きないようになってきています。そうであっても、世界の人の共通言語として、プログラム言語を学んでいくときには、日本語を使わないことは意義があると思います。日本語を使わないことで、世界中の人たちから、アイディアを学び、あるときは協力し、例を提供して、作業をしていくことが可能だからです。
少し慣れてきて、日本語のデータなどを扱うときには、コードにも日本語を使う必要が生じてきますから、日本語の利用についても、追って説明していきます。APPENDIX A を参照してください。
最初は、みなさんも、変数(variable)や、オブジェクト(object)に名前をつけるときは、半角英数を使い、日本語は、使わないようにすることをお勧めします。自分には難しいと感じる時は、ローマ字を半角英数で使うのはいかがでしょうか。
PDF、ePub 版について
この文書は、PDF 版と、ePub 版も作成しています。しかし、扱いが異なるので、ある程度完成するまでは、あまり更新しない予定です。いずれ、これらも、更新したものを公開できると良いのですが。試験公開版は、下のリンクにあります。