[English] [SSM調査] [職業分類] [田中の研究] [田中のホーム]
情報提供のお願い: 職業経歴データの取り扱いを容易にするための下記のプログラムについて改善を図るため、これまで職業経歴のデータを分析した経験のあるかたの情報を募集しております。 くわしくはこちらをご覧ください

職歴分析用 Perl スクリプト

1995年SSM調査 A票(特に職歴)を加工・分析するためのスクリプト集 (Perl Ver.4 対応)。
1. データのバイナリ化
素データ・ファイルをバイナリ形式のファイルに変換する
2. データ・リダクション
バイナリ形式のファイルから必要な変数を作成し、 必要な部分だけを抜き出してテキストファイル化する
3. 統計分析
それを SAS, SPSS などの統計パッケージで分析する
という3段階にわけて処理するのが基本的な発想です。 適切なルーチンさえ書いてやれば 3. の統計分析も Perl ですませてしまうことができます。

多次元配列, 連想配列, 関数, ローカル変数などが使えて、 統計パッケージのデータ処理言語よりはるかに柔軟な処理がおこなえるため、 「2. データ・リダクション」作業が格段に楽になります。 また作業の経過がアルゴリズムのかたちでのこるので、後から再利用しやすいという利点もあります。 職歴の分析ではいろいろと複雑な処理をしないといけないので、 こういうやりかたが便利です。

職歴以外の分析にももちろん使えるはずです。 単純な計算をするだけなら SPSS なんかを使ったほうが楽でしょうが、 ちょっと複雑なことをしなければならない場合に使ってみてください。

1. データのバイナリ化

ssm95a0.pl (Shift-JIS) にテキスト形式の素データ(固定長フィールドのもの)を読ませると、 ロジカルな値チェックと欠損値の割り当てをおこなってバイナリファイル SSM95A.BIN を吐きます (原理的にはバイナリにする必要はないんだけど、こうしたほうが速くなるので....)。 このときの作業の経過と欠損値の割り当て、変数名などの情報 (後述) を標準出力に書き出すので、 これをリダイレクトしておいて、つぎの「データ・リダクション」で使います。

なお、この ssm95a0.pl は素データレイアウトの指定部分(__END__ 以降)を削除してあるため、 実際には動きません。 この部分の情報の配布は、1995年SSM調査研究会メンバーだけに限らせていただきます (田中重人までご連絡ください)。

2. データ・リダクション

ssm95a0.pl が書き出したバイナリファイルを使って変数をつくり、必要なデータだけを抜き出します。 例として 女性の職歴を解析してスペース区切りのテキスト・データを吐くPerlスクリプト (Shift-JIS) をのせておきます (データをバイナリ化したときの ログファイル を第1引数に指定して起動する)。

この例では、つぎの3つのファイルを require して使っています:

ssm95a.pl (Shift-JIS)
1. データのバイナリ化 で書き出したログファイルの解析と基本的なデータ処理のためのルーチンを定義する
occ.pl (Shift-JIS)
職業データを変換するためのハッシュと関数を定義する
outputd.pl (Shift-JIS)
SAS 用に欠損値を書きなおす関数を定義する。

3. 統計分析

この出力を統計パッケージで読み込んで統計分析を加えます (スクリプトの __END__ 以降の SAS 用のプログラム・サンプルを参照)。 本当は、Perl のなかで自前で分析できるようなライブラリをつくりたいところなんですが、 暇がなくて、全然進んでいません。

ログファイルの形式

WindowsのINIファイルとおなじような形式です。 たとえばつぎのような感じになります:
[miss]
OUT	-32766
DKNA	-32767
YET	-32763
BLANK	-32765
GHOST	-32764

[var]
IDT1	0	1-3
IDP1	0	4-5
KIND1	0	6-
BLANK1	0	7-
CARD1	0	8-
Q1_1	0	9-
Q1_2Y	0	10-11
Q1_2M	0	12-13
AGE	0	14-15
.............

[input]
nvar	406
ncard	9
nvar of Card 0	54
.............

[output]
template	s*
recordsize	812
N	2653
nvar	406
filename	SSM95A.BIN
filesize	2154236

sec	77
なにをやっているかは、上記の例と ssm95a0.pl、それに ssm95a.pl 中の `Read Configuration File' 部分を参照して推測してみてください。

Perl に関するリンク


[SSM職業分類]


東北大学 / 文学部 / 日本語教育学研究室 / 田中重人 / SSM調査 / 職業分類
E-mail: tsigeto(AT)nik.sal.tohoku.ac.jp
Last Updated at 2003-08-29. This page contains Japanese characters encoded in accordance with MS Kanji: "Shift JIS".