1 データベースとクロス集計(経済統計論特殊講義、荒木) Excel のデータベース機能 基本用語 フィールド レコード 各列 各行 たとえば、"喫煙の習慣"というフィールド たとえば、回答者16のレコード 変数とも言う 標本とも言う ソート 並べ替え (1) 分析したいデータ範囲のなかのどこかにセルポインタを置いて、 データ → 並べ替え → 適当に条件を指定 降順・昇順 オートフィルタ 検索・抽出 (1) 分析したいデータ範囲のなかのどこかにセルポインタを置いて、 データ → フィルタ → オートフィルタ (2) 任意の条件に合致するレコードのみを抽出 (3) 処理がひととおり終わったら、 再び、データ → フィルタ → オートフィルタ として、オートフィルタを解除 練習 売上で降順ソート、100 < 営業利益 < 200 かつ 大阪一部上場 などなど クロス集計とピボットテーブル クロス集計 アンケート集計など、質的データの分析に多用される。 質的データどうしの関連性を調べたり、 質的データと量的データとの関連性を調べるのが目的。 性別にみた喫煙習慣 無 女 7 男 6 総計 13 有 (人数) 総計 5 12 12 18 17 30 行和に対する相対頻度 (%) 無 有 総計 女 58.3 41.7 100.0 男 33.3 66.7 100.0 総計 43.3 56.7 100.0 男性には喫煙者が多いようである。 列和に対する相対頻度 無 有 女 男 総計 (%) 総計 総和に対する相対頻度 無 有 女 男 総計 (%) 総計 喫煙者の?%は男性である。 回答者のうち女性の喫煙者は?%。 2 データベースとクロス集計(経済統計論特殊講義、荒木) ピボットテーブル (1) 分析したいデータ範囲のなかのどこかにセルポインタを置いて、 データ → ピボットテーブル・・・ → 適当に指定しながら次へ → 完了 (2) フィールド名を表の各欄にドラッグして、クロス表を作成 (3) クロス表の数値を、行和に対する相対頻度に変更するには・・・ クロス表の数字の上で右クリック → フィールドの設定 → オプション → 計算の種類 → 列方向の比率 ※ Excel のバグ? 列方向の比率を指定すると行和比率が表示される。 が、よくあることなので、気にしない。 (4) クロス表の上で右クリック → ピボットグラフ で、クロス表をグラフ化 性別×喫煙 性別×ゲコ 男子のみの 喫煙×ゲコ 女子のみの 喫煙×ゲコ 性別×喫煙×ゲコ などなどのクロス表をつくってみよう ところで、血糖値をクロス表に加えたいのだが、これは連続量。クラス分けするにはどうするか? 論理関数 IF ( 条件, 真のときの値, 偽のときの値 ) AND ( 条件1, 条件2, … ) OR ( 条件1, 条件2, … ) 論理積(かつ、AND) 論理和(あるいは、OR) 喫煙データのワークシートで試してみよう = IF( D2="有", 1, 0 ) = IF( AND( D2="有", A2>200 ), 1, 0 ) = IF( OR( D2="有", A2>200 ), 1, 0 ) 血糖値150未満をクラスA、150-200 をクラスB、200-250をクラスC、 250以上をクラスD としたい場合は・・・ =IF( F2<150, "A", IF( F2<200, "B", IF( F2<250, "C", "D" ) ) ) 血糖値の高さと喫煙習慣の有無・飲酒の有無に関連があるかどうか、クロス表を 作成して調べてみよう。 3 データベースとクロス集計(経済統計論特殊講義、荒木) さらに、表で漠然とわかる関連性を数量化したい。どういう指標を考えうるか? 相関係数 量的データどうしの関連性の方向・強度をはかるものなので、 いま扱っている質的データには使えない。 そこで・・・ カイ二乗統計量 r c χ 2 = ∑∑ (nij − eij ) 2 eij i =1 j =1 c r クロス表の行の数 クロス表の列の数 nij i 行 j 列の度数 eij i 行 j 列の期待度数 は、総レコード数(標本数)を n 期待度数 eij c eij = n ⋅ として r ∑n ∑n k =1 ik n ⋅ k =1 kj n クラメールの連関係数 χ2 C= n(m − 1) たとえば・・・ 性別にみた喫煙習慣 無 女 7 男 6 総計 13 r = 2, c = 2, n = 30 n11 = 7 n12 = 5 n21 = 6 n22 = 12 e11 = 5.2 e12 = 6.8 e21 = 7.8 e22 = 10.2 ( m は r,c のうち小さい方の値 ) 有 = = = = (人数) 総計 5 12 12 18 17 30 30*(12/30)*(13/30) 30*(12/30)*(17/30) 30*(18/30)*(13/30) 30*(18/30)*(17/30) x2 = 1.832579 =(7-5.2)^2/5.2+(5-6.8)^2/6.8+(6-7.8)^2/7.8+(12-10.2)^2/10.2 C = 0.061086 データベースとクロス集計(経済統計論特殊講義、荒木) カイ二乗値とクラメールの連関係数を計算する VBA プログラム Sub renkan() ' Dim Rsum(100), Csum(100) ' R = InputBox("行の数は?") C = InputBox("列の数は?") ' For i = 1 To R Rsum(i) = ActiveCell.Offset( i, C + 1).Value Next i For j = 1 To C Csum(j) = ActiveCell.Offset(R + 1, j ).Value Next j N = ActiveCell.Offset(R + 1, C + 1).Value ' Kai2 = 0 For i = 1 To R For j = 1 To C Nij = ActiveCell.Offset(i, j).Value Eij = N * (Rsum(i) / N) * (Csum(j) / N) Kai2 = Kai2 + (Nij - Eij) ^ 2 / Eij Next j Next i If R > C Then M = C Else M = R End If CR = Kai2 / N / (M - 1) msg = MsgBox("カイ二乗値=" & Round(Kai2, 6) & " クラメール連関係数=" & Round(CR, 6)) End Sub 実行 クロス表の左上のセルにセルポインタを置いて・・・ → ツール → マクロ → マクロ → renkan を実行 → クロス表の行数と列数を指定 ソースファイルを再編集するには・・・ ツール → マクロ → Visual Basic Editor 4
© Copyright 2024 Paperzz