- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-09-11T21:43:10+09:00","default:takataka","takataka")
[[Data/2023/ex05]]
#author("2023-10-20T17:41:55+09:00","default:takataka","takataka")
* データ分析 2023年度 ex06 [#xa9b83a6]
* データ分析 2023年度 ex05 [#xa9b83a6]
//&color(red){''工事中''};
#contentsx
////////////////////////////////////////
** Quiz [#quiz]
授業時間中に Moodle 上でQuiz(小テスト)を行います.
開始時刻等は授業時間中にお知らせします.
Moodle へのアクセスの仕方については,[[第1回のページ>../ex01#moodle]] へ
////////////////////////////////////////
** Notebookと授業動画 [#g7418074]
[[今回の Notebookと授業動画>../#ex05]] のうち「&color(blue){★要予習★};」のものは,授業開始までに予習しているはずです.
[[今回の Notebookと授業動画>../#ex06]] のうち「&color(blue){★要予習★};」のものは,授業開始までに予習しているはずです.
もしもまだの場合,まずはそれらの notebook を実行し動画を視聴してください.
////////////////////////////////////////
** 練習X1 [#X1]
[[この問題についての解説動画>https://ryu365-my.sharepoint.com/:v:/r/personal/a01055_mail_ryukoku_ac_jp/Documents/movie/Data2023/Data2023-ex06movieX1.mp4?csf=1&web=1&nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0RpcmVjdCJ9fQ&e=bk7XOe]] (12m)
>
''注意: 動画中で「シート1」という名前が付いているシートは,この問題では「main」という名前になっています.''
<
*** スプレッドシートとデータの準備 [#wda679df]
+ [[ex06mpi.csv>Data:ex06mpi.csv]] を自分の PC にダウンロードしてください
+ Google Classroom>https 上のこの問題のスプレッドシートにこの授業で説明した手順でインポートしてください.
>
「ファイル」>「インポート」>「アップロード」>(CSVファイルをアップロード)>「新しいシートを挿入する」
<
-- インポートの仕方は,[[ex02練習X1>../ex02#X1]] で説明している通りです.Excel で開くのではありません.
*** 元データの解釈 [#t6e0b4f5]
+ 「数学」,「物理」,「情報」の平均,標準偏差を計算しましょう
>
&color(blue){''注意'': 平均と標準偏差を求める関数については,[[ex02課題P1>../ex02#P1]] 参照};
<
+ それぞれのヒストグラムを描きましょう
+ 学籍番号「う06」のひとは,3科目とも80点ですが,どの科目の成績が「良い」と言えるか,平均,標準偏差,ヒストグラムから考えましょう
*** データの正規化 [#s19b146a]
+ CSVファイルをインポートしたシートに,「数学(正規化)」,「物理(正規化)」,「情報(正規化)」という3つの列を作り,それぞれの生徒の「数学」,「物理」,「情報」の点数を正規化した値を求める計算式を入れましょう.
>
データ &mathjax{x_1, x_2, \dots , x_N}; の平均値が &mathjax{\bar{x}}; で,標準偏差が &mathjax{s}; だったとすると,
#mathjax{{
z_n = \frac{x_n - \bar{x} }{s}\qquad (n = 1, 2, \dots , N)
}}
として得られるデータ &mathjax{z_1, z_2, \dots , z_N}; の平均は &mathjax{0};,標準偏差は &mathjax{1}; になるのでした.
<
&color(blue){''注意'': スプレッドシートで上記の式を計算する場合,平均や標準偏差の値を一つ一つのセルの中の計算式で毎回計算するのは無駄ですね.「main」というシートにすでに算出した値がありますから,そのセルの値を利用しましょう('$'を付けて絶対参照にするのがよいでしょう).};
+ 正規化した値は,小数点以下の表示桁数が3になるように設定しよう.
メニューバー中の,「.0」の下に「←」が描かれたボタンと,「.00」の下に「→」が描かれたボタンで,表示桁数を調整できます.
*** 正規化したデータの解釈 [#f2254ba0]
+ 「main」に,「数学(正規化)」,「物理(正規化)」,「情報(正規化)」それぞれのヒストグラムを描きましょう
-- 一つの図に三つヒストグラムを重ねて描くのではなく,三つ別々の図を描きましょう
-- 横軸の範囲は -4 から 4 までにそろえておくとよいでしょう
-- パケットサイズ等はヒストグラムを解釈しやすいように修正しましょう
+ 次のものをノート等にメモしておきましょう
-- 学籍番号「う06」のひとの「数学(正規化)」,「物理(正規化)」,「情報(正規化)」の値
-- それらの値から,この生徒の「数学」「物理」「情報」の点数はどの科目が「良い」と言えそうか
////////////////////////////////////////
** 課題P1 [#P1]
&color(red){''これは「課題」ですので,期限までにやって提出することが必要です.''};
期限は Classroom 上で確認できます.
*** PartI [#ve75985e]
+ [[mpiS100.csv>Data:mpiS100.csv]] を自分の PC にダウンロードしてください
+ Classroom 上のこの課題のスプレッドシートにいつもの手順でインポートしてください.
+ シート main の C7 から C9 のセルに,その左隣に書いてある値を計算する数式を書いてください
-- 「相関係数」は, ''CORREL関数'' で算出できます.使い方は次の通り
''回帰分析入門(1)'' - 表計算ソフトに頼ってやってみよう -
[[この課題についての解説動画>https://ryu365-my.sharepoint.com/:v:/r/personal/a01055_mail_ryukoku_ac_jp/Documents/movie/Data2023/Data2023-ex06movieP1.mp4?csf=1&web=1&nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0RpcmVjdCJ9fQ&e=bc4TIg]] (17m)
>
CORREL(データYの範囲,データXの範囲)~
- 「数学 vs 物理の相関係数」の場合,数学の点数100人分の範囲と物理の点数100人分の範囲を二つの引数それぞれに指定しましょう.数学と物理のどちらをデータXにしても構いません(算出される値は変わらない)
- データXの範囲およびデータYの範囲に含まれるデータ数は等しくないといけません
- PEARSON関数でも全く同じ値が計算できます
- Google のヘルプ: https://support.google.com/docs/answer/3093990
''注意: 動画中で「シート1」という名前が付いているシートは,この問題では「main」という名前になっています.''
<
-- 「''相関係数''」とは何か,どういう意味の値かは,後で説明します
//+ スプレッドシート上部のアイコンから「小数点以下の桁数を増やす/減らす」を選んで,相関係数の値が小数点以下は3桁までしか表示されないようにしましょう
***PartII [#e0b739fa]
***スプレッドシートとデータの準備 [#d3d9dead]
上記の表の下に,「数学 vs 物理」,「数学 vs 情報」,「物理 vs 情報」の3つの ''散布図'' を描きましょう.
+ [[ex08gorigori.csv>Data:ex08gorigori.csv]] を自分の PC にダウンロードしてください
+ Google Classroom 上のこの問題のスプレッドシートにこの授業で説明した手順でインポートしてください.
''散布図に関する条件''
- 「X vs Y」の散布図は,横軸を X の点数,縦軸を Y の点数とする
- グラフの横軸縦軸の範囲は [0, 100] にする.今回のグラフでは縦軸横軸の単位が同じで範囲も同じなので,箱の縦横の長さが(ほぼ)等しくなるように調整してください
- 横軸縦軸にその軸に対応する科目名を表すタイトルをつける
***問題の設定とデータの観察 [#l10c606a]
''散布図の描き方''
インポートしたデータは,あるアイス販売店で集計した,1日ごとの平均気温(単位は[度])とその日のアイス売上数(単位は[個])を表したものです.
気温を &mathjax{x}; [度],アイス売上数を &mathjax{y}; [個] としたとき, &mathjax{y}; を &mathjax{x}; の式で表すことを考えてみましょう.
そのような式が求まれば,平均気温からその日のアイス売上数を予測することができそうです.
ここでは,その式として,
#mathjax{{
y = ax+b
}}
という単純な直線の方程式を考えてみます.
以下の動画を視聴してください.
>
[[Google Sheets で散布図を描こう>https://ryu365-my.sharepoint.com/:v:/r/personal/a01055_mail_ryukoku_ac_jp/Documents/movie/Data2023/Data2023-ex05movieP1.mp4?csf=1&web=1&nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0RpcmVjdCJ9fQ&e=mfhym9]] (6m)
<
まずは,インポートしたデータの散布図を描きましょう
- 横軸の範囲は [-5, 40],縦軸の範囲は [0, 130] としてください
- 横軸縦軸それぞれにタイトルをつけてください.タイトルは,列の見出しと同じにするのがよいでしょう
以下に,簡単なメモを書いときます.動画でも説明してます.
+ 「グラフエディタ」の「設定」タブで
++ 「グラフの種類」を「散布図」に
++ 「データ範囲」として,「数学」,「物理」,「情報」の3列を見出し含めて指定
++ 「行1を見出しとして使用」にチェックを入れる
++ X軸を「数学」に
++ 系列から「数学」と「情報」を削除
+ 「グラフエディタ」の「カスタマイズ」タブで
++ 横軸 > 最小値最大値
++ 縦軸 > 最小値最大値
++ グラフと軸のタイトル > 横軸のタイトル > 数学
++ グラフと軸のタイトル > 縦軸のタイトル > 物理
+ 今回の散布図は,横軸縦軸の範囲がどちらも [0, 100] ですので,図の縦横比を 1:1 にするのがよいでしょう.だいたい 1:1 になるように手動でグラフの枠の大きさを調整しましょう
+ コピーして2つ目を作る
+ 設定タブの「X軸」と「系列」を選択して,列を選び直す
+ (以下同様に)
***「予測値」列の作成 [#p2218692]
「main」シートに,上記の &mathjax{a}; と &mathjax{b}; の値を表すセルがあります.
その値を使い, 個々の気温の値 &mathjax{x_n}; に対して &mathjax{ax_n + b}; という値を計算する列をつくりましょう.
列の見出しには,「予測値」と記しておいてください.
*** データと予測値の直線を重ねたグラフの作成 [#z183d2bd]
散布図に直線 &mathjax{y=ax+b}; を重ねたグラフを描きましょう.
先に作った散布図とは別に,新しいグラフを挿入します.
+ メニューから 「挿入」 > 「グラフ」 を選択
+ グラフエディタで ''「グラフの種類」を「折れ線グラフ」に''
+ 「データ範囲」として, ex08gorigori シートのデータ値が存在する範囲を選択(一番上の見出しも含めたらよい)
+ 横軸が行番号で3つの折れ線グラフが描かれる
+ グラフエディタの「設定」タブで,「X軸」を気温にして「系列」から気温を削除
+ 「カスタマイズ」タブで,「すべての系列に適用」を「アイス売上数」に切り替えて,「ポイントのサイズ」と「線の太さ」を適切に変更
+ 最初に作った方のグラフと同様に,横軸縦軸の範囲とタイトルを設定
+ ''&mathjax{a}; と &mathjax{b}; の値を表すセルの値を変更すると,予測値の直線のグラフが変化するはずです.&mathjax{a}; と &mathjax{b}; の値をいろいろ変えて,データにうまくあてはまるような値を探しましょう.''
*** ソフトに直線の式を求めさせてみる [#l16f43d6]
+ 先に描いた散布図の方のグラフエディタを開き,「カスタマイズ」タブの「カスタマイズ」 > 「系列」で,「トレンドライン」にチェックを付け,「ラベル」として「方程式を使用」を選択してみましょう
+ 散布図の方に直線が描かれ,ラベルとして直線の式が示されるはずです.
次回以降解説しますが,この直線は,この「気温」対「アイス売上数」のデータによくあてはまる(予測の誤りが少ない)ものになっています.
//+ その直線の傾きと切片の値を &mathjax{a, b}; のセルに書いてみましょう
+ 上記の直線の傾きと切片の値は,関数を使って求めることもできます.
以下のリンク先の文書も参考にしながら,「シート1」のセルF8, F9, F10にそれぞれ,SLOPE関数,INTERCEPT関数, LINEST関数を使った式を書いて,それらの値が求まることを確認しましょう.''引数の順番に注意''.
-- SLOPE関数: https://support.google.com/docs/answer/3094048
-- INTERCEPT関数: https://support.google.com/docs/answer/3093632
-- LINEST関数: https://support.google.com/docs/answer/3094249 この関数だけ他の2つの関数よりも多くの引数を指定できますが,ここでは他の2つと同じ引数にすれば ok です.
この関数は,SLOPEとINTERCEPTの機能を併せ持っており,それらと同じ2つの値を返すはずです.
+ ''得られた傾きと切片の値をノート等にメモしておきましょう''(後日解説予定の「有効数字」のことを考えると下の方の桁の値は不確かですが,すべての桁の値をメモしといてください).また,気温とアイス売上数の間にどんな関係があるか,グラフと式を眺めて考えてみましょう.
*** 別のデータでも... [#za58c12e]
動画中ではこの課題の続きとして別のデータでもやってねと言ってますが,別の課題とすることにしました.
** 宿題 [#homework]
//&color(red){''工事中''};
&color(red){''次のことを次回の授業までに必ずやっておいてください.''};
+ [[ex06>../#ex06]] の &color(blue){★要予習★};
+ [[ex06課題P1>#P1]]
+ [[ex07>../#ex07]] の &color(blue){★要予習★};