Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
1
「日本の人事を科学する」gretl テキスト1
目次 1 イントロダクション
1.1 gretlの特徴 1.2 データの構造:パネル、クロスセクション、時系列 1.3 バランスト vs. アンバランスト・パネル 1.4 データの種類
2 データの読込と保存 2.1 作業用のディレクトリーの指定 2.2 データの読込:マウスでドラッグ 2.3 データの読込:ツールバーで読み込むファイルを指定 2.4 データの保存 2.5 データの結合
3 アイコン・ビューの活用 3.1 読み込んだデータをアイコン・ビューでチェック 3.2 要約統計量を見る 3.3 相関係数表を見る
4 簡単な分析ツールを使ってみる。 4.1 クロス集計の作成 4.2 散布図の作成
5 対話式コマンド画面(gretlコンソール) 5.1 コマンドを直接書き込む 5.2 コマンド例 5.3 入力した行を再入力する
6 新規データを作成、消去する。 6.1 コンソール画面で入力 6.2 メイン画面のツールバーで作成 6.3 作成したデータの消去 6.4 スカラーデータ(定数パラメーター)の作成 6.5 ラグ付き変数の作成 6.6 行列やベクトルの作成
7 サンプルの制限
1 このテキストの作成にあたっては、Cottrell and Lucchetti (2015) “Gretl User’s Guide”、加藤(2012)『gretlで計量経済分析』、及び大東文化大学角田保教授作成のウェブサイト「gretlのインストールと基本的な使用方法」(http://www.ic.daito.ac.jp/~tkadoda/gretl/index.htm)を参考にした。回帰分析の記述は山本(2015)『実証分析のための計量経済学』を参考にした。
2
7.1 コンソール画面上でコマンド入力 7.2 gretlで用いる演算子 7.3 メイン画面のツールバーでサンプル制限 7.4 アンバランスト・パネルになった時
8 セッション全体を保存する 9 スクリプト・ファイルの活用 10 回帰分析を行う
3
1 イントロダクション 実際の作業に入る前に、まず簡単に gretl の紹介をします。gretl は無料の統計ソフトで、その操作のし易さから教育の現場で普及しつつあります。多くのボランティア研究者の支援により、分析
ツールも年々進化しており、日本語のまともなマニュアルがほとんどないということを除けば、現
時点で費用対効果でベストな統計ソフトです。 gretlを使う 大の理由は、回帰分析です。複数ある原因の中で何が一番重要かを特定し、その関
係を使って将来予測を行うのに、必須の分析ツールです。エクセルの分析ツールにも回帰分析は入
っていますが、変数の数やデータ数に著しい制限があり、千や万単位のデータを扱う人事データの
解析には不向きです。 gretlをマスターして、あなたも今日からデータ・サイエンティストになりましょう!
1.1 gretlの特徴
– ユーザーフレンドリー:自分でコードを書かなくても、ツールバーをクリックして大抵の操作が
出来る。 – フレキシブル:エクセルとは比較にならない容量。データ加工が容易。サンプルを自在に制限、
拡張できる。 – 無料 – 日本語対応(ただし、マニュアルは英語) – 現在広く使われている計量経済学の手法がパッケージとして揃っている。
1.2 データの構造:パネル、クロスセクション、時系列
データを読み込む前に、3つのデータセットタイプの構造の違いを理解しましょう。
表1-1 ID 年度 雇用形態 階級 入社年月 退職年月 年齢 給与総額
100 2009 正社員 5 級 198004 201303 48 ****
2010 正社員 M1 級 198004 201303 49 ****
2011 正社員 M1 級 198004 201303 50 ****
2012 正社員 M1 級 198004 201303 51 ****
2013 正社員 M1 級 198004 201303 52 ****
102 2009 正社員 M2 級 198404 52 ****
2010 正社員 M3 級 198404 53 ****
2011 正社員 M3 級 198404 54 ****
2012 嘱託 198404 55 ****
2013 嘱託 198404 56 ****
パネルデータは、以下の3つの要素がデータに入ってきます。 観測ユニット × 時間 × 項目
例:(地域名、企業 ID, 従業員 ID)(年、月、日)(性別、年齢、勤続年数、給与、労働時間)
4
私たちが扱う人事データは、制限をかけなければ、ほとんどがパネルデータです。
ある時点の人事データだけを抜き取ってくれば、クロスセクションデータとなります。
ある会社の数年分の財務データは、時系列データです。
gretl にデータを読み込むときは、まずどのタイプのデータなのかを指定してあげる必要があります。その際に、パネルデータであれば、観測ユニットの IDを特定する変数が何か、時間の変数が何かを正しく認識させることが大事です。エクセルでピボットテーブルを作成する際に、フィールドを指定する動作
に似ていますが、はるかに簡単です。
1.3 バランスト vs. アンバランスト・パネル
パネルデータを取り扱う際に、一つ注意しなければいけない点があります。それは、gretlでパネルデータを扱う時には、観測期間中すべての観測ユニット(人事データであれば、すべての従業員)
について毎年の観測値がなければいけないということです。そうでなければ、パネルデータとして
認識してもらえません。これをバランスト(balanced)・パネルと呼びます。つまり、N個あるすべての IDと観測期間 T期間すべての間の組み合わせ(黄色枠内すべて)がデータとして存在するということです。
クロスセクションデータは、パネルデータのある 1時点の情報を抜き取ったものです。 観測ユニット × 項目
例:(地域名、企業 ID, 従業員 ID)(性別、年齢、勤続年数、給与、労働時間)
時系列データは、ある観測ユニットの時系列情報を抜き取ったものです。 時間 × 項目
例: (年、月、日) (性別、年齢、勤続年数、給与、労働時間)
N ・・・
5
これは、人事データを扱う際には、厄介な問題を生み出します。なぜなら、観測期間中に入職した
り、離職や出向したりする人が出てくるため、観測期間中観測値が入っているとは限らないからで
す。しかし、ご安心ください。gretlでデータを読み込む際、パネルデータとして認識させると、データが欠損している部分は、gretlが自動的に、値が欠損している観測値を作成してくれます(中身の入っていない箱と同じ)。 ただし、後で示すように、サンプルを制限する場合には、アンバランスにならないよう、適切な処
置を取る必要があります。
1.4 データの種類 gretlで扱えるデータには幾つかの種類があります。
scaler (時間や観測ユニットに依存しない数量、パラメーター) series (時間や観測ユニットに依存した数量、変数) matrix (行列) string (文字列、時間や観測ユニットに依存した変数としても定義できる)
読者のみなさんが扱うデータは、ほとんどが seriesか scalerので、今日はそこを中心に説明をします。取得した自社人事データの中に文字情報(例えば、性別がカテゴリーを表す数字ではなく男
性、女性と文字で入力されて場合)が含まれている場合、gretl内でも数値に変換できますが、当面は、できれば gretlに読み込む前に、エクセル等で数値に変換しておくと良いでしょう。
2 データの読込と保存
2.1 作業用のディレクトリーの指定 (gretlをインストールした際に、すでに作業ディレクトリーを設定した方や、デフォルトで設定されたフォルダーを使う方は、このステップは必要ありません。) ツールバーで、「ファイル」→「作業ディレクトリー」をクリックします。下のようにウィンドウ
が開きますので、枠内のフォルダーを変更したい場合は、「参照」ボタンを押して変更して下さい。
6
今後 gretlで行う分析で用いるファイルは、すべてこのフォルダー内で管理すると良いでしょう。それ以外の設定は、上の画像内の選択を参考にしてください。
2.2 データの読込:マウスでドラッグ
これで準備が出来ました。まずデータを読み込んでみましょう。
gretl には、(1)マウスでドラッグする, (2) ツールバーを使って読み込むファイルを指定する、の 2つの方法があります。両方やって見ましょう。まずは、ドラッグする方法です。
① gretlとエクスプローラを立ち上げる。② 下のように、エクスプローラで,該当するエクセルファイルをマウスで左クリック 1回して,
そのまま左ボタンを押しながら,マウスで gretl の立ち上がっている場所にファイルを持って
行き、gretl のウィンドウの中で,左ボタンを離す.すると、左下のような「スプレッドシート
のインポート」のウィンドウが出てくる。列の数字も行の数字も 1 で OK を押すと、右下のよ
7
うに,お知らせが出てくる.
③ 「閉じる」を押すと,下のように、時系列データやパネルデータに解釈しなおしますか?と聞かれるので,はいを押す(いいえを押すとクロスセクションデータとして認識される).
④ すると、左下のように、データセットの構造を指定するように指示されるので、ここではパネルを選択する。次に、右下のように、パネル構造の指定の仕方を尋ねてくる。皆さんが保存したデ
ータは、時系列データを重ねた構造なのですが、しばしば読み間違いが生じることもあるので、
ここではIDと時間をこちらで指定する「インデックス変数を使用する」を選びます。
8
⑤ 恐らく、gretlが下のように正しく認識してくれると思いますが、もし異なる変数が出てきたら、別の変数を選択肢の中から選んでください。
⑥ 「進む」を押すと、下のように確認画面が出るので、「適用」を押します。
⑦ これで下のように、正しく変数がすべて読み込まれました。
9
個々の変数名にポインターをあて、ダブルクリックして下さい。すると、左下のように、その変
数の値が出てきます。gretlでは、ユニットと時間を表す変数に対し、IDと yearの値とは別に、それぞれ1,2,3,4と番号が振られます。左にある 2:4という数字は、2番目の ID番号の従業員の 4期目の値という意味です。試しにシフトキーを使って IDと yearを両方選択して、ツールバーで、「データ」→「値を表示」を選択すると、右下の表が出てきます。これで、*:*という数の表示の意味がはっきりするでしょう。
2.3 データの読込:ツールバーで読み込むファイルを指定
10
次に、(2) ツールバーを使って読み込むファイルを指定する方法を紹介します。下のように、「ファイル」→「データを開く」→「ユーザー・ファイル」をクリックして下さい。
下のように、作業ディレクトリー内のファイル一覧が表れます(拡張子のデフォルト設定は、gretlのデータファイルなので、 初は何も見えないでしょう)。まず 初に、エクセルのファイルを読み
込むので、下のファイル形式を gretlデータファイルから、Excelファイル(*.xlsx)または Excelファイル(*.xls)(2003年以前のバージョンの場合後者)に変更してください。
11
出てきたファイルをクリックして、「開く」を押すと、下記のウィンドウが開きます。
ここから先は、マウスでドラッグする場合と同じなので(②以降を見て下さい)、説明を省略します。
2.4 データの保存 とりあえず、読み込んだデータを保存します。ツールバーで、「ファイル」→「名前をつけて保存」
で新規名で作業ディレクトリーに保存しておきます。元のエクセルファイルと同じ名前にしておけ
ば、混乱が少ないでしょう。注意事項として、すべてのファイル名は、アルファベットで保存してく
ださい。日本語名にすると、保存できない、開けないという問題が発生することがあります。
2.5 データの結合 エクセルと違い、gretl ではデータの結合は大変楽です。例えば、人事情報が一箇所で管理されず、
幾つかのシステムから引っ張ってきた情報を結合して分析を行うといったことが現場では頻繁に生じま
す。その際に、エクセルだと、VLOOKUP を用いて対応関係を確認しながら結合操作をするか、ACCESS に
取り込んでからクエリ機能で結合するかというやや面倒な手順を必要としました。gretlでは、データ
の結合作業は一瞬で行えます。
今、一つのデータセットに給与情報、別ファイルに人事考課情報が入っていて、この2つを一緒にし
て分析したいとします。まず、両方が、ID と年(year)を軸とするパネルデータになっていることを確
認します。構造が異なるデータは結合できません。次に一つのデータをまず gretl に読み込みます。そ
れから、メイン画面で、「ファイル」→「データを追加する…」を選択すると、作業フォルダーの中身
が表示されるので、そこで追加すべきデータファイルを指定します。すると、自動的に、対応する ID
と year を軸に、二つのデータを結合してくれます。上手くいくと、右下のようなメッセージが表示さ
れます。
12
上の例は、別の変数の入った2つのファイルを結合するケースですが、新しい観測値を加える場合に
も同じ方法で行えます。つまり、既に存在する変数について、新たに入手した直近のデータを付け加え
る場合、「ファイル」→「データを追加する…」を行えば、追加された年について、各 IDごとに、新規
データをそれぞれの変数に加えてアップデートします。
3 アイコン・ビューの活用
3.1 読み込んだデータをアイコンビューでチェック
gretlには、アイコンビューという大変便利な機能がついています。ここには、データセットの記述統計量や、作業する中で保存した様々なアウトプット(作業記録、推計結果、推計式、グラフなど)
が格納されており、前回の作業を即座に再現したり、それに修正を加えたりすることが出来ます。 gretl画面ツールバーの「表示」→「アイコン・ビュー」を選択すると、右のアイコン一覧が表示されます。 まず、データセットをクリックして下さい。すると、下のように、エクセルのような表が現れます。 データがきちんと読み込まれているか、あるいはデータにどの程度欠損値があるかというようなこ
とをチェックする時にこの方法でチェックすると良いでしょう。
13
3.2 要約統計量を見る
次に、各変数の平均、中央値、 小値、 大値、標準偏差といった要約(記述)統計量を見てみま
す。
「要約」というアイコンをダブルクリックすると、次のようなタブが出てきます。
「Show main statistics」を選択すると主要な要約統計量のみが表示され、「Show full statistics」を選択すると、全ての要約統計量が表示されます。ここでは「Show full statistics」を選択して「OK」を押します。
14
表の中で、年齢(age)、支給総額(total_pay)、年間総労働時間(total_hours)の統計量を確認して下さい。ちなみに、8.2335e+006という表示は、8.2335×106=8233500という意味で、桁数が多い際に gretlが自動的に表記を変えます。 3.3 相関係数表を見る
次に、相関行列も出してみましょう。アイコンビューの中の「相関行列」をダブルクリックしてく
ださい。次ページの画面のような表が出てきます。通常、相関行列は直角三角形の形状を取ります
が、変数の数が多い際は、三角形をいくつかのパーツに分断した形で表示されます。年齢(age)と支給総額(total_pay)の相関係数がどの程度あるかチェックして下さい。年間総労働時間(total_hours)と評価(hyoka)の関係はどうでしょうか?
15
16
4 簡単な分析ツールを使ってみる。 4.1 クロス集計の作成
4.1.1 カテゴリー変数間の関係を見る
gretlのもう一つ便利な機能は、クロス集計が簡単に出来るということです。エクセルのピボットテーブル作成よりはるかに簡単です。クロス集計とは、2つのカテゴリー変数の間の値の組み合わせ
の頻度を表にすることです。カテゴリー変数とは、学歴(大学院卒、大卒、高校卒、…)、性別(男、
女)、評価グレード(1,2,3,4,5)、年(2001,2002、…)といった離散的な値や共通の属性でグループ分けするための変数です。人事データを扱う上でしばしば我々は、グループの属性ごとに従業員が何
人いるか、あるいはある離散的な分布が年と共にどう変化したかに興味を持つことがしばしばあり
ます。 例として、職種ごとあるいは職階ごとに女性の分布がどうなっているか、または評価の分布が男女
でどの程度異なるか見てみたいとします。gretl画面ツールバーで「表示」→「クロス集計」を選択すると、次のような画面が出てきます。これから、性別(sex)と職種(job-type)、性別(sex)と職階(ygrade)、あるいは性別(sex)と評価(hyoka)の組み合わせで、人数または比率をクロス集計します。まず、sexと job-typeを選択して、「OK」を押します。
すると、下のクロス集計表が出てきます。1 行目が女性の数、2 行目が男性の数です。職種の方は、列1が管理職、列 2 が営業職、列 3 が技術職、列 4 が事務職です。女性の管理職は、6 年間でのべ
17
29名(単年では 5名程度)しかいないこと、技術職には女性が全くいないことがわかります。
初の画面で、「個数をカウント」ではなく、「列ごとに各行の割合(%)を表示」を選択すれば、女
性比率を計算することが出来ます。同様に、性別(sex)と職階(ygrade)ごとに人数をクロス集計してみてください。次に、性別(sex)と評価(hyoka)でクロス集計をしてください。分布の違いを男女で比較するためには、「行ごとに各列の割合(%)を表示」を選択する必要があります。どの変数を 初に入力するかにより、行と列が逆になることに注意してください。 初の変数が行、次の
変数が列です。
4.1.2 2つのグループの間に有意な差があるか?
クロス表の下に、” ピアソン(Pearson)のカイ二乗検定 = 2095.14 (3 df, p-value = 0)”という文章が表れますが、これは、二つのカテゴリー変数が独立である(両者の間に何も相関がない)かどうかを
検証するカイ二乗検定と呼ばれるテストの結果です。例えば、性別と評価のクロス表で言うと、この
数字が十分に大きければ(例えば、p-valueが 0.05より小さい)、性別と評価は独立ではない、一般的な言葉で言い換えると、評価の分布は男女間で有意に異なることを意味します。
4.1.3 クロス集計結果を保存
このクロス集計結果を残したいと思ったら、クロス集計結果を示すウィンドウに左上にある青と
赤に着色されたフロッピーディスクの形のアイコンを押してください(前頁図)。すると左下のよう
に選択肢が提示されます。テキストファイルとして保存したい場合は、「ファイルに保存」を選択し、
保存する場所と名前を書き入れて下さい。とりあえず、結果をアイコンとして残したい場合は、「セ
ッションをアイコンとして保存」を選択して下さい。すると右下のように、アイコン・ビューが開き
ます。その中の「クロス集計」をクリックすると、前頁図が再び現れます。
18
クロス集計結果をエクセルの表として作成したい場合は、クロス集計画面からコピペして、注意
深くデータの区切り位置を指定するしかないようです。
4.2 散布図の作成 4.2.1 一つのグラフを作成する。
gretlは、散布図も簡単に作成してくれます。メイン画面で「表示」→「変数のグラフ」→「xy散布図」を選択すると、下記のウィンドウが現れるので、変数を選択します。
19
そうすると、上のような散布図が現れる。 小二乗法という回帰分析の方法でデータにフィットさせ
た直線も出てくるので、どのような傾向が見られるかもわかります。Y軸の変数として複数選択する
と、色の異なる点で二つの散布図が重なって出てきます。
4.2.2 マルチグラフの作成 「表示」のあとに、「マルチ・グラフ」を選択すると、複数の散布図が同時に書けます。例えば、
「マルチ・グラフ」を選択した後に出てきた下記のウィンドウで、年齢と勤続年数という二つの X軸変数を指定すると、以下のグラフが現れます。
20
4.2.3 グラフの保存
これらのグラフを保存する際には、グラフの下に書いてあるように、グラフ内で右クリックすると
次のようにメニューが開きます。gretlの素晴らしいのは、作成したグラフを様々な形式(EMF, PNG, EPS,PDF)で保存してくれることです。
21
先ほどのクロス表と同じく「セッションをアイコンとして保存」を選択すると、アイコン・ビュー
が開き、グラフアイコンが加わっているのがわかります。こうしておけば、とりあえず保存しておい
て、後でグラフをどう使うか決めることが出来ます。
5 対話式コマンド画面(gretlコンソール) 5.1 コマンドを直接書き込む これまでは、ツールバーのみ使った分析を行いましたが、ツールバーにない機能も多数あります。そ
のためには、コマンドを直接書き込むコンソールと言うウィンドウを開く必要があります。メイン画
面の「ツール」→「gretlコンソール」をクリックして下さい。すると下記のようなウィンドウが開きます。
22
先ほどのツールバーを使って行った操作のすべてが、コマンドの直接入力で可能です。
5.2 コマンド例
5.2.1 summary 要約 要約統計量が欲しければ、?の後に summary と打ち込んでください.「アイコン・ビュー」→「要約」をクリックする操作と同じです。gretlコンソールを使うと、より柔軟な設定が可能となります。例えば、全部の要約統計量ではなく、いくつかの変数の統計量だけ欲しいときは、
summary の後にスペース区切りで,変数を打ち込んでください.例えば、summary age total_pay といれて Enterすると,以下のような表が得られます.
23
5.2.2 xtab クロス表作成 先述のクロス表を出したいときは、コンソールで xtab sex job_type と打ち込んでください。
5.2.3 gnuplot 散布図作成
gnuplot total_pay total_hours と打ち込むと、先ほどの散布図が出てきます。注意しなければいけないのは、縦軸変数を 初に
書くということです。先ほどと同じく、 gnuplot salary bonus total_hours と打ち込むと、給与とボーナスを縦軸にとる二つの散布図が同じチャートの中に出てきます。 5.2.4 scatters マルチ散布図作成
マルチグラフで散布図を描くときは、 scattersy軸項目;複数のX軸項目 というフォーマットでコマンドを打ち込みます。例えば、 scatters total_pay;age tenure と打ち込めば、先ほどと同じ二つのグラフが現れます。
5.3 入力した行を再入力する
コンソール画面で上矢印キー(↑)を押せば,前に打ったコマンド行が出てくるので、うち間違えた
時や変数を一つ書き換えたい時などは、上矢印キー(↑)で前の行を呼び出した上で修正を加えると
早い。上矢印キー(↑)を 2回押すと 2行前のコマンド行が、3回押すと 3行前のコマンド行が出てく
るので、いくらでも遡れるので便利です。
6 新規データを作成、消去する。 6.1 コンソール画面で入力 今後の分析では、既存の変数を用いて、新しい変数を作成する必要がたびたびおきます。新しいデ
ータを作成するのに用いるコマンドは、genr です。コンソール画面の中で、以下のコマンド行を打ち込んで下さい。 genr age2=age^2 (or age*age) ageの二乗 genr lsalary=ln(salary) salaryの自然対数を取る genr geo= (hire>198604) 男女雇用均等法施行後に入社した社員を示すダミー変数を
24
作成する。 genr geo= (hire>198604 && sex==1) 男女雇用均等法施行後に入社した女性社員を示すダミー変
数を作成する。 なお上の操作を行う変数が複数ある場合は、以下の「ショートカット」コマンドがあります。 square age tenure sq_age (=age の二乗)、sq_tenure (=tenure の二乗)の二つ
をいっぺんに作成できる。 logs salary bonus total_pay l_salary, l_bonus, l_total_pay (3変数の自然対数)をいっぺ
んに作成する。 dummify edu 教育(edu)は、1(中高卒)、2(高専・短大卒)、3(専門
卒)、4(大卒)の4つの値をとる変数ですが、それぞれのダミー変数Dedu_1, Dedu_2, Dedu_3, Dedu_4を作成すます。
※ダミー変数:各カテゴリーに当てはまる時は1を、当てはまらない時は 0を取る変数のこと。Dedu_1であれば、中高卒の時に1を、それ以外の学歴の時に 0を取るダミー変数である。
6.2 メイン画面のツールバーで作成
上記の操作は、すべてツールバーからでも行えます。 メイン画面で、変数を選択した上で(変数一覧の中の一つの変数をクリックすると、その変数の行
が青くなる)、「追加」をクリックするとプルダウンメニューが現れます(下図参照)。 「選択した変数の対数」を選択するとコンソール上で logs (変数名)を打ち込むのと同じ、「選択した変数の二乗」を選択すると square (変数名)と同じ、「離散変数に対するダミー」を選択すると dummify (変数名)と同じです。genrに相当するのは、「新規変数の定義」です。これを選択すると、入力欄が現れるので、定義式、例えば、”geo= (hire>198604 && sex==1)”と打ち込めばよい。
25
新規データの作成で使える関数は、エクセルのように多数あり、次のサイトでチェックすると良
い(ただし説明は英語)http://gretl.sourceforge.net/gretl-help/funcref.html 上記のように作成した新しい変数は、メイン画面変数一覧で下のように表示される。
26
6.3 作成したデータの消去
既に作成した変数を消去したい時は、変数間にスペースを挟んで、下記のように打ち込めばよい。 delete Dedu_1 Dedu_2 Dedu_3 Dedu_4 また、メイン画面に表示されている変数リストから、消去したい変数をクリックして青いマーカーを
つけた後、右クリックすると、可能な操作の一覧が出るので、そこで「削除」を選択しても、消去で
きる。
27
6.4 スカラーデータ(定数パラメーター)の作成
これまでは、時間や観測ユニットによって変化する変数を扱ってきました。こうした変数を新規に定
義するときは、genr というコマンドが必要です。定数パラメーターを定義するときはコマンドは要りません。単に、コンソール上で pi=3.1412 あるいは関数を用いて、 w=mean(total_pay) という風に定義すれば良いのです。ちなみに、後者の式は、従業員全員の平均総支給額を定義するこ
とになります。 定数パラメーターの一覧は、「アイコンビュー」→「スカラー」をダブルクリックすると、スカラー
というウィンドウが現れ,定数の一覧を見ることが出来ます。スカラーを定義する場合には,この画
面を開けておくと便利です.
6.5 ラグ付き変数 時系列データやパネルデータでは、ある変数のある時点の値と数期前の値を併せて分析する場合、
ラグ付き変数を用いる必要があります。つまり、
d_salary = salary(t) - salary(t-1)前年からの給与の増分
28
という操作を観測期間中すべての年において行う場合です。 このとき用いるのが、x(-s)という形をしたラグ付き変数です(xが変数名、sはラグ期間を表す数字)。 例えば、上の操作をする際は、 genr d_salary = salary - salary(-1) という式で、増分を計算できます。エクセルのように、観測期間すべてにコピペする必要はありませ
ん。 ちなみに、diffというコマンドを使うと、上の増分を取る操作は、より早くできます。 diff salary bonus total_pay と入力すると、給与、ボーナス、総支給額の前年比増分を瞬時に計算して、新変数 d_salary、d_bonus、d_total_payを作成します。
6.6 行列やベクトルの作成 行列の作成の仕方も講習しておきます。高校で数Ⅲ(?)や大学で線形代数を学ばなかった文系の方には、チンプンカンプンの説明箇所もあると思いますが、行列は人事データを用いたシミュレーショ
ン(将来予測)には欠かせません。ここでは gretlで行列を扱う際の基本的な操作を説明します。横ベクトルは、行が一つしかない行列、縦ベクトルは、列が一つしかない行列なので、以下では、すべ
て行列と総称します。 行列の作成の方法は、直接入力とツールバーを用いた方法と2つあります。
6.6.1 行列を直接入力する。 文字通り、数値を直接入力するやり方で、コンソール画面上で、以下のように入力します。
matrix A = { 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9} 数値の間にコンマ(、)をいれ、1 行づつ入力して行き、次の行に移る際に、セミコロン(;)を挿入します。スカラー変数(パラメーター)をいれても構いません。「matrix 」と「A」の間には半角スペースが必要なので、忘れないようにしてください。 入力後、コンソール画面で Aとだけ打ち込むと、下記のように行列の中身が確認できます。
6.6.2 ツールバーを用いて入力する。
29
メイン画面のツールバーで、「追加」→「行列の定義」と選択すると、作成方法の選択を求めら
れます。
次ページ左上の欄が出てきたら、行列の「名称」を入力し、「数値的に作成」を選んで行列の行
数、列数を指定しましょう。名前は、大文字一字でつけるのが良いでしょう。初期値 0のままで「OK」を押すと、次ページ右上のウィンドウが現れます。スプレッドシートの感覚で入力してください。横ベクトル、縦ベクトルも同様に作成できます。
30
入力を終えたら、アイコン・ビューで保存されていることを確認してください。Aという名前の行列のアイコンをクリックすると入力後の右上の表が再度出てきますので、いつでも行列内数
値を変更できます。
6.6.3 行列の合成 行列計算を行うと、出てきた二つの結果、例えば X1と X2という二つの行列もしくはベクトル
を並べて一つの表に入れたいということがしばしば生じます。行数が同じ二つの行列もしくは
ベクトルを横に並べる(つまりX = [𝑋%𝑋&],の形)には matrix X = X1 ~ X2
と入力します。
逆に、列数が同じ行列またはベクトルを縦に並べる(つまりX = )𝑋%𝑋&*の形)には、
matrix X = X1 | X2 と表記します。
6.6.4 行列の四則演算
31
こうして作成した行列やベクトルを使って、通常の行列間の四則演算を定義することが出来ま
す。下に列記しました。 matrix C = A + B matrix C = A - B matrix C = A * B matrix C = A \ B (ただし、バックスラッシュは半角) “ 𝐴,%𝐵 ” matrix C = A / B “ 𝐴𝐵,% ”
加えて、ドット”dot”演算子と呼ばれる下記の演算子は、通常の演算子の前に”.”が付いており、四則演算を要素ごとに行います。 matrix C = A .* B matrix C = A ./ B 例えば、
.1 23 43 ∗ .
56
783 = .1 × 5 + 2 × 63 × 5 + 4 × 6
1 × 7 + 2 × 83 × 8 + 4 × 83 = .1739
23563
は通常の行列計算ですが、ピリオドがつくと、
.1 23 43 .∗ .
56
783 = .1 × 53 × 6
2 × 74 × 83 = . 518
14323
と、各セルごとの単純な計算になります。 また、行列の足し算、引き算は、次元が同じ(行数、列数が全く同じ)行列同士でないと出来
ませんが、 matrix C = A + 3 という風にある数字を足すと、gretlはそれは Aと同じ次元の行列で要素がすべて 3である行列と見なして計算を行います。例えば、
.1 23 43 + 1 = .1 2
3 43 + .1 11 13 = .2 3
4 53
となります。 7 サンプルの制限
7.1 コンソール画面上でコマンド入力 gretl では、操作の対象を制限する必要がある場合、対象とするサンプルを一時的に制限する smplというコマンドを使います。 例えば、コンソール画面において、 smpl edu==4 --restrict と入力すると、この後の分析は大卒だけに限ることになります。「4」と「--restrict」の間には半角スペースを打ってください。スペースを忘れてしまうとエラーになるので注意が必要です。
32
※gretlでは、”--“ は、コマンドにオプションをつける際に用います。 更に、 smpl sex==2 --restrict と打ち込むと、この後の分析は大卒男性に限ることになります。 もし、サンプル制限を入れ替えたいと言う場合は、 smpl sex==2 --restrict --replace と打ち込めば、大卒に代わって、対象を(すべての学歴の)男性に制限したことを意味します。 後に前サンプルに戻る場合には、
smpl full と打ち込んでください。 7.2 gretlで用いる演算子
なお多くの統計ソフトで用いる演算子は、一般的名ものと異なることに注意が必要です。下に対応表
を載せます。 一般 = ³ £ ¹ and or gretl == >= <= != && ||
7.3 画面のツールバーでサンプル制限
なお上記の操作についても、ツールバーを用いて行えます。メイン画面から「標本」をクリックする
と、プルダウンバーが現れるので、「基準に基づいて制限する」を選択すると、下のような入力欄が
表れます。下図のように入力すると、 smpl edu==4 && sex==2 --restrict をコンソール画面で入力するのと同じです。
7.4 アンバランスト・パネルになった時 smplコマンドを用いた操作をした後に、パネルデータで用いられるコマンドでエラーが生じる場合
33
があります。その場合、操作の結果アンバランスト・パネルになってしまった可能性があります。例
えば、 smpl grade==3 --restrict という風に、特定の職位だけにサンプルを制限したような時です。このとき、観測期間中に昇格して
職位が変わる人が通常いますので、grade==3 に昇格する前や、grade==4 に昇格した後のデータが落ちて、アンバランストパネルになってしまいます。そういうときには、 smpl grade==3 –restrict –balanced と入力すると、適宜欠損値のある観測を補って、バランスト・パネルの構造を維持してくれます。
8 セッション全体の保存
gretlの便利な機能としてセッション保存があります。下のように、「ファイル」→「セッション・ファイル」→「セッションに名前をつけて保存」を選択すると、データや過去にアイコンとして保存
した表やグラスや推計結果ログなどの作業結果がすべて、セッションファイルの名の下に保存され
ます。拡張子は、.gretlです。次回、作業を続行したいときは、エクスプローラー上で名前をクリックすれば、gretlが自動的に開いて、データと保存していた結果が再度アイコン・ビューの中に現れる。既に gretlを開いていれば、「ファイル」→「開く」→「ユーザー・ファイル」によって、保存したセッションを開いても良い。 今後、gretlを使って作業する際には、毎回セッションを保存して、すべての結果や記録を残すようにしてください。
34
9 スクリプト・ファイルの活用 慣れないうちは、ツールバーもコンソール画面も使いにくいものです。また、 初はたびたびミスを
するので、書き直しが面倒です。作業が楽になるよう、スクリプト・ファイルを作成すると便利です。
これはプログラムの一連の処理を記述した手順書です。スクリプト・ファイルを用いる利点は、 – 同じ処理をするもの同士でプログラムを共有できる、 – 何度も修正し、やり直せるので、無駄が少ない、 – いわゆるバッチ処理で、多くの作業を一瞬にして終わらせることが出来る、 – 保存しておけば、新しいデータが増えたところで、いつでも同じ分析を簡単に再現出来る、 などです。 スクリプトファイルを作成するときは、メイン画面から、「ファイル」→「スクリプト・ファイル」
→「スクリプトの新規作成」を選択します。すでに保存してあるスクリプト・ファイルを開くときは、
「ユーザー・ファイル」を選択し、作業用フォルダーの中から選択して下さい。
スクリプト・ファイルを開くと次ページのようなウィンドウが開きます。これを走らせるには、上の
バーにある歯車型のアイコンをクリックしてください。これにより、スクリプト内のプログラムが実
行されます。
35
10 回帰分析
10.1 準備:変数の作成 も簡単な回帰分析は 小二乗法(Ordinary Least Squares以下 OLS)です。今回は、給与総額(対
数)を被説明変数に選択して、賃金関数を推定してみます。 初に必要な変数を作成します。ここま
での復習を兼ねて、以下の変数を作成してください。 <累乗根> ・年齢(age)の 2乗,3乗,4乗 ・勤続年数(tenure)の 2乗 <対数変換> ・給与総額(total_pay) ・年間労働時間(total_hours) <ダミー変数> ・年(year) ・性別(sex) ・職種(job_type) ・学歴(edu) 10.2 回帰分析の実行 データを読み込み、分析に必要な変数の加工(二乗や対数の計算など)を終えたら、メイン画面か
ら「モデル」→「 小二乗法」を選択して下さい。すると次のようなウィンドウが現れます。
実行ボタン
36
・Step1 定数項: 「const」は定数項を表します。回帰分析をする際には定数項を入れるのが一般的なので、これはそのままにしておきましょう。 ・Step2 変数の指定: 従属変数と説明変数をそれぞれ指定します。指定したい変数に矢印をあて左クリックしてハイライ
トした後、矢印ボタンを押せばリストに入ります。Shiftキーを押しながら並んだ複数の変数をクリックしてハイライトするか、Ctrlキーを押しながら飛び飛びの変数を一つずつハイライトして、後に矢印ボタンを押せば、一気に多くの変数を同時に説明変数として指定することも出来ます。
・Step3 ダミー変数: ダミー変数を入れる場合には注意点があります。1つの変数につき、全てのダミー変数を入れないようにしてください。例えば、学歴(edu)という変数からは 4つのダミー変数が作成されました。変数名は Dedu_1(中高卒), Dedu_2(高専・短大卒), Dedu_3(専門卒), Dedu_4(大卒)です。この 4つのダミー変数をすべて回帰式に入れてはいけません。まず、4つの学歴から基準となる値を決め、それ以外のダミー変数を回帰式に入れます。例えば、基準を「中高卒」にすると決め
たならば、Dedu_1は回帰式に入れないで、残りのDedu_2, Dedu_3, Dedu_4を入れます。中高卒の社員の人は、Dedu_2, Dedu_3, Dedu_4の全てが 0になった状態で表現されるため、Dedu_1を入れる必要がないのです。また、基準の設定は推定結果の係数の解釈にも影響してきます。推定の
結果得られた Dedu_2の係数の意味するのは、基準である「中高卒」の人と比べたときに、「高
37
専・短大卒」の人の賃金がどのくらい異なっているか、というものです。従って、ダミー変数を説
明変数に加える時には、係数の解釈への影響も考えて基準値を設定する必要があります。 ・Step4 頑健標準誤差: パネルの下の方に、「頑健標準誤差を使用する」というチェック項目があります。ほとんどのケース
で、「頑健標準偏差を使用する」にチェックを入れてください。これは、説明変数の水準に応じて、
非説明変数のバラつきが異なる可能性がある時に(例えば、男性と女性、大卒と高卒でバラつきが異
なるかもしれない)、推定値の標準偏差(いわゆる誤差)を正しく計算してくれます。
・Step5 結果の確認: 「OK」を押すと、次ページのように推定結果が表示されます。 【表中の数値の見方】 ①係数:パラメータとも言う。説明変数(X)と被説明変数(Y)との関連の強さを表す。係数の符号がプラスであれば、その説明変数と被説明変数はプラスの相関関係を持つ。係数の符号がマイナスであ
れば両者はマイナスの相関関係を持つ。 ②標準誤差:パラメータの推定には誤差が伴うため、推定結果ではパラメータの推定値(係数)と共
に誤差が表示される。 ③t値:誤差の大きさはパラメータの大きさに関連して変化するため、パラメータに対する相対的な大きさに変換する必要がある。パラメータを標準誤差で割った指標が t値。t値が大きいほど推定誤差が小さいと判断できる。
38
④p値:パラメータがゼロになる確率を表す。p値が一定の値(通常は、0.1, 0.05や 0.01)未満の時、「パラメータがゼロになる確率が統計的に十分低い」と判断する。つまり、この時統計的に有意であ
ると言える。
・Step 6 結果の解釈: 推定結果が表示されたら、 (1)係数の符号は予想通りか、
39
(2)どの変数が統計的に有意か(***1%,**5%,*10%の水準で有意)、 などをチェックした上で結果を解釈します。 各説明変数の t 値や p 値をみて統計的に有意であれば、その要因は従属変数と関連すると判断し、有意でない場合は関連しないと判断します。 例では従属変数に対数化した賃金を取った賃金関数を推定しています。いくつかの説明変数を解
釈してみましょう。 まず、全ての説明変数にアスタリスク(*)がついているので、従属変数の賃金は全ての説明変数と
有意な関連があることがわかります。また、従属変数は対数化されているため、係数の大きさは「当
該の説明変数が 1 単位増加した場合、100×β%賃金が上昇する」という解釈になります。Dedu_2(高専・短大卒)の係数を解釈してみましょう。値は「-0.0616173」となっています。解釈は、「年齢や勤続年数、職種、性別、観測年、労働時間を一定とした場合、中高卒と比較すると、高専・短大
卒の社員は 6.1%賃金が高い」です。複数の説明変数を投入した重回帰分析では、注目する変数(今の場合は高専・短大卒ダミー)以外の変数を一定と置いた場合の関連度合として解釈することがポ
イントです。
・Step 7 モデルの修正: 説明変数を入れ替えたいなど、モデルを修正する際は、メイン画面で「編集」→「モデルの修正」を
選択すれば、前ページのモデル指定のウインドウが再び現れますので、設定を変えて、すぐに再推定
することが出来ます。 10.3 結果の保存 上記の結果を保存してみましょう。推定結果が表示されているパネルの上部の「ファイル」タブを
クリックすると、保存形式を選択できます。ここでは「セッションをアイコンで保存」を選んでみま
しょう。アイコンビューを開くと、モデルが「モデル1」として保存されています。
10.4 推定結果を用いた分析 推定の後に様々な分析ツールを用いることが出来ます。その一つが残差(=実績値―理論値)のグ
40
ラフや、実績値と理論値そのものをプロットすることです。ちなみに、年齢ごとに、実績値と理論値
のプロットを描いて見ましょう。メイン画面から、「グラフ」→「理論値・実績値プロット」→「対
age」を描くと下記のグラフが現れます。「理論値」とは、推定した回帰式に各年齢を代入し
て算出した値を指し、「実績値」とは年齢ごとの実際の賃金の値を指します。青が理論値で赤が実績
値です。実績値は理論値よりもブレが大きいことが分かります。ただ大まかな動きは捉えており、報
酬制度の変更が人件費総額にどのような影響を与えるか考える場合、推定された賃金関数を用いて
予測を行うことが出来ます。 gretlマニュアルは以上です。お疲れ様でした。