情報提供のお願い: 職業経歴データの取り扱いを容易にするための下記のプログラムについて改善を図るため、これまで職業経歴のデータを分析した経験のあるかたの情報を募集しております。 くわしくはこちらをご覧ください。
という3段階にわけて処理するのが基本的な発想です。 適切なルーチンさえ書いてやれば 3. の統計分析も Perl ですませてしまうことができます。
- 1. データのバイナリ化
- 素データ・ファイルをバイナリ形式のファイルに変換する
- 2. データ・リダクション
- バイナリ形式のファイルから必要な変数を作成し、 必要な部分だけを抜き出してテキストファイル化する
- 3. 統計分析
- それを SAS, SPSS などの統計パッケージで分析する
多次元配列, 連想配列, 関数, ローカル変数などが使えて、 統計パッケージのデータ処理言語よりはるかに柔軟な処理がおこなえるため、 「2. データ・リダクション」作業が格段に楽になります。 また作業の経過がアルゴリズムのかたちでのこるので、後から再利用しやすいという利点もあります。 職歴の分析ではいろいろと複雑な処理をしないといけないので、 こういうやりかたが便利です。
職歴以外の分析にももちろん使えるはずです。 単純な計算をするだけなら SPSS なんかを使ったほうが楽でしょうが、 ちょっと複雑なことをしなければならない場合に使ってみてください。
なお、この ssm95a0.pl は素データレイアウトの指定部分(__END__ 以降)を削除してあるため、 実際には動きません。 この部分の情報の配布は、1995年SSM調査研究会メンバーだけに限らせていただきます (田中重人までご連絡ください)。
この例では、つぎの3つのファイルを require して使っています:
- ssm95a.pl (Shift-JIS)
- 1. データのバイナリ化 で書き出したログファイルの解析と基本的なデータ処理のためのルーチンを定義する
- occ.pl (Shift-JIS)
- 職業データを変換するためのハッシュと関数を定義する
- outputd.pl (Shift-JIS)
- SAS 用に欠損値を書きなおす関数を定義する。
[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' 部分を参照して推測してみてください。
[SSM職業分類]