LogoMark.png

データサイエンス/03 の変更点


#author("2025-09-29T08:57:29+09:00;2025-09-29T08:30:03+09:00","default:inoue.ko","inoue.ko")
#author("2025-09-29T14:46:49+09:00","default:inoue.ko","inoue.ko")
*第3回 統計解析2
[[データサイエンス/2025]]|[[受講生一覧>https://design.kyusan-u.ac.jp/socialdesign/?%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9]]|[[汎用シート>https://docs.google.com/spreadsheets/d/1Zpb946zBDAd-7B7pgLKDSC813X5j2okT8dNlX2y0JYs/edit?usp=sharing]]
~
~


**前回の補足

***基礎事項の確認
-スプレッドシートにおける数式の書き方
頭に = を付けて、その後に計算対象となるセル名を使った数式を書きます。
 = A5 + B5  ・・当該セルに、A5 の値と B5 の値の和
A5、B5のセルの内容が変わると、自動的に計算結果も変わります。

-スプレッドシートにおける関数の書き方
 =関数名(引数1, 引数2, ・・)
この場合の引数1は、一般に計算対象となる「セル群」が入ります。

-スプレッドシートにおける小数部分のまるめ(四捨五入)について
小数点以下の桁数は、関数を使って丸める方法と、表示のみ桁数を揃える方法があります。
--関数を使って丸める場合は、以下のように書きます。
 =ROUND( 数値または関数 , 小数点以下の桁数)
--表示のみ桁数を揃えたい場合は、以下の2つの方法があります。
 表示形式を揃えたいセル範囲を選択し、
 1) [ホーム]タブ>[小数点以下の表示桁数を増やす] / [減らす]ボタン
 2) [セルの書式設定]ダイアログボックス>[表示形式]タブ>
    [数値] >「小数点以下の桁数」を設定
--ただし、最終的に紙の書類が必要になる事務業務(お金の計算)では、以下のような現象が起きるので注意が必要です。
 内部データ:3.33・・+3.33・・+3.33 = 9.99・・ 
 表示データ:3 + 3 + 3 = 10   
印刷書類で見ると「1円がどこかへ消えた?」となってしまいます。
~

***セルの相対指定と絶対指定
数式・関数を他のセルに複製した場合は、引数となるセルの位置は、自動的に相対的な位置関係を保って複製されます。
 =sum(B2:B11) を右隣のセルに複製すると、
 =sum(C2:C11) となります。

逆に、どこに複製しても参照セルが動かないようにするには、 [ $ ] 記号を使って、 参照セルを「絶対指定」の形で表記します。
 = B2 / $A$100 は、下のセルに複製すると
 = B3 / $A$100 となります。
分子は相対的に移動しますが、分母となるデータは固定的な場所を参照します。
~

***絶対指定の利用例|偏差値の計算
-以下のシートにサンプルがあります。データ部分のみコピーして、計算部分(黄色のアミかけ部分)を自身で実装してみて下さい。
__[[偏差値の計算サンプル>https://docs.google.com/spreadsheets/d/1hzFHeAqr_ww2tKLg1HljtSnUofTpcXtiTumtmhbjNsQ/edit?usp=sharing]]__

-データは、学生ID(通し番号)と 得点が並んでいるだけです。
-表の上部の適当なセルに、平均と標準偏差を求めて下さい。
-各レコード(各学生)の得点に右に「偏差値」が出るようにします。
-数式の入力は一箇所、あとはオートフィルで埋めます。
~

***解説
この種の計算とオートフィル(あるいは複製)では、単純に式を書くと、平均値と標準偏差の参照セルの位置が相対的にズレてしまいます。得点のセルは、常に「自分の左」という相対的な位置にありますが、平均と標準偏差は、参照データのある場所が決まっているので「絶対的な位置」を参照する必要があります。

-偏差値を求める計算式は以下。$ はセルの絶対指定を意味します。
 =( 得点のセル - $平均値のセル)/ $標準偏差のセル * 10 + 50

-サンプルでは以下のように書いています。
 =(B6-$B$3)/$C$3 * 10 + 50

-この例では縦方向にオートフィルするので、参照先の行位置が固定されていれば、列は相対指定でも構いません。よって以下の式でも結果は同じです。
 =(B6-B$3)/C$3 * 10 + 50
~
~

**相関
統計分析では、個々のカテゴリ項目の代表値や散布度の把握と並んで、項目間の連動関係を見出す作業も重要です。例えば成績一覧表から「数学の点数が高い学生は物理の点数も高い」など、項目間に連動が見られる場合を「相関がある」と言います。
~
#image(Statistics/Correlation/correlation.jpg,center, 75%)
~

***共分散
はじめに「共分散」の概念から説明します。共分散とは「国語の点数 X」と「数学の点数 Y」のような2組の対応するデータについて「X の偏差 × Y の偏差」の平均 を取った値です。
#mathjax( s_{xy} = \frac{1}{n} \sum_{i=1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y} ) )
-共分散の値が正:X が大きいときに Y も大きくなる傾向がある
-共分散の値が 0: X と Y には関係がない
-共分散の値が負:X が大きくなると Y が小さくなる傾向がある
~

***相関係数
2つの変数の間の関係を測る指標で、「数学の点数が高い人は物理の点数も高い」など、「ああであれば、こうである」ということの程度を示します。相関係数 r が正のとき確率変数には正の相関が、負のとき確率変数には負の相関があるといいます。
#mathjax( r = \frac{(xとyの共分散) }{ (xの標準偏差) \times (yの標準偏差) } )
-&mathjax(r); は -1.0 から +1.0 までのいずれかの値をとる
-&mathjax(| r |); が 1.0 に近いほど相関が強く、0に近いほど相関が弱い
 
レポート等で相関の有無について語る場合、一般的な目安は以下です。
-| r | = 0.7~1.0  かなり強い相関がある
-| r | = 0.4~0.7  やや相関あり
-| r | = 0.2~0.4  弱い相関あり
-| r | = 0~0.2   ほとんど相関なし

//-詳細はこちら >__[[Statistics/Descriptive]]__
~
~

**相関関係と因果関係について
私たちが身の回りの観察から見出す物事の「関係」には、「身長が高い人は体重も大きい」というタイプの相関関係(共変動)と、「気温が上がると清涼飲料水の売上が上がる」というタイプの因果関係とがあります。
~

***データ解析が見出すのは「相関」
一般に、大量のデータにもとづく統計的な解析や機械学習から得られるのは「相関関係」であって因果関係ではありません。相関関係(共変動)というのは因果関係の前提に過ぎないので、判断や方針決定には注意が必要です。
 経験的に観察された共変動は、因果関係の必要条件だが十分条件ではない
&small(Edward Tufte);
~

***誤謬に注意
統計処理によって何らかの関係が見出された場合も、それを結論づける前に、そこに以下のような誤謬((論証の過程に論理的・形式的な瑕疵があって、その論証が妥当でないこと(簡単に言えば「間違っている」)を誤謬と言います。))がないか注意深く検討することが必要です。

-擬似相関(第3の要因が共通原因となっている)
 「チョコレートの摂取量」と「ノーベル賞の受賞者数」に正の相関
経済的に豊かであることが両者の共通要因
 「小学生の身長」と「論理的思考力」に正の相関
学年が上がることが両者の共通要因

-因果関係の逆転
 交番の数が多い地域ほど、犯罪件数が多い
犯罪件数が多い地域だから交番が多く設置された
 猫が顔を洗うと雨が降る
雨が降る前の湿度上昇が、センサーであるひげを拭う行為を誘発
~
~


**演習3|相関係数
***サンプルデータの準備
-[[教育用標準データセット|SSDSE>https://www.nstac.go.jp/use/literacy/ssdse/]]にある「SSDSE-基本素材(SSDSE-E)」を利用します。以下からダウンロードして下さい。
--https://www.nstac.go.jp/sys/files/SSDSE-E-2024.xlsx
--データの解説:https://www.nstac.go.jp/sys/files/kaisetsu-E-2024.pdf
--https://www.nstac.go.jp/sys/files/SSDSE-E-2025.xlsx
--データの解説:https://www.nstac.go.jp/sys/files/kaisetsu-E-2025.pdf

-GoogleDrive > マイドライブ > DataScience に、ダウンロードした基礎データをアップロードして下さい。
-アップしたファイルをダブルクリックすると、ファイルがGoogleスプレッドシートで開かれます。
-''メニュー > ファイル > 「Googleスプレッドシートとして保存」''としてから利用することを推奨します。
~

***相関係数の計算
項目間の相関係数を計算してみましょう。
-元データは、全国の集計行と都道府県の47行あります。
-一番上の「全国」の行を削除、あるいは色分けして、間違って計算対象に含めないように処理して下さい。
-あなたの興味関心にもとづいて、いくつかの項目のペアを選んで下さい。
-列を移動して、ペアとなる列が横並びになるようにして下さい。
-ペアの右に空の列を挿入して、その一番上の行に、相関係数を求める式を記述して下さい。Excel でも GoogleSpreadsheet でも、関数式は同じです。
 =CORREL(範囲1, 範囲2)
 例  =CORREL(C4:C50,D4:D50)
-列のペアを複数(数は任意)つくって、いろいろ試してみて下さい。
-「◯◯の値が大きな県は、△△の値も大きい」といった知見が得られると、面白い・・となるでしょう。

付記:サンプルデータのように比較可能な項目が多い場合は、すべての項目間について一括で「相関行列」を作るのが一般的です。「相関行列」は Python を使うと簡単に得られるので(後の授業で紹介・体験します)、ここでは手動で簡単に体験するにとどめます。
~

***演習サンプル
以下、実際に相関係数を計算したサンプルです。
__[[相関係数の計算(SpreadSheet)>https://docs.google.com/spreadsheets/d/1GBojVCJwzAhJVohqVVKMvVI4OZBhyIm8_-pXMO77QWM/edit?usp=sharing]]__
~



***学科サイトで学科サイトにリンク掲載
-1. Spreadsheet を開いた状態で、右上の「共有」をクリック
-2. 共有設定を変更して、以下のように表示される状態にします。
 このリンクを知っているインターネット上の全員が閲覧できます。
-3. 「リンクをコピー」をクリックして、そのアドレスを、以下の形式で、学科サイトにリンク掲載して下さい。
 -[[相関係数の計算事例>https://docs.google.com/spreadsheets/・・=sharing]]
-4. 以下のようになればOKです。
https://design.kyusan-u.ac.jp/socialdesign/?JohnSmith/DataScience
~

***付記
-[[Googleスプレッドシートで相関係数を求めてグラフ化する方法>https://ponicom.net/correl/]]
~
~

**APPENDIX
***散布図から見える「データの特徴」について
相関のある現象では、直感的に散布図の中心を通る直線を想定することができますが、その直線上の点は、2つの変数がとる「平均的な組み合わせ」と見ることができます。例えば、横軸:身長、縦軸:体重としてデータをプロットした散布図では、ある個人のデータが、想定される直線に乗っていれば標準的、直線よりも下にある場合、その人は「痩せている」・・というぐあいに、データの特徴を語ることができます。ちなみに、この直線のことを__[[「回帰直線」>GoogleImage:回帰直線]]__と言います。
~

***前処理段階でのデータのコピーミスに注意して下さい
散布図上で、極端な「外れ値」がある場合は、データの前処理段階でコピーミス等がないか確認して下さい。''元データの一番上の行は「全国の合計」です。コピーミスでこれを先頭の北海道に位置付けてしまうと、すべてのデータが1行ずつズレます。過去の演習ではこのミスが散見されます。北海道だけ外れ値になっている方は、再確認をお願いします。''

&color(red){スプレッドシートは非常に便利なツールですが、コピーの際に行がズレるというミスは、実際の業務では大事故につながります。データの扱いには十分注意する癖をつけましょう。};
~
~
~