知っておくキーワードのtodoリスト的な。glossary的な。ハンドブック的な。
卒論までのキーワード
これは繰り返し指導に使う、知っといてくれると説明が楽というものをここに並べておく
- リビーボックス
- 代理変数
- 重回帰分析で決定要因、経済的帰結
- 交絡変数
- コントロール変数 (揃えるということ)
- マッチングして重回帰
- 論文の構成
- 記述統計
問い設定後分析前
- 回帰式の立て方
- 回帰式を決定する
- yの変動のうちxの変動で説明できる部分
- 単回帰はバイアスが入る -> 条件をそろえる必要がある
- 「条件をそろえる」「コントロールする」、ex. 同じ時期、同じ業種で比較、分析する
- では何でもかんでも変数をコントロールすれば良いのだろうか
- そうではない
- 不要な変数をコントロールするとそれはそれでバイアスになる
- 因果推論と決定要因
- 興味ある変数とコントロール変数
- 相関関係+論理で因果関係を捉えようとしてきた、最近は分析のところだけで因果推論をできるよう進歩してきている
- 期末と平時の課題と出席
- 平時の課題と期末の関係性では出席が交絡になる
- 交絡は係数の解釈はしません(コントロール変数と切片)
- 定番の代理変数
- 企業業績 = ROA = 営業利益 / 前期末総資産
- 企業規模 = log(総資産)
- データを集める
- データソース
- 集め方
- tidy data
- yとxとzを列に並べる
- A1から詰める
- 横ではなく下に伸ばす
- 回帰式でxになる可能性のあるものは横に伸ばす
- dummy var (1, 0)、1, 0で集めるとデータを読み込ませた時に楽
- excel -> csv
ここからR
- rproject
- 代入 (<-)
- <-は代入という。A <- BとすればBの内容をAという変数に保存することができる
- 関数
- よくやる計算や命令をシンプルにまとめてくれたもの
- lm()みたいに()でくくる。「エルエム関数」ッて読んでる
- パッケージ
- テーマごとに関数をまとめたもの
- パッケージを読み込むことで関数が使えるようになる
- 読み込み
- 前処理
- filter
- mutate
- lag
- replace_na
- factor data
- lm
- 結果の確認
- 結果を読む
- estimateとp.value
- coef_plot
- 0より大きければプラスの影響がある、小さければマイナスの影響がある、0を跨いでいればプラスかもしれないしマイナスかもしれないので区別できないから積極的には解釈しない。
- 論文に示すとき
- 分析結果の表
- excelに出力できるパッケージ (modelsummary)
- 記述統計
- excelに出力できるパッケージ (psych::describe()の出力をwrite.csvすればよい)
- modelsummary::datasummaryで定番のものを作成しておいて、それをコピペして貰えばいいと思う。
- 分析結果の表もそれで作成しているし。
- 構成の作成へ進む
交絡変数の例
「奨学金返済支援制度導入 -> 新卒入社希望者数」という問いを設定したとする 資金に余裕がある、好業績を納め続けている -> 制度導入できる 資金に余裕がある、好業績を納め続けている -> 新卒入社希望数が多い
「役員兼任ネットワーク -> 機密情報流出」という問いを設定したとする 社外取締役 -> ネットワークを形成しやすい 社外取締役 -> 機密情報を流出しやすい?
問いの論理
- 「定年延長 -> 離職率」問いを持ってきた。
- 離職する人には離職する理由があるはず(仕事が嫌、早めに隠居したい、他にすることができた)
- その理由がなくなる or 理由は残るが思いとどまったという論理を説明できないと問いの論理も認められない。
- つまり、定年が延長されることで仕事が嫌ではなくなるとかが起こらないなら論理的に成り立っていないと判断する。
構成
問いと回答が入れ子になっている。
- 問題意識・社会背景(大きな問い)
- 研究課題(小さな問い)
- 仮説
- 研究方法
- データ(研究方法にフィットしたもの)
- 分析結果(仮説への回答)
- 結果の解釈(小さな問いへの回答)
- 結論(大きな問いへの回答)
対数の意味
10の大きさは同じではない。たとえば、年収が100万円の時に10万円増えることと1000万円の時に10万円増えることの嬉しさは違うだろう。こういう時は割合で考えたくなるはず。100万円のひとが110万円になるということは10%増えるということである。1000万円のひとが1100万円になることも10%の増加である。対数を取ればこれを表現できる。
Code
# 年収100万円のひとが110万円になったら
log(110) - log(100)
Code
# 0.09531018
# 年収1000万円のひとが1010万円になったら
log(1010) - log(1000)
Code
# 0.009950331
# 年収1000万円のひとが1100万円になったら
log(1100) - log(1000)
Code
このように、10%の増加はどちらも0.0953で同じだけの増加であることが表現できている。
総資産も似たようなものである。総資産1000万円の企業が100万円の資産を獲得することは、総資産1億円の企業が1000万円の資産を獲得することと同じで、総資産の10%の増加である。資産は資産を産み規模の経済学が働く。そのため、同じ1万円の増加は現在の資産の金額に応じて価値が異なる。その影響を調整するために総資産では対数を取ることが一般的である。
総資産は右にいくにつれて企業の数が減る。そういう頻度のデータに対して対数を取ると正規分布に近づく。こういう分布を対数正規分布という。
データ集め終わった後によくいうこと
データの整理方法の補足
- A1から始める
- NAに置き換える
- 会社名を埋める
- csvに出力する
csvに出力する:https://yone.synapse-site.jp/excel/excel_file_csv.html の方法でできると思います
分析のざっくりとした流れは次のとおりです。 + 回帰式を決める + Rstudioを起動する + データを読み込む + (必要であれば)追加の変数を作成する + 重回帰分析をする + 結果を表示する
回帰式を決めるときは、結果と原因が何かを考えます。加えて、条件づけるべき変数を考えます。今回だと結果は企業業績でしょう。roaなどを使うことが多いです。原因は残業時間でしょうか。残業時間/労働時間 、残業時間/従業員数 というのも考えられます。条件付けは企業業績に影響しそうな原因以外の要素です。例えば、企業規模が違えば業績も違うと考えられますから企業規模を条件づけたいとします。企業規模は総資産を使うことが多いです。これを回帰式で表現すると以下のようになります。
roa = a + b1 残業時間 + b2 総資産
式が決まれば分析に進みます。重回帰分析のところは以下のような感じです。細かいところはrの本を見て確認してください。
Code
# 以下Rのコード
library(modelsummary)
library(tidyverse)
# データの読み込み
df = read_csv(".csv", locale = locale(encoding = "cp932"))
# 分析
model1 = lm(y ~ x1 + x2, data = df)
# 結果の表示
modelsummary(model1, star = TRUE)
# Rのコードここまで
結果の見方はRの本の7, 8章あたりもさんこうにしてみてください。 ここで、yは結果の変数(ex. roa)、x1, x2は「残業時間」、「総資産」などです。x3以降も条件づけたい変数を好きに追加して構いません。その場合は同じように+x3 + x4 …としてつなげます。y, xの箇所は自身のデータ(Excel)の列名に合わせて変更してください。