#author("2021-11-07T22:36:36+09:00","default:takataka","takataka") #author("2021-11-07T22:36:56+09:00","default:takataka","takataka") * データ分析 2021年度 ex07 [#xa9b83a6] //&color(red){''工事中''}; #contentsx ** 課題A [#kadaiA] ''回帰分析入門(1)'' - 表計算ソフトに頼ってやってみよう - この課題についての解説動画: [[Data2021-07-movie2>https://web.microsoftstream.com/video/82dce212-2eb5-4e87-9490-30ae1f47fa94]] (18m) ***スプレッドシートとデータの準備 [#d3d9dead] + [[ex08gorigori.csv>Data:ex08gorigori.csv]] を自分の PC にダウンロードしてください +[[Google Classroom>https://classroom.google.com/c/Mzg5MzI5MjQyOTkw]] 上のこの課題のスプレッドシートにこの授業で説明した手順でインポートしてください. ***問題の設定とデータの観察 [#l10c606a] インポートしたデータは,あるアイス販売店で集計した,1日ごとの平均気温(単位は[度])とその日のアイス売上数(単位は[個])を表したものです. 気温を &mathjax{x}; [度],アイス売上数を &mathjax{y}; [個] としたとき, &mathjax{y}; を &mathjax{x}; の式で表すことを考えてみましょう. そのような式が求まれば,平均気温からその日のアイス売上数を予測することができそうです. ここでは,その式として, #mathjax{{ y = ax+b }} という単純な直線の方程式を考えてみます. まずは,インポートしたデータの散布図を描きましょう - 横軸の範囲は [-5, 40],縦軸の範囲は [0, 130] としてください - 横軸縦軸それぞれにタイトルをつけてください.タイトルは,列の見出しと同じにするのがよいでしょう ***「予測値」列の作成 [#p2218692] 「シート1」に,上記の &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] 動画中ではこの課題の続きとして別のデータでもやってねと言ってますが,別の課題とすることにしました. //動画の中ではこの課題の続きとして別のデータでもやってねと言ってますが,別の課題とすることにしました. //[[ex08B>#kadaiB]] を参照してください. ** 課題B [#y7b39696] ''課題Aのつづき'' > &size(13){この課題そのものには点数は付きませんが,あとでこの内容に関する小テストを行います.そのできや点数には影響しますので,必ず取り組んでください.質問は Teams 上でどうぞ.}; < + [[ex06課題A>../ex06#kadaiA]] でダウンロードした ex06mpi.csv をこの課題のスプレッドシートにインポートしましょう. -- 同名のファイルを複数回ダウンロードすると,「ex06mpi (1).csv」みたいな名前になってしまう場合があります.ダウンロードをやり直す場合は,そういうことにならないように古いのを削除しておきましょう. + 横軸が「数学」,縦軸が「情報」の散布図を描きましょう.ただし,次のように設定してください. + 横軸縦軸とも範囲を [0, 100] とする + 横軸に「数学」,縦軸に「情報」とタイトルをつける + トレンドラインを描く + 「LINEST関数の戻り値」と書いてあるセルの右隣のセルに,上記のトレンドラインの傾きと切片の値を求めるための式を書きましょう + 得られた傾きと切片の値をノート等にメモしておきましょう.また,2つのデータの間にどんな関係があるか,グラフと式を眺めて考えてみましょう. ** Moodle で Quiz を受験 [#y9508b90] [[この科目のMoodleコース>https://www-tlab.math.ryukoku.ac.jp/moodle/course/view.php?id=6]] へ行って Quiz を受験しましょう. 開始時刻等は授業時間中にお知らせします. ** 宿題 [#homework] &color(red){''工事中''}; //&color(red){''工事中''}; &color(red){''次のことを次回の授業までに必ずやっておいてください''}; (1) [[ex08>../#ex08]] の以下の Notebook を閲覧実行し動画を視聴してください > ''回帰分析とは/最小二乗法'' >> [[ex08notebookA.ipynb>https://github.com/takatakamanbou/Data/blob/main/ex08notebookA.ipynb]] | [[Data2021-08-movie1>https://web.microsoftstream.com/video/5d7e6b2d-44aa-4678-bd10-51b2dc2920c6]] (32m) << < (2) [[ex08課題A>../ex08#kadaiA]]