本記事では、(株)データミックスの「気象データアナリスト養成講座」を受けた感想や、講義メモをまとめます。
今回は、2023年1月28日に受けた、ブートキャンプステップ1日目の内容です。
講義1日目の内容:データ分析プロジェクトの概要
最初の講義ということで、ビジネスのなかでデータ分析するときの概要や心構えを学びました。
講義を聞いて大切だと思ったことは、こちら。
データ分析で大切なこと
- まずは課題を明確にする
- 最初にデータに飛びつくのはNG
- 情報不足でも仮説を立てる
- なぜこの分析をするか?と問い続けよう
- 「分析結果からできることは何か」を分析前に考える
データ分析というと、「膨大なデータをひたすら分析して、表やグラフにまとめることが仕事」というイメージがありました。
しかし実際には、「データ分析=課題を解決するための手段」のようです。
データ分析することが目的にならないよう、気を付けたいと思います。
グループワーク:分析プロジェクトの課題の考え方
講義のなかでは、15分~20分ほどのグループワークもありました。
Zoomで3人のグループになって、課題に対する意見を出し合うワークです。
課題は事前に「予習」として出されていたので、内容をわかったうえで取り組めます。
グループワーク
- オープンユニバーシティの課題を考える
- 参考:オープン大学について
- 参考:イギリスの教育システム
参考サイトの情報をもとに、考えたことを話し合います。
「本当にこの課題でいいのか」「他に解くべき課題はないか」などを、ざっくばらんに話す感じです。
Rプログラミング入門:データ確認と分析
グループワークで取り組んだ課題には、データが用意されていました。
そのため、実際にデータを見ながら講義が進められました。
以下では、講義で使ったデータを見ながら、データを確認・分析する方法を復習したいと思います。
事前準備
はじめに、使うデータをダウンロードしておきます。
今回の講義で使われたデータは、こちらでした。
上記サイトにある「Download dateset」をクリックすると、データのダウンロードがはじまります。
※データ量が多いので、ダウンロードするときは通信環境やデバイスの容量に注意してください。
データの確認には、Rプログラミングを使います。
そのため、Rプログラミングの実行環境をあらかじめ整えておきました。
Rプログラミングを使うためには、2つの方法があります。
Rプログラミングを使う方法
- 方法1:Rをインストール → R STUDIOをインストール
- 方法2:RStudio Cloudを使う
わたしは方法1にしました。
けっこう重たいので、パソコンへの負荷が気になる場合は、RStudio CloudでもOKだと思います。
Rプログラミングでデータ確認
講義では、Rプログラミングを使って、データを見たり分析したりしました。
プログラミングコードは、あらかじめ配布されていたので、自分で1から書くことはありません。
R STUDIOでデータを読み込んだら、SQLを実行していきます。
メモ
SQLは、データベースを操作するための言語です。
使用するデータ(Open University Learning Analytics dataset)には、7つのファイルが含まれています。
assessments.csv | code_module,code_presentation,id_assessment,assessment_type,date,weight |
courses.csv | code_module,code_presentation,module_presentation_length |
studentAssessment.csv | id_assessment,id_student,date_submitted,is_banked,score |
studentInfo.csv | code_module,code_presentation,id_student,gender,region,highest_education,imd_band,age_band,num_of_prev_attempts,studied_credits,disability,final_result |
studentRegistration.csv | code_module,code_presentation,id_student,date_registration,date_unregistration |
studentVle.csv | code_module,code_presentation,id_student,id_site,date,sum_click |
vle.csv | id_site,code_module,code_presentation,activity_type,week_from,week_to |
これらのデータを使って、分析していきます。
練習1:生徒数はどのくらい?
データの中から、生徒数を表示してみます。
今回のデータでは、生徒ひとりひとりにIDが割り振られています。
生徒のIDは「id_student」というデータです。
「studentAssessment.csv」に、「id_student」のデータがあるので、データ数を見てみましょう。
- SQLを書く
- 実行する
「id_student」の数は、23369だとわかりました。
今回の講義では、SQLが書かれたファイルが共有されていたので、実際には実行するだけでした。
SQLの内容を詳しく見ると、こちらです。
「sqldf("")」は、RプログラミングのなかでSQLを使ってデータベースを使いたいときに書いておくもの、だと思っています。
練習2:モジュールと開講時期の組み合わせは?
モジュールとは、授業科目群です。
データの中から、モジュールと開講時期の組み合わせを表示してみます。
「assessments.csv」に、「code_module」と「code_presentation」のデータがあるので、組み合わせを見てみましょう。
- SQLを書く
- 実行する
モジュール(AAA,BBB,CCC,,,,)と、開講時期(2013J,2014J,2013B,,,)の組み合わせがわかりました。
ちなみに、2013Jは2013年10月開始、2013Bは2013年2月開始、とのことです。
SQLの内容を詳しく見ると、こちらです。
SQLで「GROUP BY構文」を使うと、グループごとの集計ができます。
練習3:モジュール別・開講時期別の合格率を求める
データの中から、合格率を求めてみます。
合格したかどうかは、「studentInfo.csv」にある「final_result」で判断します。
「final_result」が「Pass」または「Distinction」になっているデータは合格です。
「studentInfo.csv」に「code_module」「code_presentation」「final_result」のデータがあるので、合格率を出してみましょう。
- SQLを書く
- 実行する
モジュール別・開講時期別の合格率(pass_ratio)がわかりました。
SQLの内容を詳しく見ると、こちらです。
順を追って、解読したいと思います。
- FROM studentInfo:「studentInfo」ファイルから
- GROUP BY code_module,code_presentation:「code_module」と「code_presentation」の列をグループ集計する
上記のように、まずは扱うデータを書きます。
次に、集計関数を使ってグループ集計をおこないます。
今回の集計関数は「SUM」と「COUNT」です。
- SUM関数の中身:「final_result」の列の値が「Pass」または「Distinction」である数を合計する
- COUNT関数の中身:「id_student」の列を、重複データをまとめて数える
SUM関数のなかでは、CASE構文を使って「Pass」または「Distinction」のデータのみを扱っています。
CASE構文は、英語でいうところの「if~」です。
また、SUM関数とCOUNT関数に「as」が使われていますが、これは名前を付けておくようなイメージです。
結果に名前を付けておくことで、以降の処理でデータが扱いやすくなります。
最後にPass率を計算します。
「final_result」が「Pass」または「Distinction」になっているデータ(=pass_num)を、生徒数(=student_num)で割ると、合格率(pass_ratio)を求めることができます。
まとめ:データ分析のプロセスを知る&SQLに慣れる
今回は、(株)データミックス「気象データアナリスト養成講座」の、講義1日目の内容をまとめました。
講義1日目の内容
- データ分析では課題を明確にする
- データ分析は"目的"ではなく"手段"
- SQLに慣れていこう
初回ということで、データ分析プロジェクトの全体像を学びました。
SQLは正直むずかしく感じましたが、解読してみると少しずつわかるようになりました。
来週の講義もがんばりたいと思います。