まえがき
第1章 統計調査データと誤差
第2章 SAS入門: 単純集計
第3章 データの記述と平均
第4章 相関と回帰
第5章 クロス表
第6章 調査の手順と実際: 「組織活性化のための従業員意識調査」マニュアル
付章 CMS入門
参考文献
大学に入ると「統計学」なる科目がある。私も教えている。かなりの人が履修くらいはしてみることになるはずだ。私もそうだった。ところが、多くの人は自分には関係のない科目と早々に決めてしまう。長い人生の中で、この時期を逃すと、統計学を教室で学ぶ機会はもう巡ってこないのに。
今から8年ほど前、私が統計学教室のまだ助手をしていた頃のお話。ある業界団体から調査の依頼があり、その下請けで統計処理を引き受けたことがあった。調査結果もまとまり、いざ最終報告という当日、元請けの先生は風邪でダウン。結局、私一人で報告をする羽目になった。クライアントである大手企業の調査部長クラスが顔を連ねる委員会で、1時間半ほどであったろうか、孤軍奮闘説明を終え、「何かご意見・ご質問等ございませんか?」と聞くと、某社の調査部長がおもむろに手を挙げて質問した。「先生方がよく口にする『相関』って何ですか? 仕事柄あちこちでよく聞く言葉なんですけど、今までこういう場では偉い先生ばかりで、こんな初歩的なことは気後れして聞けなかったもので……。今日は若い先生なので、良い機会かと……。」
思わず絶句である。これまでの1時間半は何だったのだろう。私が意気込んで話していたのは、諸要因間の「相関」関係だったのである(「相関」については本書第4章を参照のこと)。現在も統計学を教えているが、これは世を忍ぶ仮の姿。その実態はいわゆる「経営学者」なので、大企業の管理職相手に話をする機会は多い。このときもそうだったが、10人くらいの企業人を相手に、統計学の話を相関なら相関という概念だけに絞って、反応を確かめながら1時間も懇切丁寧に説明してあげると、ほとんどの人はうんうんと嬉しそうにうなずきながら満足して帰っていく。それはそれで教師冥利に尽きる話なのだが……。
《教訓その1: 初歩的なことになればなるほど、偉くなってからでは聞きにくくなるものである。改まった場ならば、なおのこと。普通の神経の持主は、できるだけお早めに。》
かくいう私も、恥ずかしい思い出がある。12年前、まだ大学院に入って間もないある日のこと、指導教官に呼ばれた。「予算が残っているので、企業対象に経営についてのアンケート調査をやろうと思う。君にまかせるから好きにやってみなさい。」私は喜び勇んで調査を行い、とりあえず単純集計だけは終えた。さて、後は何をするんだろう?
私は統計学の先生の研究室に相談に駆け込んだ。「そうですか。それでは基本的なところで、こんな本でも読んでみたらどうですか。」と3冊ほど見覚えのある統計学のテキストがテーブルの上に並べられた。いずれも読んだことのあるテキストだ。考えてみると、授業だ試験だとこれまでに読んだ統計学のテキストは五指に余るではないか。しかも、当時、大学院の演習で、やたら難解な数理統計学の英文の専門書まで読まされていた。にもかかわらず……。
《教訓その2: 統計学は、実際に自分で使えなければ、勉強しても何にもならない。》
私は気を取り直して、当時、既にコンピュータ・ソフトや調査の統計処理で立派に生活費を稼ぎ出していた友人数人に頼み込んで、コンピュータの統計パッケージの使い方の手ほどきを受けたり、統計パッケージのマニュアルを手当り次第に読みあさり、そこから遡って、統計学の専門書やテキストを読み直したりし始めた。今にして思えば、自分で苦労して集めたデータを目の前にして、ようやく実用的なツールとしての「統計学」を使う必要に目覚めたのであったが、しかしこうした努力のかいもなく、結局、その調査データの運命は……。
《教訓その3: 良質なデータは生でもおいしくいただけるが、質の悪いデータは、どんなに高度な統計手法を駆使して料理しても、とてもいただけるものではない。》
統計学のテキストを読むと、データは既に与えられているか、あるいはタダでころがっているかのような印象を受ける。しかし、どんな分野であれ、実際の研究では、良質のデータを集めることに労力のかなりの部分が費やされる。素材を前にして何が良質なのかを見極めるためには、データ収集の段階で既に、統計学をその観点から理解しておかなくてはならなかったのである。
いずれも一昔前の話である。その間に、統計学を巡る状況は一変した。コンピュータと統計パッケージの普及。パーソナル・コンピュータの驚異的高性能化。ワープロ・ソフトの進歩にともなうファイル編集能力の向上。いまや、統計学を使った統計処理は、ほとんど労力を要しない個人作業になっている。私が毎年趣味的に行っている100変数×1,000人程度の従業員意識調査では、かなり分厚い集計表でも一人で週末の2〜3日も使えば完成する。一昔前には1〜2カ月はかかっていたのに。統計学はもはや一部の研究者の特権的独占物ではない。多少なりとも知的な仕事をする人にとっては、自分で日常的に使えるツールになったのである。まるでワープロのように。
そんな統計学の新時代が幕を開けようとしていた頃に、一足先に経験させていただいた、貴重ではあったが、今や笑い話のタネとなってしまったエピソードを御披露したわけだが、本書はそんな教訓を生かして、通常の統計学テキストとはまったく異なるコンセプトに基づいて書かれている。
本書は『経営統計入門』と題しているが、正確には「経営学者が自分で使っている統計学と統計パッケージについて書いた入門書」というべきであろう。いわゆる教養書的な入門書ではない。統計学や調査手法、さらにコンピュータや統計パッケージの使い方まで、ツールとしてパッケージ化してしまおうという発想から生まれてきた統計学ユーザーのための入門書である。本書では最初から統計学教育と情報処理教育は融合してしまっている。取り上げた実例、素材も、私自身が手掛けている経営学分野の調査とそのデータから選ばれたものである。
少なくとも私にとっては、10年前の統計調査と現在の統計調査とでは、もっている意味も深みも全く異なる別のものである。従来の、そして現在でも大多数の人が信じている統計調査では、大変な時間と労力を注ぎ込んで、統計学やコンピュータの専門家・経験者も交えたチームで調査、集計を行い、集計結果を主体とした報告書がまとめられる。ほとんどの調査はもちろん一回限りで、しかも、標本誤差の評価は多少行っていても、調査のプロセス自体から発生する非標本誤差の管理はほとんど意識されていない。統計分析とは名ばかりで、ほとんど誤差を読んでいたようなものである。
ところが、今日においては、もはや統計的な集計処理は、調査プロセス全体の折り返し「点」にしか過ぎない。集計処理自体は、一人で、ごく短時間のうちに行うことが出来る。集計はゴールなのではなく、きちんとした事例研究を行うための探り針としての役割を果たすことになる。しかも、コンピュータ・テクノロジーの進歩は、全数調査を可能にし、遅かれ早かれ経営学分野で「標本調査」「標本誤差」といった言葉を死語にするだろう。調査では、非標本誤差の管理こそきちんと行われるべきなのである。
統計調査とは事実に肉薄するための手法にほかならない。報告書はもはや集計表で無味乾燥に埋められるようなことはなく、統計調査の前後、特に後に行われたヒアリング調査や事例研究によって得られた知見に溢れている。しかも統計調査は1回限りのものではなく、毎年繰り返し繰り返し行われるべき性格のものである。仮説の検定は必ず追試が行われるべきであるし、毎年得られる新鮮な事実発見は、次々と新しい理論や仮説を連鎖的に生み出していく。そこには、事実と論理の絡み合いの中で、調査・分析をする側のオリジナリティーが常に求められているのである。信頼性の高い事例研究をしようとするならば、いまや統計調査は強力な手法なのである。
このことは同時に、組織開発、日本的にいえば、組織活性化の新しい地平を切り開くものである。組織の再開発のためには、あるいは真の問題点を的確に把握・指摘するためには、社内的にも統計数字の裏付けが必要になる。社内での水掛論を排するにも、やはり統計調査の明らかにする事実が必要なのである。その意味からも、本書で調査の実例として取り上げた「組織活性化のための従業員意識調査」のノウハウは「統計的組織活性化」の可能性を示すという意味で、企業の担当者にとって有益なものとなろう。これは、大学の研究者が経営組織の統計調査を行う際にも、必ずやヒントになるはずである。
本書は、大学の学部及び大学院における講義ノートをもとにして作成されている。この講義ノートは、もともとは1988年度に学習院大学大学院経営学研究科において非常勤講師として「統計調査論」を担当したことがきっかけとなって書き始められたものである。同時に、当時所属していた東北大学経済学部経営学科で、「経営学」ゼミナールの学部学生対象の卒業論文指導にも3年ほど手を加えながら使った。その後、1991年度から、私の所属が東京大学教養学部社会科学科に変わって、「統計学」「社会調査法」を担当することになったので、この講義ノートの改訂がさらに続けられたのである。この間、(財)日本生産性本部の経営アカデミーで、企業の実務担当者相手に講義する際にも、この講義ノートの一部が使用されてきた。
本書は、その成り立ちからして、実に多くの方々の御指導、御助力に支えられている。まず私の所属する東京大学教養学部社会科学科統計学教室の代々の先生方からは様々な形でお世話になった。特に、大学院時代から御指導をいただき、本書の執筆を勧めてくださった松原望先生と、助手時代から御指導をいただいている林周二先生(現在、明治学院大学教授)には、この場をお借りして心から御礼申し上げたい。両先生との出会いがなければ、私がこのようなテキストを執筆することはありえなかったであろう。
また本書のもとになった講義ノートを作成するきっかけを作っていただいた、当時の学習院大学教授、現在は筑波大学教授の河合忠彦先生。本書の中で調査の実例として取り上げている「組織活性化のための従業員意識調査」の実施に、1986年以来、毎年親身になって協力していただいた(財)日本生産性本部の新井一夫氏。SASに関する最新資料を快く提供していただいた慨ASインスティテュートジャパンの竹内清恵さん。そして、忘れてはならないのは、東北大学在職中に、私がSASユーザーとして独り立ちするのを多方面からサポートしてくれた東北大学情報処理教育センターのスタッフの方々。本書の執筆を終始暖かく励ましていただいた東京大学出版会の小池美樹彦氏。これらの方々には、この場で感謝の意を表させていただきたい。
1992年9月
高橋伸夫
本書では、統計パッケージとしてSAS(サスと読む)を取り上げている。SASはいまや代表的な統計パッケージであり、多くの大学、企業の大型汎用計算機(これをメインフレーム(mainframe)と呼ぶ)に既に導入されている。またパーソナル・コンピュータ用はもともと廉価で、ワープロ・ソフト並の料金設定(ただしレンタル)である上に、サイト契約を結ぶことで、1台当りの単位価格を大幅に引き下げることもできる。したがって、本書の想定する読者にとっては、SASを使用する機会は十分にあると判断した。
SASとは、もともとStatistical Analysis System (統計分析システム)の略称だったが、現在では、データ管理機能等の重要性が増し、SASが正式な名称となっている。その原形は、1966年に米国ノース・カロライナ(North Carolina)州立大学で開発が開始され、1976年には、SAS Institute Inc.が設立され、以後、SASの維持、開発、販売、教育等を行うようになった。簡単に言えば、SASとはデータ・セットと呼ばれるファイルに対して、統計処理・演算処理をはじめとする各種の加工処理を行うパッケージ・プログラムである。各種の統計処理用にプログラムをそれぞれFORTRANやBASICなどの言語を使って自分で作成、開発、維持することは、一般には非常に大変な作業である。その点SASは、既に完成されている統計用プログラムの集合体、システムであり、利用者が必要なプログラムを指定すると、それらを機能的に結び付けて、統計処理をしてくれるわけである。
SASはもともとIBMのメインフレーム上で動く統計分析用ソフトウェアとして誕生し、その後もメインフレーム用に進歩を遂げてきたが、最新版である第6版(リリース6)では、メインフレーム用よりもパーソナル・コンピュータ用の方が早く出されている。本書では、この最新版、SAS第6版の使い方とプログラミングについて、パーソナル・コンピュータ版SAS、いわゆるPC版SASを中心に、IBMメインフレームの代表的オペレーティング・システム(operating system 略して OS) CMSに対応するCMS版SASについても、相違点などにも言及しながら併せて説明していく。PC版SASとCMS版SASの両方を両刀遣い的に取り上げるのは本書が初めてだと思う。これは、最新版であるSAS第6版では、メインフレーム用もパーソナル・コンピュータ用もともにC言語で書かれ、使用方法は基本的に同じであるということに加えて、今後私を含めて多くの人々が、データ・サイズやコスト、利用可能性など様々な要因を勘案して、SASのプラットフォームとしてのパーソナル・コンピュータとメインフレームを使い分けていくことになると考えたからである。また現在でも一部メインフレームで使用されているCMS版SASリリース5.18については、基本的使用方法を概説しておいた。
ちなみに、私はもともとIBMのメインフレームでのCMS版SASユーザーであるが、本書を書くに当って、もっとも安上がりなシステム構成:
ただし、MS-DOSリリース5.00のEMSやUMBを使っても、まだメモリが十分に確保できない。そこで、日本語フロント・エンド・プロセッサー(FEP)やDOSSHELL、MOUSE等、メモリに常駐してその分メモリを食ってしまうものについては、AUTOEXEC.BATやCONFIG.SYSのファイルからあらかじめ削除して使用している。MS-DOSでSASを動かすときは、このメモリ容量が最大の制約条件のようだ。
またSASのシステムは、BASE SASで7.8MB、SAS/STATで6.3MBと合計すると14.1MB分のディスクを使う(パーソナル・コンピュータ用のSASリリース6.04の全プロダクトでは38.2MBのディスク容量が必要になる)。MS-DOS自体でも、放って置くと3MB以上ディスクを使う。本書で使用するSASプログラムの例では、164変数×907件で1.2MBの永久SASデータ・セットと呼ばれるMS-DOSファイルが固定ディスクに常駐することになるので、作業用ファイルのことも考えると、理屈の上では、固定ディスク20MBはSASが「統計パッケージ」として稼働可能なぎりぎりのサイズである。それが実際に稼働することを今回確認できたので、パーソナル・コンピュータ用にSASの導入を考えている読者は、ハードウェア選択の際の参考にしてほしい。
本書の執筆にあたって想定している読者は、統計学やコンピュータを専攻しない学生、社会人である。実例や素材が経営学分野から選ばれているので、特に経営学分野の学部学生・大学院生、あるいは企業の人事・教育・能力開発などの担当者には、興味をもってもらえると思う。
本書は、原則として「高度」「難解」な統計学理論の理解を目指すものではない。統計学、調査、データ解析の考え方、取り組み姿勢を体得することを目指す。統計学、コンピュータの知識は前提にせず、それらの基礎については的を絞って、丁寧に説明する。
本書の目的は、読者が自ら調査データを集め、自ら統計学やコンピュータ、統計パッケージを駆使して、調査データを分析できるようにすることである。最終的には、卒業論文・修士論文レベルの論文、報告書の作成に「使える」統計学、統計調査法を目指しており、特に、参入障壁の高い、コンピュータを使った調査データの統計処理に重点が置かれている。
本書は私なりの新しい統計学教育のコンセプトに基づいて書かれている。大学で授業のテキストとして使用するときには、次のような使い方ができる。
本書は全体として調査研究プロセスを構成するように書かれているが。その一方で各章は教材としてかなり独立性をもたせている。各章がやや長めなのはそのためで、SASの部分を除けば、必ずしも1冊全部を読まなくても、必要な部分だけを重点的に使用することができる。例えば、本書を企業などでより短期間の研修用テキストとして使用する場合には、「統計・調査概論」ならば第1章だけを丁寧に教えればよい。調査の分析結果に接する人に対しては、平均値の利用に関しては第3章だけを教えてもよい。相関を中心に第4章だけ、あるいはクロス表の読み方に関して第5章だけを教えてもよい。SAS講習会であれば、第2章だけを教材に使うこともできる。
本書には、実際の統計調査がまるごと掲載されている。第6章はもともと統計調査マニュアルを意図して書かれているので、手順にしたがって、自分なりの企画で調査を行うこともできる。
統計学は、もともと多くの分野からの小さな支流が、過去2世紀以上もかかって合流し、一つの太い流れになった学問である。現在の統計学の流れの中には、自然科学に属する流れも社会科学に属する流れもあるが、人間の生活のあらゆる面とあらゆる科学が統計学と関わってきたといってもいいだろう。いい換えれば、現象の法則性に対する人間のあくなき探求心が統計学を生み出してきたのであり、統計学は科学の文法(the grammar of science)であると呼ばれる由縁でもある。
「統計学」という用語自体は、17世紀のドイツの国勢学に遡るといわれる。国勢学とは、国家顕著事項の総体の記述に関する学問であり、国情記述学とでも呼ぶべきものであった。今日、統計学を指すStatistik (英語ではstatistics)は、国家Staat (英語ではstate)の状況を歴史的に記述することを意味しているといわれる。英語のstatisticsには、このように、集団から引き出された数量的情報としての統計数字を指す統計もしくは「統計データ」の意味と、もう一つ、統計データを処理、分析して、集団についての有意義な情報を得ることを主要な課題とする学問である「統計学」の二つの意味がある。二つの異なる概念に同じ単語"statistics"が用いられているのはこうした学説史的事情によるものである。
統計学とは科学する心の結晶であり、社会科学の分野においては、社会、経済、経営現象を含めて、多くの現象がどんなふうに(how)になっているかを調べる学問である。そのプロセスはまず調査(survey)から始まる。この章では、統計学および調査の考え方を概観し、それにもとづいてデータの収集方法や尺度、そして調査にともなう誤差について考えてみることにしよう。
調査および調査結果への接し方に関しては、いくつか注意を要する点があるので、そのことから話を始めることにしよう。
まず最初に、調査結果は実態そのものを表しているのではないということには注意する必要がある。調査においては、回答に各回答者の真の意見が表されているかどうかはわからないし、質問の仕方によってはさまざまな統計数字が出てくることになる。つまり、調査結果はそのままで何らかの実態を表したものではない。しかし、調査結果は「ある質問に対して、ある人からある回答が返ってくる」という、まさに「事実」の集団的な積み重ねである。統計的な処理を施された調査結果は、集団を見るための一つの指標(index)なのである。
この指標を実態そのものと受け取るのは誤りである。この事実(=指標)が何を意味するかは、対象となっている社会あるいは企業の動きと突き合わせることによってはじめてわかってくるものである。例えば、政党支持率は選挙の際の政党の得票率とは一致しないが、政党支持率の推移は政治情勢の行方を見るための一つの指標となっている。そして、政党支持率の推移を他の様々な要因と組み合わせて考えることで、政党の得票率を占う重要な手がかりにもなるのである。つまり、統計処理された調査結果は一つの事実であり、この事実こそ実態を探る手がかりなのである。
次に、調査あるいは統計では因果関係は分からないということにも注意する必要がある。いま2変数xとyとの間に因果関係が存在するということがいえるためには、次の3つの条件が満たされている必要がある。
この3つの条件を満たすことは可能であろうか。このうち一見難しそうな2は実は達成可能である。1回限りの調査であっても質問文を工夫することで、例えば、変数xについては現時点での値、変数yについては1ヵ月前の値を思い出して回答してもらうというようにすれば、変数間に時間的順序を課すことはできる。変数自体の時間的順序と、データ収集に際しての時間的順序とは別ものなのである。問題は、1と3で、他の因果変数の影響を除いた後にもxとyとの間に相関が存在することを示さなくてはならない(相関については第4章で後述)。しかし、潜在的には、そのような変数は無限に存在しているのであって、どの変数をモデルに入れるかの選択は理論的考察にかかっているのである。したがって、この1と3の2条件を満たすことは本質的に不可能である。2変数xとyとの間に因果関係が存在することを統計的に立証することはできない。
考えてみれば、調査票を作成する段階で、意識している、していないに関わらず、既に変数の選択を行ってしまっているのであり、暗黙のうちに何らかの因果関係を前提にしてしまっていることになる。もしデータ収集に際して、中心的な変数を落としてしまったり、中心的な概念を妥当性を欠く方法で測定してしまったりしていれば、統計的には正しい分析が実際には誤った結果を導くことにもなる。
さらに、相関は方向性のない対称性のある性質であるから、たとえ相関があるとわかっても、分析者が何らかの理論に基づくか、もしくは自分の頭で考えるかして状況を設定しない限り、変数間の因果の方向を決めることはできない(例えば第5章第6節を参照のこと)。その意味では、どんな統計的方法も究極の因果関係を扱うことはできないし、そもそも因果関係が存在することさえ教えてはくれないのである。結局、調査あるいは統計では因果関係はわからない。
それでは、調査はどういった目的で行われるのであろうか。まず挙げられるのが、事前の知識の精度を向上させることである。その代表は、通常の研究論文などにみられるように理論に基づいた仮説の構築とその検証である。しかしそれだけには限らない。ただ単に調査を企画、実施し、その結果として得られた統計数字を使うというだけでも、それは自らの知識、常識、理解度を試されていることを意味している。なかには、結果の意外性を期待して調査を行う人がいるが、そうやって調査を考えることは、調査の本質を誤解しているといってよいだろう。調査は仮説とまではいかなくても、たとえ暗黙のうちにでも事実や因果関係についての事前の知識を利用して設計されるものであり、事前の知識が不十分であれば、ヒアリング調査や文献などを通じて、ある程度の知識の獲得が図られるべきである。このようにして、調査の設計が念入りに行われていれば、調査結果に意外性を感じることはほとんどない。
もしも意外な調査結果が得られるようなことがあれば、調査方法等に誤りがなかったか、あるいは自分がとんでもない考え違いをしていなかったかをまず疑ってみる必要がある。経験的には、「意外な」調査結果は「いい加減な」調査設計から生まれることが多い。「常識を覆すような調査結果」は基本的にはあり得ないと心得て、調査あるいは調査結果に接するべきであろう。良い調査では、当り前のことが当り前に結果となって出るものであり、調査をすることにより、それまで漠然とそれらしい傾向があると感じていたことが、より精確に統計数字となって知り得るようになるものである。
調査のもう一つの目的は、その次の調査のためのヒント、ヒラメキを得ることである。常識を覆すような調査結果は基本的にあり得ないと心得て、念入りな調査設計を行ったにもかかわらず、意外な、あるいは、それまで気づかれていなかった新しい事実・関係を発見することがある。いわゆる事実発見である。その時には、もう一度調査を行ってみなくてはならない。つまり、繰り返し調査を覚悟するというのが、調査の本来の姿である。そして、その事実や関係を論理的にどのように説明できるかを常に考えていく姿勢が大切である。
既に述べた通り、統計学とは科学する心の結晶であり、社会科学の分野においては、社会、経済、経営現象を含めて、多くの現象がどんなふうになっているのかを調べる学問である。統計数字で事実を記述することを目指してはいるが、論理を生み出すことはできない。論理は常に人間の頭の中から生み出されるものである。そして、その論理や常識として知っていることの精度を向上させることが、統計調査の主目的なのである。
本書では、こうした統計調査の実際の姿をできるだけ具体的かつ明確にイメージしてもらうために、第2章以降に登場する統計処理、分析に用いるデータ例をはじめ、SASプログラムの例なども、すべて一貫して「組織活性化のための従業員意識調査」を素材として、架空ではなく実際のものを用いている。この調査の詳細に関しては、第6章で統計調査の例として、その調査手順と方法が、実際に用いられた詳細な資料とともに取り上げられる。第6章はもともと統計調査マニュアルを意図して書かれているので、興味のある読者は、第2章に進む前に読んでおくと、統計調査の感覚がつかめるだろう。「組織活性化のための従業員意識調査」は、1986年以来毎年6月〜翌年1月の8カ月をかけて、(財)日本生産性本部経営アカデミー「人間能力と組織開発」コースを舞台にして、筆者によって繰り返し繰り返し企画・実施されてきたものである。1991年までに、のべで約50社、約5,000人を調べてきた。第2章以降では、そのうちある年度の調査データをデータ例として扱うことにした。
この調査では、企業間での横断的な研究グループを作り、このメンバー企業の間で同時に同一の従業員意識調査を行い、企業間・職場間の比較集計を行う。他社の実例や知恵も借りながら、調査結果の企業間比較によって、自社の抱える問題点を探り、事例研究を行うというプロセスを繰り返すことで、研究グループを中心として組織の活性化に関する問題発見を図るのである。この「組織活性化のための従業員意識調査」では、従業員の意識調査を行なうことを契機として問題発見プロセスを進めていくことになっている。
こうして毎年繰り返し繰り返し行なわれるこの調査を通じた調査ノウハウの蓄積で、経営組織を対象とした統計調査は洗練されたものになりつつあり、ヒアリング調査と統計的な比較調査の繰り返しサイクルが、組織開発(organization development)、あるいは日本的にいえば組織活性化(organizational activation)における数量的手法としてかなりの効果をもっていることが経験的に明らかになってきた。特に調査結果の統計数字を前にしての事後的なヒアリング調査はかなり効果的で、的確に核心的な事実について聞き出すことを可能にしてくれる。それは、効果的なヒアリング調査のために統計調査をしているといってもいいほどである。
統計的に処理された結果は、しばしば被験企業にとっては意外な数字であるらしいが、外部から第三者として観察している研究者にとっては、なぜ意外と感じるのか理解に苦しむことがほとんどである。第三者的には、統計数字は事前のヒアリング調査の内容を素直に反映した、経験的、常識的にもっともなものばかりだからである。そして、事実、その後引き続き行われる事後的なヒアリング調査によって、1企業の内部の人間が抱くこの「意外性」の溝はどんどん埋められていくことになる。その意味では、1企業という狭くて閉鎖的な世界にしか通用しない前提、常識が、統計数字のもつ明白さをきっかけにして、事実によって棄却を迫られることになるのである。それはこの章の中でこれから扱う仮説検定と同じ論理である。「うちの常識=よその常識」という仮説が、統計データによって棄却されることを意味している。こうした当該企業のメンバーが共通してもっている前提、常識の客観的な同定と吟味・検討が組織活性化にとっては重要なのである。
それでは、調査研究プロセスにおいて、統計学がどのような役割を果たしているのかを、調査対象、原データとの関係を考えながら、調査研究プロセスの経過にしたがって、調査対象と調査の種類、原データと統計処理の順番に見ていくことにしよう。
調査研究プロセスはまず観測(observation)から始まる。これは自然科学でも社会科学でも同じで、自然科学の分野では、それは一般に実験(experiment)とよばれ、それに関する統計理論としては「実験計画法」がある。他方、社会科学の分野では、それは調査(survey)とよばれ、その統計理論は「社会調査法」である。
社会科学分野での調査においては、例えば、個人、世帯、職場、会社などが調査の単位となる。そして、調査の対象となりうるすべての単位を集めたもののことを母集団(population)とよぶ。母集団とは、調査対象の集まりであって、調査によって、それについて何らかの結論を下そうとしているものである。
調査の対象となる単位のことは要素(element)とも呼ばれる。そういう言い方をすれば、母集団とはまさに集合であり、特定の要素をその中に含ませるかどうかについての明確な規則(ルール)がなくてはならない。このルールには、通常は、単位そのもの、時間、場所などに関する記述が含まれている。母集団は調査者から独立に存在しているものではなくて、調査者が具体的かつ明確に設定すべきものである。
調査方法については、統計学の中では既に述べたように「社会調査法」が取り扱うべき課題であるが、ここでおおまかに説明しておこう。一口に調査といっても、これにはさまざまな種類があり、調査対象である母集団の大きさや母集団の数によって異なった種類の調査が行われる。まず最初に、母集団の大きさによって次の二つの調査方法が選択される。
全数調査と標本調査のどちらを選択すべきかは、母集団の大きさ、調査に必要な労力、コストによって決る。例えば、全数調査の代表例としては、国勢調査(人口census)がある。国勢調査は、決められた年の10月1日現在の日本の全人口を対象にして行われる全数調査であって、1920年(大正9年)以後5年ごとに定期的に行われている。(ただし、戦争の影響のために、1945年(昭和20年)の調査は実施されず、1947年(昭和22年)に臨時調査が実施された。) 一般に、国勢調査に代表される日本全国を対象とする全数調査は、巨額の費用と大量の人員と長い時間を要する。したがって、国勢調査以外には、事業所統計調査、農林業センサス、工業統計、商業統計など、全数調査の数は限られている。実際に、われわれが「日本の○○についての調査」としてよく耳にするのは、そのほとんどが標本調査である。標本調査については、後でこの章の中でより詳しく説明する。
もっとも、このように調査といえば従来はほとんど標本調査を意味していたのであるが、近年の著しいコンピュータ・テクノロジーの進歩は、一つの企業の従業員を調べる程度では、全数調査を十分可能にしてしまった。パーソナル・コンピュータですら、数千人規模の調査をほとんど問題なく集計、分析できる。特に経営分野においては、標本調査が死語になる日が遠からずやってくるだろう。
次に、調査する母集団の数と調査時点によって、調査は表1.1のように、横断的調査、比較調査、パネル調査、繰り返し調査の4種類に分類される。このうち基本になるのは、一つの母集団に対する1回限りの調査である横断的調査である。他の調査方法は、この横断的調査を色々と組み合わせたものである。
表1.1 調査方法の種類
調査時点 | 母集団 | |
---|---|---|
同一母集団 | 複数母集団 | |
一時点 | 横断的調査 | 比較調査 |
複数時点 | パネル調査 | 繰り返し調査 |
調査時点が異なれば、母集団を規定する他のルールが同じでも、厳密には母集団の要素は異なるので、このような場合も、厳密には繰り返し調査になる。しかし一般に、調査時点が異なるだけで、母集団を規定する他のルールが同じならば、そのような調査から得られたデータは、時系列データ(time-series data)とよばれる。時系列データによって、時間の経過による変化や異時点間の関係を知ることができる。パネル調査も、パネルを固定する間、母集団の要素は変動しないと仮定して、時系列データを得るために行われるものである。
いずれにせよ、調査結果や分析結果を正しく理解するためには、その調査がどのようにして行なわれたどんな種類の調査であるかを知らなくてはならない。ややもすると、調査結果の統計数字だけが一人歩きしがちであるが、統計数字は調査方法と常にペアで評価されるべきものなのである。(→演習問題1.1)
調査の結果は、原データ、もしくは単にデータとよばれ、統計的記述の素材となる。データとは、標本調査ならば標本、全数調査ならば母集団に属する各要素に関する観測値のまとまりを指している。最近のように、コンピュータを使った集計、統計分析が中心になってくると、データの処理上の便宜を考えれば、観測値はカナやアルファベットなどの文字ではなくて、数値で表されていることが望ましい。
ところで、観測値が数値となっていれば、形式的にはそれらの間の演算が可能になる。しかし、注意が必要なのは、観測値がどんな尺度(scale)によって測定されたのかによって、どのような水準の演算を行うことができるかが決まってくるということである。これはコンピュータに判断できることではなくて、人間の側できちんとコンピュータに指示しておくべきことである。よく用いられる尺度の分類としては、次の4つがある。
名義尺度、順序尺度にもとづくデータのことを質的(定性的)データ(qualitative data)といい、間隔尺度、比率尺度にもとづくデータのことを量的(定量的)データ(quantitative data)という。上のリストの1から4へとなるにしたがって、尺度としては上位になっていく。つまり、上位の尺度にもとづく観測値には、下位の尺度にもとづく観測値の意味、およびそれに可能な演算が包含されている。観測値の演算可能性は、
こうした演算可能性については十分に注意を払わねばならない。
調査によって得られた原データに対して統計処理を施したものが統計資料である。これは、よく調査結果ともよばれる。このとき、与えられた原データを調べ、その規則性から統計的法則を発見する記述統計学(descriptive statistics)が活躍することになる。つまり、図表によってデータを整理し、平均、分散などの特性値によってデータを要約するというように、データを整理・要約して、母集団や標本の集団としての特徴を記述するのである。ただし、データを数値的に要約する場合には、(2)で述べたように、データが測定された尺度が問題になる。データの演算可能性については、データ処理を始める前に、必ず考えておく必要がある。
ところで、統計学の役割はデータの整理・要約だけではない。全数調査のように、母集団を構成するすべての要素を調べる調査の場合には、記述統計学だけで十分であり、それによって得られる結果に、それ以上なにも付け加えるべきことはない。ところが、より頻繁に行われる標本調査のように、母集団から適当な標本を抽出して、その標本について得られた知識にもとづいて、母集団についての推論を行う場合、なぜ全数を調べずにその一部の標本を調査するだけで、母集団全体についての推論が可能になるのかという疑問がわいてくる。ここで推測統計学が重要な役割を果たすことになる。
実は、母集団の部分である標本が、無作為抽出によって選ばれていれば、確率という論理装置を通して、部分から全体を知ることは可能なのである。このとき、母集団全体ではなくて、その一部を観察して、その結果にもとづいて、全体の法則性の発見することを統計的推測(statistical inference)とよぶ。統計的推測には、仮説検定(hypothesis testing)と推定(estimation)という二つの柱がある。もちろん、標本調査から導き出された結論は、そこから標本を抽出した母集団についてのみ妥当することになる。そして、確率論および統計学理論によって、標本抽出にともなう誤差を客観的に評価することが可能になるのである。
このように、調査においては、調査にともなって発生する誤差を抑え、あるいはその大きさを評価することが重要になる。実は、調査にともなう誤差は標本抽出にともなうものばかりではなく、たとえ標本抽出を行わずに、全数調査を行った場合でさえ発生する誤差も存在する。そこで、次節では、こうした調査にともなう誤差についてまとめておこう。
図1.1 社会科学における統計学の役割
調査にともなう誤差には、図1.2に示すように標本誤差と非標本誤差の2種類がある。このうち、非標本誤差(non-sampling error)は、全数調査でも標本調査でも生じる調査過程での誤差であり、これについて客観的に評価することは難しい。統計学理論では標本誤差については、かなり詳細な吟味が行われるが、非標本誤差については、なおざりの感がある。しかし、現実に行なわれる通常の調査では、非標本誤差の存在とその大きさは、かなり深刻な問題となっている。
図1.2 調査にともなう誤差
非標本誤差としては
非標本誤差のうち、1. 無回答の誤差、2. 回答の偏りについては、どのような調査方法をとるのかによって、そのおおよその大きさが決ってくる。質問調査票を使った調査方法としては、大きく分けて、表1.2のような方法が考えられる。
表1.2 調査方法の分類
記入者 | 留置 | 配布 | 回収 | |
---|---|---|---|---|
面接調査法(interview survey) | 他記式 | × | 調査員 | 調査員 |
面前記入法 | 自記式 | × | 調査員 | 調査員 |
配布回収法(留置(トメオキ)法) | 自記式 | ○ | 調査員 | 調査員 |
郵送回収法 | 自記式 | ○ | 郵便 | 調査員 |
郵送法(mail survey) | 自記式 | ○ | 郵便 | 郵便 |
表1.2の中にある他記式(または他計式ともいう)とは、調査員が調査票にしたがって質問し、それに対する調査対象の回答を調査員が調査票に記入する方式である。それに対して、自記式(または自計式ともいう)とは、調査対象が自分で調査票の質問を読みながら、自分で回答を調査票に記入する方式である。
これらの調査方法の比較は表1.3のようになる。非標本誤差との関係では、回収率、回答の偏りに注意しながら、調査方法を選択する必要がある。
表1.3 調査方法の比較
面接調査法 | 面前記入法 | 配布回収法 | 郵送回収法 | 郵送法 | |
---|---|---|---|---|---|
調査費用 |
|
|
| ||
調査票の配布回収に要する時間 |
|
|
| ||
調査票の回収率 |
|
|
| ||
調査対象本人の確認 |
|
| |||
質問の意味の理解度 |
|
| |||
回答の偏り |
|
|
通常、郵送法の回収率はきわめて低く、表3の中の数字よりもさらに低く、10%そこそこのことも多い。郵送法で回収率が高いときには、むしろ、標本抽出の仕方や調査の仕方を疑ってみた方がよいといわれるほどである。いずれにせよ、一般には、郵送法で収集されたデータは低回収率のため、これから(3)で述べる無回答にともなう非標本誤差が大きすぎ、統計的推測はあてにならないので要注意である。
この表3の中で、面接調査法、面前記入法に見られる回答の偏りは、主に回答者の匿名性が回答の際に保たれていないことによるものである。少なくとも回答の際には、回答者は調査員を目の前にしており、調査員の側でも誰が回答しているのかを認識しているからである。したがって、例えば回答の偏りの1については、調査員が主婦であるか、男子学生であるか、女子学生であるかによって、見栄や恥ずかしさから回答の傾向が異なってくることが十分に考えられる。
また調査員が口にしなくても、調査員の意見によっても影響を受けるかも知れない。「調査方式の比較研究」(杉山 1984, p.66)によると、「奇跡を信じるか?」という質問に対して、表1.4のように調査員の意見の影響が見られるといわれる。
表1.4 調査員の意見と回答
調査員の意見 | 回答 | ||
---|---|---|---|
奇跡を信じる | 奇跡を信じない | 計 | |
奇跡を信じる | 25% | 75% | 119 (100%) |
奇跡を信じない | 12% | 88% | 255 (100%) |
本書で取り上げている「組織活性化のための従業員意識調査」の場合には、配布回収法によって、1週間以内の短期間に、できるだけ高い(90%前後)の回収率で500人以上を調査することを目標として行われる。こうした配布回収法が可能なのは、企業側のニーズにある程度合致した内容にすることで、配布回収に際しての協力が得られるという人員的な側面だけではなく、調査をされる側の従業員の高い国語力という側面も見逃せない(表1.3の「回答の偏り」の欄も参照のこと)。「組織活性化のための従業員意識調査」では、比較的大きな企業で大卒中心のホワイトカラーを調査対象としていることで、質問の意味の理解度がある程度保証されているのである。
ここで、非標本誤差のうち大きな部分を占める「1. 無回答の誤差」について、その大きさがどの程度のものになるのかを考えてみよう。無回答の誤差は、調査もれや回収率が低いことにともなう無回答の誤差・偏りを指している。通常、図1.3に示されるように、調査では、母集団のリストの不備、回答者不在のための脱落、回答拒否などによる調査もれを除いて、調査票が配布される。この配布された調査票の中の無回答がここでいう無回答でありる。そのうち、完全な無回答は、配布された調査票のうち回収不能だったもの、回収はしたが白紙だったものとに分けられる。こうした配布されたものの完全無回答であった調査票を除いた残りの部分、つまり回収されかつ一部または全部回答されている調査票数の、全配布数に占める割合を回収率と呼ぶ。
図1.3 調査もれと回収率
一般に、無回答の誤差が重大になるのは
こうした無回答の誤差がどの程度の大きさになるものなのか、いま例として、Yes-No形式の質問を考えてみよう。調査結果で(すなわち回答者群で) 60%がYesだったとき、これだけ見ると過半数がYesと答えたと言えそうである。しかし、本当にそうだろうか。この程度のYes比率では、実は無回答者群でのYesが40%で、Yes比率とNo比率とが逆転していた……というようなケースがよくあるのである。特定のテーマの調査に対しては、そのテーマに肯定的な人は回答に協力的だが、否定的な、あるいは嫌悪感をもっている人は、回答をめんどうがったり、拒否したりするという傾向があるので、むしろこの程度の両群のYes比率の差はごく普通に存在すると考えておいた方がよい。
仮に有効回答率が50%とすると、全調査対象のYes比率は、両者のちょうど中間の50%だったことになる。つまり、
0.6×0.5+0.4×0.5=0.5
となる。もしも有効回答率が20%ならば、
0.6×0.2+0.4×0.8=0.44
となってしまい、なんと実際の全調査対象ではYes比率は過半数を割り、44%しかいなかったことになるのである。回答者群だけを見たときの見かけのYes比率とは結論が逆転する。実は過半数がNoだったのである。
それでは、こうした考えをもう少し一般化して、このようなYes-No形式の質問の無回答の誤差がどの程度の大きさになるのかを考えてみることにしよう。
全調査対象のYes比率
=(回答者群のYes者数+無回答者群のYes者数)/配布総数
=(回答者数×回答者群のYes者数)/(配布総数×回答者数)+(無回答者数×無回答者群のYes者数)/(配布総数×無回答者数)
=有効回答率×回答者群のYes比率+(1-有効回答率)×無回答者群のYes比率
=回答者群のYes比率+(1-有効回答率)×(無回答者群のYes比率−回答者群のYes比率) (1.1)
ここで、(1.1)式の下線部分が「無回答の誤差」ということになる。この無回答の誤差を実際に計算してみると、表1.5のようになる。
表1.5 無回答の誤差(網掛け部分は無回答の誤差が5%以下)
有効 回答 率(%) | |無回答者群のYes比率(%)−回答者群のYes比率(%)| | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | |
100 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
90 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
80 | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 |
70 | 0 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 |
60 | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 |
50 | 0 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 |
40 | 0 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 |
30 | 0 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | 70 |
20 | 0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 |
10 | 0 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 |
0 | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
そこでさきほどのように、たとえば、回答者群ではYesが60%で過半数がYesと見えていても、実は、無回答者群でのYesが40%だった場合を考えてみよう。このとき、両群のYes比率の差は20%になり、表1.5の矢印の列を見るとわかるように、有効回答率が50%未満のときには、無回答の誤差が10%を超えるので、全調査対象(標本)のYesは実は少数派だったという逆転現象が起こってしまう。
後で、第7節で述べるように、標本抽出にともなう標本誤差の目標精度を5%程度に抑えたいと考えているときには、非標本誤差もせめて同程度の5%くらいには抑えておかないと意味がない。そしてこのときには、調査票の回収率(>有効回答率)は80%以上を目標にする必要があることになる。さらに表1.5から、調査票の有効回答率が90%以上あれば、まず逆転現象の心配はないこともわかる。
非標本誤差に対して、標本誤差(sampling error)は標本抽出に伴う誤差であり、標本の抽出方法(sampling method)によっては、客観的に取り扱うことができる。具体的には、次に述べるような有意選出法を用いた場合は困難であるが、無作為抽出法を用いて標本抽出を行った場合には、確率論および統計学理論によって客観的に評価することができる。これが統計的推測の理論である。つまり、統計的推測は、どのような標本に対しても使えるわけではない。このことをもう少し詳しく見てみよう。
(a)有意選出法(purposive selection)
これは、調査者が適当に標本を選ぶ方法である。企業が取り引き先の企業を調査するような方法(機縁法)や、モニターを募集してその意見を聞くような方法(応募法)が有意選出法に含まれる。しかし、もっとも体系的な方法は、割り当て法(quota method)と呼ばれるものであって、
(b)無作為抽出法(random sampling)
これは、クジ引きの原理で標本となる要素をランダムに(無作為に)選び出す方法である。厳密には、母集団の要素リストで、各要素に通し番号をつけ、この通し番号を、乱数表をもちいて抽出していく。あるいは、さいころや0から9までの数字が2面ずつ刻まれている正20面体の「乱数さい」を振って、出た目をもとにして抽出していく。これを簡便化したものに、系統抽出法あるいは等間隔抽出法と呼ばれる方法がある。厳密な意味では無作為抽出法ではないが、母集団の大きさnを標本の大きさrで割ったn/r以下の最大の整数Iを抽出間隔として、このI以下の無作為に選んだ抽出スタート番号から、あとは等間隔Iで番号がなくなるまで選ぶ方法である。いずれにせよ、無作為に確率的に抽出する方法を用いると、母集団を構成する全要素について、それぞれが標本として抽出される確率が一定になるので、標本の性質から母集団の性質を客観的に評価することができるようになる。現在の統計学の推定、検定の理論はこの無作為抽出法を前提としている。
したがって、今日では、有意選出法は「科学的な」調査では本調査の前の予備的調査で利用する程度にすべきであるとされている。しかし
しかし、有意選出法を採用した場合、あるいは有意選出法によって得られたデータを見る場合には、表1.6にまとめられた特徴に注意しなくてはならない。すなわち、有意選出法では、無作為抽出法とは異なり、データは偏りをもち、しかも精度は高くてもあてにはならないということを認識する必要がある。そして、有意選出法で得られたデータについては、統計的推測は無力だということである。すなわち、無作為抽出法によって抽出された標本にのみ、統計的推測が可能なのである。それに対して、無作為抽出法では、偏りを回避することができるし、精度は標本の大きさを大きくすることで高められる。しかも、精度の評価を客観的に行うこともできるのである。
表1.6 標本から母集団の特性を推論する場合の有意選出法と無作為抽出法の比較
有意選出法 | 無作為抽出法 | |
---|---|---|
偏り | 回避できない | 回避できる |
精度 | 意識的に粒のそろった要素を選んで標本にすることで高められる | 標本を大きくすることで高められる |
精度の評価 | 困難 | 確率論・統計学で可能 |
それでは、無作為抽出の場合には、どのようにしてこのような一連の統計的推測が可能なのであろうか。そのことをこれから第5節〜第7節にかけて、確率、仮説検定、推定の順に見ていくことにしよう。ただし、無作為抽出法は、標本誤差に対しては、実に有効な抽出方法であるが、非標本誤差に対しては、なんら保証するものではない。このことは十分に認識しておく必要がある。
これ以降、確率の話が少々続くが、これは二つの目的のために必要なものである。一つは、通常、統計処理を行った際によく用いられる「有意水準」または「有意確率」の概念を正しく理解してもらうためである。もう一つは、標本の大きさのもつ意味を理解してもらうためである。これは、調査を企画する際に、適切に標本の大きさを決めるために重要になってくるだけではなく、既に行われてしまった調査の標本誤差を評価する際にも基本的な情報となるからである。しかし、全数調査を前提にする場合には、これ以降の節は必要がなくなる。
いま、大きさnの母集団から標本としてr個の要素を非復元抽出(sampling without replacement)で無作為に抽出することを考えよう。つまり、r個のものを取り出すときに、1個ごとにいちいち元に戻さずに、続けてr個を取り出すことを考える。この標本抽出によって得られる結果(outcome)、すなわち標本のことであるが、これは標本点と呼ばれる。あらゆる可能な標本点の集合は標本空間(sample space)と呼ばれて、Ωで表す。
例) いま母集団として、「応用統計学」を履修する学生の集合を考えてみよう。学生は履修番号で表されるものとする。「応用統計学」を履修する学生が6人だった(n=6)とすると、母集団は集合{1,2,3,4,5,6}で表すことができる。この母集団から、図1.4のように、標本として3人の学生を抽出する場合を考えてみよう(r=3)。この場合、標本は母集団から抽出された3人の学生の組、たとえば(1,2,3), (2,3,6)のように表される。
図1.4 大きさ6の母集団から大きさ3の標本の抽出
このとき、標本点を書き出すと、標本空間Ωは、次のような20個の標本点からなる集合になる。
Ω={(1,2,3), (1,2,4), (1,2,5), (1,2,6), |
(1,3,4), (1,3,5), (1,3,6), |
(1,4,5), (1,4,6), |
(1,5,6), |
(2,3,4), (2,3,5), (2,3,6), |
(2,4,5), (2,4,6), |
(2,5,6), |
(3,4,5), (3,4,6), |
(3,5,6), |
(4,5,6)} |
したがって、標本となる学生の組合せとしては、20通りが考えられる。つまり大きさ6の母集団から大きさ3の標本を抽出するときの標本点の個数は20個というわけである。この場合、標本空間Ωの要素をすべていちいち書き出さなくても、標本点の個数は、母集団の6個の要素から標本として3個の要素をとってくる組合せの数なので、次のようにも計算できる。
6C3=(6・5・4)/(3・2・1)=20
この計算方法について概説しておこう。まず最初に、一般に、順列(permutation)とはn個のものからr個とって1列に並べたもののことであり、n個のものからr個とる順列の数は、次のように与えられる
nPr=n(n−1)(n−2)・・・(n−(r−1))=n!/(n−r)!
ここで、n!=n(n−1)(n−2)・・・3・2・1 であり、これをnの階乗(factorial)とよぶ。0!=1 ということも約束しておこう。つまり、列の先頭に何がくるのかはn通り考えられ、先頭の1個を決めれば、次の先頭から2番目には、先頭に定められた2個を除いた残りのn−1個の中からどれか一つが選ばれることになるのでn−1通り……そして列の最後の1個は残っているn−(r−1)個の中から選ばれるので、n−(r−1)通り、それらをすべて掛け合わせるとこのような式になるのである。
さらに、組合せを考えることもできる。いま、とってきたr個がどのような順序に並んでいても、組合せとしては同じものと考えられるので、rPr=r!個の順列は一つの組合せとして数えられるべきものということになる。したがって、n個のものからr個とる組合せ(combination)の数は
nCr=nPr/r!=n!/{r!(n−r)!}
となる。
事象(event)とは、標本空間Ωの部分集合のことであり、なんらかの意味で関心がもたれる結果の集合である。さきほどの6人の学生からなる母集団から3人の学生を抽出する例では、たとえば、次のような事象を考えることができる。
A={(1,2,6), (1,3,5), (2,3,4)}
B={(1,3,5)}
事象Aは学生の履修番号の和がちょうど9になる事象を表しており、事象Bは奇数の履修番号の学生のみであるという事象を表している。
標本抽出(より一般的には「試行」)を行うと、必ず標本空間Ωの中のただ一つの標本点ωが実現することになる。この実現した標本点ωが事象Aに属するとき、この事象Aが生起したという。例えば、6人の学生から3人を標本抽出すると、学生1、学生3、学生5が抽出されると、3人の履修番号の和は9になり、事象Aが生起したことになる。実は事象Bも同時に生起している。
いま標本が無作為抽出される場合を考えよう。例えば、さいころを振って、出た目の履修番号の学生を標本として抽出するのである。このとき、標本抽出の結果は抽出過程の偶然性に影響されることになる。統計的状況で考えられる唯一の偶然的原因は、標本の母集団からのランダムな抽出だけである。このとき「事象Aの生起することの確からしさ」つまり、確率をはじめて考えることができる。一般に、生起する確率が考えられる事象を確率事象(probability event)という。Pr(A)で、事象Aの生起する確率を表すことにしよう。
それでは、標本が無作為抽出される場合に、どのように確率Pr(A)を付与することができるのであろうか。いまn個の標本点からなる標本空間Ωを考える。無作為抽出によって標本を抽出する限り、n個の標本点のどれもが、生起することに関しては「同程度に確からしい(equally likely)」。したがって、このとき、事象Aの生起する確率Pr(A)は、事象Aに属する標本点の個数kをm(A)で表すと、
Pr(A)=m(A)/m(Ω)=k/n
と定義できる。さきほどの例では、
m(Ω)=20
m(A)=m({(1,2,6), (1,3,5), (2,3,4)})=3
m(B)=m({(1,3,5)})=1
なので、Pr(A)=3/20、Pr(B)=1/20 となる。こうして、この無作為抽出のときに定義される確率は、標本点の個数、つまり、起こり方の場合の数の数え上げに帰するわけである。
確率変数(random variable)とは標本空間Ωの上で定義された実数値をとる関数X(ω),ω∈Ω のことである。標本抽出の結果として標本点ωが定まると、実現値x=X(ω)が定まる。逆に、{ω: X(ω)=x}と集合を定義すると、これは標本空間の部分集合となる。もちろんこれは確率事象となるので、確率 Pr({ω: X(ω)=x}) を与えることができる。一般に、この Pr({ω: X(ω)=x}) をωを省略して、Pr(X=x)と書く。つまり、確率変数は、それがとる各値に対して、それぞれ確率が与えられている変数なのである。ちなみに、確率変数はXのようにローマ字の大文字で表す。
例の続き) さきほどの例と同様に、「応用統計学」を履修する学生の集合{1,2,3,4,5,6}を母集団とする。このうち、履修番号1,2,3の学生は「基礎統計学」の試験に合格し、単位を取得しているが、他の3人の学生は「基礎統計学」の単位を取得していない。そこでいま、3人の学生を標本として抽出することを考え、確率変数Xでその標本中の「基礎統計学」の単位取得者数を表すものとする。標本の大きさは3だから、確率変数X(ω)は0,1,2,3のいずれかの値をとることになる。
{ω: X(ω)=3}={(1,2,3)}
{ω: X(ω)=2}={(1,2,4), (1,2,5), (1,2,6), (1,3,4), (1,3,5), (1,3,6), (2,3,4), (2,3,5), (2,3,6)}
{ω: X(ω)=1}={(1,4,5), (1,4,6), (1,5,6), (2,4,5), (2,4,6), (2,5,6), (3,4,5), (3,4,6), (3,5,6)}
{ω: X(ω)=0}={(4,5,6)}
無作為抽出によって標本を抽出する限り、20個の標本点のどれが生起するのも同程度に確からしいので
Pr(X=3)=Pr({ω: X(ω)=3})=1/20
Pr(X=2)=Pr({ω: X(ω)=2})=9/20
Pr(X=1)=Pr({ω: X(ω)=1})=9/20
Pr(X=0)=Pr({ω: X(ω)=0})=1/20
である。ところで、標本中の「基礎統計学」の単位取得者の割合をPで表すと、Pは
P=X/3
で定義され、0, 1/3, 2/3, 1 のいずれかの値をとる。すると、上の式から
Pr(P=1)=Pr(X=3)=1/20
Pr(P=2/3)=Pr(X=2)=9/20
Pr(P=1/3)=Pr(X=1)=9/20
Pr(P=0)=Pr(X=0)=1/20
となる。つまり、Pも確率変数となる。より一般的な比率についての確率の計算については、付節を参照のこと。
例をさらに続けよう。「応用統計学」の授業を始めるに当って、授業のレベルを設定するために、「応用統計学」を履修している6人の学生の中から、さいころを使って、3人を標本として抽出(非復元抽出)し、この3人について各々入念に口頭試験を行った。その結果、3人とも「基礎統計学」終了時と同等以上の知識をもっていることがわかった。しかし、仮に、「基礎統計学」と同等以上の知識をもっている者が、「応用統計学」の履修者6人のうち、ちょうど半数の3人だけだったとしても、抽出のプロセスで、偶然、その3人を抽出してしまい、こうした調査結果が得られることもありうる。この場合、無作為抽出で標本抽出したので、各標本点のどれもが抽出されるのは同程度に確からしく、その確率は、容易に計算することができる。すなわち
Pr(P=1)=Pr(X=3})=1/20=0.05
となる。したがって、仮に「基礎統計学」と同等以上の知識をもっている者が、「応用統計学」の履修者6人のうち、ちょうど半数の3人だけだったということが本当だとすると、標本全員が「基礎統計学」終了時と同等以上の知識をもっていたという確率は、わずか5%しかないということになる。この低確率では、母集団で3人だけが「基礎統計学」と同等以上の知識をもっていたとは考えにくいであろう。
このことを、仮説検定の言葉を使うと、次のように記述することができる。まず最初に、
ところで、母集団である「応用統計学」の履修者全体のうち、「基礎統計学」と同等以上の知識をもっている者の比率をπで表すと、さきほどの仮説は、
母集団ではπ=0.5だったのに、偶然、標本ではP=1になってしまったという場合の「偶然」の部分を確率で表現したものを有意確率という。したがって、有意確率が大きいときには、標本でのP=1は「よくある偶然」と片付けてしまってかまわない。このような偶然は、標本抽出のプロセスで発生しうるもので、統計的にはよくあることで、意味のないものである。つまり、標本誤差の範囲内というわけである。しかし、先ほどのように、5%と有意確率が小さければ、標本でのP=1は「めったにない偶然」である。このときは、標本誤差では片付けられず、統計的にも無視できない意味をもつことになる。このことを「統計的に有意」あるいは単に「有意」(significant)という。この場合には、逆に、母集団でπ=0.5とした仮説の方を疑うべきであると結論づけるのが仮説検定の基本的考え方である。つまり、π=0.5ではなくて、π>0.5であろうと判断するのである。
以上のことを整理すると、統計的仮説とは、母集団の特性値、たとえば、比率、あるいは、第3章以降で説明する平均、分散、相関係数などについて立てられる仮説のことである。そもそも仮説H0は「棄却する」(=無に帰す)ために設定されたものであり、このことから帰無仮説(null hypothesis)とよばれる。このように仮説検定では、母集団の特性値に関する帰無仮説が真であるときに、それに対応する標本の値の生起する確率が、有意水準(level of significance; 5%がよく使われる)に満たないとき、それは帰無仮説が真でないと判断するに十分な証拠と考えるのである。(→演習問題1.2)
無作為抽出法をとるとき、標本の大きさ(sample size)は、標本誤差をどの程度に抑えたいかで決められるべきものである。標本調査の場合、誤差は、逆に精度という概念で考察される。標本調査において、そのようにして事前に決めた精度のことを目標精度と呼ぶ。
いま比率の推定を考えよう。大きさnの母集団のうちA群である母集団比率をπとする。この母集団から無作為抽出法によって、大きさrの標本を抽出し、そのうちA群である標本比率をPとしよう。無作為抽出を行っているので、標本比率Pは確率変数となる。
図1.5 母集団比率と標本比率
標本の大きさrが、ほぼ50を超える大きさであるならば、中心極限定理によって、標本比率Pは次の期待値、分散をもつ正規分布にしたがう確率変数となることが知られている。
平均: E(P)=π
分散: V(P)={(n−r)π(1−π)}/{(n−1)r}
したがって、一般に正規分布に従えば、
Pr({π−1.96(V(P))1/2≦P≦π+1.96(V(P))1/2})=0.95
がいえるので(第3章第7節参照のこと)、この式を変形して
Pr({P−1.96(V(P))1/2≦π≦P+1.96(V(P))1/2})=0.95
となる。つまり、母集団比率πが標本比率P±1.96(V(P))1/2以内に収まる確率が95%だということになる。いい換えれば、信頼度95%で母集団比率を推定することができるのである。(このとき、区間 [P−1.96(V(P))1/2, P+1.96(V(P))1/2] は信頼係数(confidence coefficient) 95%のPの信頼区間(confidence interval)とよばれる。)
このとき、推定の誤差の絶対値を
ε=1.96(V(P))1/2 (1.2)
とおくと、εは絶対精度(absolute precision)とよばれるものになる。精度の高い調査あるいは推定とは、推定の幅の1/2に相当するεの小さいものをいう(ただし、単に「精度」といった場合には、標本分散の逆数で定義されるので注意せよ)。このように、母集団の特性値がある一定の確率以上で収まる区間を求める推定法は、区間推定法(interval estimation)とよばれる。
標本の大きさrが大きくなるほどV(P)そしてεは小さくなるので、必要な標本の大きさsは、目標精度dに対して、ε≦dとなるような最小の標本の大きさである。sは、(1.2)式をrについて解いた
r=n/分母
分母=(ε/1.96)2[(n-1)/{π(1-π)}]+1 (1.3)
でε=dとおいて求めたr以上の最小の整数である。
一般に、母集団比率πは未知なので、π=0.5 と仮定する。なぜならば、このとき(V(P))1/2は最大になるので、π=0.5 と仮定しておけば、誤差を最大に見積もったことになるからである。(1.3)式の中のπ(1−π)も、π=0.5のとき最大となる。目標精度をd=0.05 (5%)程度にすることを考えると、必要な標本の大きさsは、(1.3)式を用いれば、表1.7(a)のようになる。もし、目標精度をd=0.025 (2.5%)に上げようとすると、表1.7(b)のようになる。
表1.7 目標精度と標本の大きさ
(a)目標精度d=0.05 (5%)のときに必要な標本の大きさ(近似値)
n | 50 | 100 | 1,000 | 2,000 | 5,000 | 10,000 | 20,000 | 50,000 | ∞ |
---|---|---|---|---|---|---|---|---|---|
s | 45 | 80 | 278 | 323 | 357 | 370 | 377 | 382 | 384 |
(b)目標精度d=0.025 (2.5%)のときに必要な標本の大きさ(近似値)
n | 50 | 100 | 1,000 | 2,000 | 5,000 | 10,000 | 20,000 | 50,000 | ∞ |
---|---|---|---|---|---|---|---|---|---|
s | 49 | 94 | 607 | 870 | 1176 | 1332 | 1427 | 1492 | 1537 |
表1.7の(a)と(b)を比較すると、精度を上げてその幅を1/2にするのには、標本の大きさを約4倍にしなければならないことがわかる。一般に、目標精度dを1/k倍にしようとすると、必要な標本の大きさは約k2倍になる。なぜなら(1.3)式の分母にε2があるからである。また調査の精度は、母集団の大小にほとんど関係なく、標本の大きさの平方根にほぼ反比例する。したがって50人程度の母集団では、標本調査といっても、ほとんど全数調査が必要になる一方で、どんなに母集団が大きくても、目標精度が5%ならば400人程度、目標精度が2.5%でも1600人程度の大きさの標本であれば、十分に目標を達成する。
ところで、標本の大きさが400程度あれば、絶対精度を5%以下に抑えられるということは、逆にいえば、たとえば標本比率が56%であれば、母集団比率πが50%である確率は5%(=1−信頼係数)以下ということである。つまり、H0: π=0.5 という仮説は、仮説検定を行えば棄却されることになる。いい方を変えれば、5%程度の比率の差が統計的に有意になり、意味をもつように、標本の大きさを決めてやっていることになる。このように、標本の大きさが十分に大きくて、精度が十分に向上してくれば、もはやいちいち仮説検定に気を回す必要はない。たしかに、小さい標本のデータを与えられているときには、仮説検定で母集団についての知識を検討・吟味する必要がある。しかし、十分な大きさの標本を確保することができたならば、仮説検定が実際上必要ないほど、推定の精度を確保できたことになるのである。
これまでの議論を、実際に調査を設計し、管理するという観点からまとめると、次のようになる。調査にともなう誤差を考え、標本誤差(絶対誤差)と非標本誤差をともに5%以内に抑えるということをめざすのであれば、標本の大きさとしては500程度確保し(したがって、数百程度の大きさの母集団でほとんど全数調査が必要になる)、回収率80%以上をめざして、きめの細かい管理をすることを考えるべきである。
比率についての有意確率の計算は、一般的にはどのように行われるのであろうか。いま、n個の要素からなる母集団を考える。この母集団の要素は、A群、非A群の2群に分類され、各要素がどちらの群に属するかは簡単に区別できるとする。
この母集団から非復元抽出(sampling without replacement)で、r個を標本として抽出することを考えよう。つまり、r個のものを取り出すときに、1個ごとにいちいち元に戻さずに、続けてr個を取り出すことを考える。
図1.6 有限母集団からの抽出
確率変数Xで大きさrの標本のうち、A群に属する要素の数を表すものとする。すると
ところで、標本でもA群の比率P=x/rは、母集団でA群の比率がπ=a/nに等しくなりそうなものだが、無作為抽出をすれば、偶然のいたずらで、Pは0〜1までの値をとりうる可能性がある(ただし、標本の大きさに比べ、母集団が十分に大きいとき)。しかし、直感もまた正しく、確率変数である標本比率Pのとりうる値を、確率をウェイトとして加重平均した値(これを期待値という)は母集団比率πに等しくなる。実際、(1.5)式で表した場合の超幾何分布の平均(=期待値)、分散は次のようになる。
平均: E(P)=Σp p・h(p)=π
分散: V(P)={(n−r)π(1−π)}/{(n−1)r}
このように、標本比率の期待値が母集団比率と一致する場合、標本比率は偏りをもたない(=不偏)といわれる。
これまでは、n個の要素からなる有限母集団から非復元抽出を行うことを考えてきた。いまもし、nが非常に大きいとき、極端には無限に大きいと考えられるときはどうなるであろうか。(1.4)式から
h(x)=[(nπ)(nπ-1)・・・(nπ-(x-1))/x!]×[(n(1-π))(n(1-π)-1)・・・(n(1-π)-(r-x-1))/(r-x)!]×[r!/{n(n-1)・・・(n-(r-1))}]
となり、この式の分母分子をnrで割ると
h(x)=[r!/x!(r-x)!]×[{π(π-1/n)・・・(π-(x-1)/n)・(1-π)((1-π)-1/n)・・・((1-π)-(r-x-1)/n)}/{1・(1-1/n)・・・(1-(r-1)/n)}]
となる。したがって、超幾何分布は n→∞のとき
limn→∞ h(x)=rCxπx(1-π)r-x=b(x)
となる。この分布b(x)は二項分布(binomial distribution)とよばれる。この分布の名前のいわれは、二項式
(π+(1-π))r
を展開したとき、πx(1-π)r-xの項の係数がrCxになっていることによる。以上のことから、母集団の大きさnが大きいときには、超幾何分布を二項分布で近似することができる。
二項分布は、無限母集団からの抽出だけではなく、たとえ有限母集団であっても復元抽出(sampling with replacement)、つまり1個取り出すごとにいちいち元に戻しながらr個の標本を取り出すときにも得られる。なぜならば、どちらの場合にも、母集団から1個要素を取り出したときに、それがA群である確率はπ、非A群である確率は1-πで、それは抽出回数にかかわらず一定だからである。したがって、A群がx個、非A群がr-x個である列、たとえば
AA(非A)A……(非A)A
が得られる確率は
ππ(1-π)π……(1-π)π=πx(1-π)r-x
である。この式からもわかるように、A群と非A群の要素の並ぶ順序には関係なく、A群がx個、非A群がr-x個である標本点は、同じ確率をもつことになる。したがって、これと同じ確率をもつ標本点は、標本空間の中に rCx個あるので、結果として
rCxπx(1-π)r-x=b(x)
という二項分布が得られるわけである。
1.1 調査の種類 第3節(1)で説明した分類にしたがって、本書で統計調査の実例として取り上げている「組織活性化のための従業員意識調査」の種類を分類してみよ。必要であれば、第6章も読んでみること。
1.2 仮説検証 第6節の例で、もし口頭試験の結果、標本3人のうち2人だけが「基礎統計学」終了時と同等以上の知識をもっていることがわかったならば、そのとき仮説 H0: π=0.5 の検定を行なってみよ。
1.3 報道された調査結果の評価 最近、新聞で報道された調査結果を二つ以上探し、その調査結果について、(1)母集団の定義、(2)全数調査か標本調査か、(3)標本調査の場合には標本抽出の方法、(4)調査時点、(5)調査方法、(6)回収率を調べよ。
1.4 調査の企画 「新人類世代の意識を探る」というテーマで、従業員規模(正社員のみ) 1万人程度の企業の意識調査をしたい。どのような調査をすべきか企画を立てよ。
第1章では統計学および調査の考え方を概観したので、この章からはさっそく「組織活性化のための従業員意識調査」によって得られたデータを素材にして、コンピュータを使って統計処理することを始めよう。そのために、この章ではまず統計パッケージSASの基本的な使い方を、最初にすべき基本的統計処理である単純集計を例に説明しておくことにする。
SASはデータに対して、統計処理・演算処理を始めとする各種の加工処理を行うパッケージ・プログラムである。もしわれわれが各種の統計処理用にそれぞれのプログラムを自分で作成・開発・維持しようとすると、これは非常に大変な作業となる。その点SASは、既に完成されている統計用プログラムの集合体、システムであり、利用者が必要なプログラムを指定すると、それらを機能的にデータに結び付けて、統計処理をしてくれるのである。
この章では、最新版であるSAS第6版の使い方とプログラミングをSASやコンピュータを全く知らない読者でも理解できるように解説することにしよう。もちろん、単なるSAS入門ではなく、「組織活性化のための従業員意識調査」のプロセスの1ステップとして、調査によって得られたデータを単純集計し、後の章での統計分析のためにデータをデータ・ベース化しておくのが、この章の本来の役割である。
本書ではパーソナル・コンピュータ版SAS、いわゆるPC版SASとメインフレーム(mainframe)版SASの両方について、いわば両刀遣い的に相違点などにも言及しながら説明していく。これは、今後筆者も含めて多くの人が、SASを使う際、処理時間やコスト、利用可能性等を考慮した上で、パーソナル・コンピュータとメインフレームを使い分け、同じプログラム、データをフロッピィ・ディスク1枚で移植し、どちらの機械でも使うことになっていくと考えるからである。とはいうものの、どちらかといえば、PC版SASを中心にして、その使い方を操作の順序にしたがって説明する。より具体的には、MS-DOSを搭載したパーソナル・コンピュータに、既にSASの第6版(リリース6.04)がインストールされていることを前提にして、話を進めることにしよう。
メインフレーム利用者に対しては、SAS第6版がIBM及びIBM互換の国産のメインフレームでも利用可能なので、メインフレーム版SASとしてIBMメインフレームの代表的なOSであるCMSに対応しているCMS版SAS (SASリリース6.06)についても、PC版SASとの相違点などを指摘しながら併せて説明していく。また、現在でも、メインフレームの一部では、CMS版SASリリース5.18がそのまま使用されているようなので、付節を設け、CMS版SASリリース5.18の基本的な使用方法について、第6版との違いを概説しておいた。
もっとも、SAS第6版では、メインフレーム用もパーソナル・コンピュータ用もともにC言語で書かれ、使用方法は基本的に同じである。ファイル名の形式と画面のウィンドウの数が異なることに注意すれば、PC版SASもCMS版SASも同様に使用することができる。しかも、CMS版SASは、他のメインフレーム用SASと比較しても、ハードウェアやソフトウェアについての余計な知識や配慮を必要としないという点では、パーソナル・コンピュータ並の使いやすさをもったシステムである。例えば、通常、メインフレームではSASのようなパッケージ・ソフトであっても、実際に動くようにするためには、ハードウェアの仕様、ソフトウェアの仕様、さらに動かそうとしているプログラムの仕様やデータのサイズなども配慮した上で、さまざまな環境設定を行う必要がある。この設定を行うのがJCL (job control language、「ジョブコン」と言うこともある)と呼ばれるものであるが、このように、ソフトの使用に際して、利用者がいつも頭を悩まされてきたJCLについても、CMS版SASでは一切気にする必要はない。CMSでは、ログオン時にPROFILEという名前の初期設定ファイルが自動的に起動され、利用者の環境設定が自動的に行われてしまうのである。
それでは、PC版SASを使用する上で必要になる最小限のMS-DOSの基礎知識についての説明から始めることにしよう。IBMメインフレームとCMSについては、付章を参照してほしい。CMS版SASの利用者は、次の第2節の代わりに、その付章を読んでから、第3節に進むこと。メインフレームをCMS以外のOSで使用する場合には、センター等に問い合わせて、SAS利用にどのようなJCLが必要になるのかをあらかじめ確認してほしい。
OS (Operating System)とは、簡単に言えば、外部記憶装置や入出力装置といったハードウェアを操作するソフトウェアのことである。利用者、あるいは利用者が直接触れる高級言語(例えばC言語)、パッケージ(例えばSAS)がOSの使い方を分かっていれば、外部記憶装置や入出力装置といったハードウェアを物理的に直接操作する必要はなく、OSというソフトウェア上の論理的装置(logical device)の簡単な操作をするだけで、実際の外部記憶装置や入出力装置の複雑な操作はOSが代わりにやってくれる。
もし我々が複雑なコンピュータ・システムの全体を構成するそれぞれの外部記憶装置や入出力装置といったハードウェアを物理的に直接操作しようとするならば、各装置の機械的な仕組みや原理を理解し、なおかつどのように操作するのがもっとも効率的で間違いがないのかを習得しておかなくてはならない。考えただけで気の遠くなるような話である。パーソナル・コンピュータですら、MS-DOSのようなOSなしでハードウェアを物理的に直接操作することは不可能である。それだけOSは便利であり、かつコンピュータ・システムの使い勝手、利用効率を決めるという点で決定的に重要なものである。
そこでここでは、パーソナル・コンピュータのハードウェアについては触れず、OSであるMS-DOSについて、SAS利用のために最小限必要なことがらについて説明しておこう。
ファイル(file)またはデータ・セット(data set)とは、物理的にはコンピュータ・システムの固定ディスクやフロッピィ・ディスクに格納されたプログラムやデータの集合のことである。より具体的には、パーソナル・コンピュータやメインフレームの端末のディスプレイ画面の上に入力、表示された行の集合をディスクに格納したものがファイルである。ディスクに保存された情報は、このファイルという単位で管理される。(詳細は付章第1節を参照されたい。)
ファイルにはそれぞれ名前が付けられ、他のファイルと識別される。MS-DOSのファイル名は、例えば次のような形をしている。
FRQ.LOG
JPCDATA.SAS
ファイル名は、一般的には
ファイル名本体.ファイル名拡張子
という形式をとっている。ファイル名の本体と拡張子の間には必ずピリオド "." を挟むことになっている。MS-DOSのファイル名の拡張子は必ず付けなくてはならないというものではないが、ファイルの内容の分類のためには付けておくと便利である。拡張子を付けない場合にはピリオド "." は付けない。
ファイル名の具体的な表記方法としては、ファイル名本体は8文字以内、拡張子は3文字以内となっており、英数字A〜Z、0〜9、および$、#、@、-(ハイフン)、_(下線)の記号類からなる文字列である。このほかにも使える記号もあるし、ひらかな、カタカナ、漢字も使えることになっているが、メインフレームで使用する場合もあることを考えると、トラブルの原因になるので、あまり勧められない。その意味では、ファイル名の1文字目は英字にしておいた方が無難であろう。また、英字に大文字、小文字の区別はなく、MS-DOSでは、すべて大文字に変換されて処理される。
新たにファイル名を作る場合に、もし、既に存在しているファイルと同じファイル名を付けようとすると、元からあるファイルの内容が失われたり、エラーが出たりすることになるので、注意が必要である。
固定ディスクや取り替え可能なフロッピィ・ディスクといった「1枚」のディスクの中には、複数のファイルを格納することができる。そこで、MS-DOSではディスクの中のどこにどんなファイルが格納されているか、ディレクトリ(directory=住所録)を作って管理している。ただし、詳しい「住所」はMS-DOSのシステムにとっては必要な情報だが、利用者にとっては必要ないので、利用者には表示されない。このディレクトリの中には、ファイルだけではなく、別のディレクトリも入れることができる。元のディレクトリを親とすれば、その一覧表の中に表記され子の関係にあるディレクトリをサブディレクトリと呼ぶ。そのサブディレクトリもそれ自体が親ディレクトリとなって、サブディレクトリをもつことができる。このようにして、ちょうど家系図のように階層ディレクトリ構造が形成されるのである。つまり、複数のディレクトリが、それぞれ他のディレクトリとの親子関係を結んで1枚の家系図に収まることで「1枚の」ディスク上に存在しうるわけである。
例えば、本書ではSASの『導入及び運用と保守の手引き』通りのディレクトリ構造を前提にしているが、その構成は図2.1のようになる。固定ディスク(ドライブA)の内容はSASの稼働に必要な最小限のファイル構成になっている。SASの『導入及び運用と保守の手引き』にしたがって、SASの実行ファイルなどを納めたSASディレクトリからユーザー・プログラム、データなどを納めたディレクトリを区別、分離して、「¥MYDIR」という私用ディレクトリを作成している。これは、SASのバージョンアップの際の作業を楽にし、複数の人が同じ固定ディスクを使用する際に独立性を確保することなどを目的にしている。
図2.1 固定ディスクのディレクトリの構成図
1) ディスプレイ・マネージャ(後述)の各種設定保存ファイルだが、本書では出荷時の設定を前提にしているので、これ以上触れない。
しかし、利用者が一度に使用できるディレクトリは一つと決められている。現在使用中のディレクトリをカレント・ディレクトリと呼ぶが、現在どのディレクトリを使用しているのか、カレント・ディレクトリを確かめるには、chdirコマンドを使えばよい。
A>ChDir
と入力すると、カレント・ディレクトリが表示される。例えば、表示が
A:¥
ならば、ルート・ディレクトリがカレント・ディレクトリであり、もし表示が
A:¥MYDIR
ならば、MYDIRがカレント・ディレクトリである。
カレント・ディレクトリは変更することもできる。カレント・ディレクトリから1階層上の親ディレクトリにカレント・ディレクトリを変えるときには、やはりchdirコマンドを使い、次のように入力する。
A>ChDir ..
逆に、カレント・ディレクトリのサブディレクトリの一つにカレント・ディレクトリを変えるときには、
A>ChDir サブディレクトリ名
と入力すればよい。例えば、いまルート・ディレクトリを使用しているとすると、
A>ChDir MYDIR
と入力すると、サブディレクトリMYDIRに移ることができる。
カレント・ディレクトリの中に、どんなファイルやサブディレクトリが存在しているか、その一覧表を表示させるときには、
A>DIR
と入力すればよい。するとカレント・ディレクトリがMYDIRのときは、SASインストール直後では、本章の中でこれから作成するSASプログラム等はまだ存在しないので、例えば図2.2のようになる。
図2.2 MYDIRのディレクトリ画面の例(SASインストール直後)
既に(3)で行っているようなキーボードからのコマンド入力の説明の際には、本書では次のような表記方法をとっている。これを読んだ後で、もう一度(3)を見直してみるとよい。
SAS起動の仕方は、PC版SASもCMS版SASも基本的に同じである。MS-DOSあるいはCMSのコマンドを入力できるモードから、SAS とコマンド入力の形で入力してやればよいのである。ただし、これは標準的にインストールした場合であり、SASのインストールの仕方が違ってくれば、もちろん起動の仕方も当然違ってくる。特にメインフレームでは、管理しているセンターごとにかなり個性があるので、ホスト計算機の管理者に必ず確認すること。実は、SASの使用方法のうち、ハードウェア、ソフトウェア、管理運営システムで差異が出るのは、このSAS起動の部分だけである。SASを一旦起動してしまいさえすれば、こうした動作環境とは一切関係なく、どの動作環境でも同じ使用方法でSASを使うことができる。ここではPC版SASを標準的にインストールした場合の起動の方法を代表例として説明しておこう。
それでは、さっそくSASを起動してみることにしよう。まずパーソナル・コンピュータの電源スイッチであるPOWERスイッチを入れて、MS-DOSを起動させる。ハード・ディスク・ドライブがAであるとき、プロンプトが「A>」となっていること、そして、私用ディレクトリMYDIRがカレント・ディレクトリになっていることを確認した上で、
A>SAS
と入力するとSASが起動される。
SASの起動によって、プログラム作成、実行のためのSASディスプレイ・マネージャ・システム(SAS Display Manager System)の画面が表示されることになる。この画面は、PC版SASでは図2.3のようになる。
図2.3 PC版SASのディスプレイ・マネージャ・システムの画面(SAS起動時)
PC版SASのディスプレイ・マネージャ・システムの画面は図2.3を見てわかるように3つのウィンドウに分割されている。各ウィンドウの名称と役割は、SASプログラムの編集、実行の手順にしたがえば、下から順に、
CMS版SASのディスプレイ・マネージャ・システムの画面は図2.4に示されているが、PC版SASと異なり、二つのウィンドウに分割されている。OUTPUTウィンドウはSAS起動時には表示されない。もっとも、SAS起動時にはOUTPUTウィンドウは表示すべき内容もないし、使う用事もないので、そのことで不便はない。
図2.4 CMS版SASのディスプレイ・マネージャ・システムの画面(SAS起動時)
PC版SASであれ、CMS版SASであれ、SASのディスプレイ・マネージャ・システムの画面のファンクション・キーには、利用者が比較的よく使用するコマンドが設定されている。ファンクション・キーに設定されているコマンドは、よく使うコマンドなので、コマンドとしても、その機能をよく理解しておこう。ファンクション・キーの設定は利用者の手で変えることもできるが、表2.1はPC版SASでの出荷時の設定である。この章では、表2.1の設定を前提にして話を進める。
表2.1 ディスプレイ・マネージャ・システムの画面のファンクション・キー(PC版SAS出荷時)
キー | 設定 コマンド | 機能 |
---|---|---|
(f・1) | help | コマンド、機能について説明するHELPウィンドウを表示し、そのメイン・メニューを表示する。 |
(f・2) | keys | ファンクション・キーの設定を示すKEYSウィンドウを表示する。 |
(f・3) | log | LOGウィンドウを表示する。既に表示されている場合には、カーソルがLOGウィンドウに移動する。 |
(f・4) | output | OUTPUTウィンドウを表示する。既に表示されている場合には、カーソルがOUTPUTウィンドウに移動する。 |
(f・5) | next | ウィンドウを順番にカーソルが移動する。 |
(f・6) | prg | PROGRAM EDITORウィンドウを表示する。既に表示されている場合には、カーソルがPROGRAM EDITORウィンドウに移動する。 |
(f・7) | zoom | カーソルのあるウィンドウだけを画面一杯に表示するズーム・モードにするか、通常のマルチ・ウィンドウ・モードにするかを切り替える。 |
(f・8) | subtop | PROGRAM EDITORウィンドウの第1行のSAS文だけを実行させる。このことでその第1行は消え、第2行以降が1行ずつ繰り上がることになる。 |
(f・9) | recall | PROGRAM EDITORウィンドウにカーソルがあるときに有効で、直前に実行したプログラムをPROGRAM EDITORウィンドウ上に呼び出す。既にPROGRAM EDITORウィンドウに内容があるときには、その内容の始めに挿入される。recallをさらに実行すると、前々回、前々々回、……と次々と遡って始めに挿入される。 |
(f・10) | zoom off; submit | マルチ・ウィンドウ状態にしてから、PROGRAM EDITORウィンドウ上のプログラムを実行する。 |
また、各ウィンドウでは、表2.2のような編集キーもそのまま使える。
表2.2 編集キー(PC版SAS)
キー | 機能 |
---|---|
(INS) | 挿入モードと重書きモードを切り替える。挿入モードのときは、画面右下端に "I" の文字が表示される。 |
(DEL) | カーソル上の文字を削除する。 |
(BS) | カーソルの1字前の文字を削除する。 |
(ROLL UP) | 画面を上方にスクロールし、次画面の内容を表示する。 |
(ROLL DOWN) | 画面を下方にスクロールし、前画面の内容を表示する。 |
(CAPS) | アルファベットの大文字入力モードと小文字入力モードを切り替える。大文字入力モードのときは、画面右下端に"C"の文字が表示される。 |
ズーム・モード、挿入モード、英大文字入力モードといった、それぞれ対応するキーによってスイッチのようにon/offを繰り返すものについては、ディスプレイ・マネージャ・システム画面の右下端のウィンドウの枠上に、図2.5のように、現在のモードの状態が表示される。何も表示されていないときには、いずれの状態でもないということを意味することになる。
図2.5 SASの状態表示(ディスプレイ・マネージャ・システム画面の右下端に表示)
ファンクション・キーの設定は通常は画面には表示されないので、よく使用するものについては覚えておけば便利である。理由はよくわからないが、CMS版SASでは、同じホスト計算機に接続された端末でも、例えば、専用端末とパソコン端末のように、端末の機種によって出荷時の設定も異なっているようなので、CMS版SASのファンクション・キーの設定は、ここで一覧表にすることはしない。使用する際に、自分でまずCommand行に
Command ===> KEYS
と入力して、確認してみること。少なくとも、表2.1にあるコマンドに対応するファンクション・キーについては、使い始めのときに自分でチェックしておこう。特に重要なのは、CMS版SASでは、編集キーの(ROLL UP)キー、(ROLL DOWN)キーが使えないので、これらの編集キーと同じ機能を果たすforwardコマンド、backwardコマンドの設定されているファンクション・キーを探して確認しておくことである。
PC版SASでは、(f・2)キーにkeysコマンドが設定されているので、わざわざCommand行に入力しなくても、(f・2)キー(=keys)を押せばよい。試しに、(f・2)キーを押してみて、KEYSウィンドウが表示されるのを確認してみよう。KEYSウィンドウを閉じるためには、KEYSウィンドウのCommand行に
Command ===> END
と入力すればよい。HELPウィンドウについても同様に、endコマンドによってウィンドウを閉じることができるので、(f・1)キー(=help)を押してみて、HELPウィンドウを表示させてみてから試してみよう。
カーソル・キーである(→)(←)(↑)(↓)によって、カーソルはディスプレイ・マネージャ・システムの画面上を、ウィンドウの境界線に関係なく自由に移動させることができるが、(f・5)キー(=next)を押すことで、ウィンドウ間を順番にカーソル移動させることもできる。また、(f・3)キー(=log)、(f・4)キー(=output)、(f・6)キー(=prg)によって、狙ったウィンドウに、一発でカーソルを移動させることもできるので、試してみよう。
もっとも、実際には、SASプログラムを作り始めるときは、PROGRAM EDITORウィンドウしか使わないので、(f・7)キー(=zoom)を使って、PROGRAM EDITORウィンドウだけを画面一杯に表示するズーミングを行い、十分広くとった方が作業しやすい。このzoomコマンドは表2.1にもあるように、on/offを繰り返すスイッチのように機能するので、通常のマルチ・ウィンドウ・モードの状態に戻すには、もう一度(f・7)キー(=zoom)を押せばよい。
各ウィンドウの内容は、SASプログラムでも、データでも、出力結果でも、そしてログでも、いずれも同様に、ただそれらが存在している各ウィンドウのCommand行に
Command ===> FILE 'ファイル名'
と入力すれば、ファイルに保存することができる。このfileコマンドを使用するときには、ファイル名は必ず、' 'で囲むようにする。
PC版SASでは、MS-DOSのファイル名が
[ドライブ名:][¥パス名¥]ファイル名[.拡張子]
のように指定される。ここでパス名とは、ルート・ディレクトリから目的のディレクトリに達するまでのディレクトリの道順(パス)を示すために、各ディレクトリ名を¥で区切って並べて表したものである。例えば、次のようにである。
Command ===> FILE '¥MYDIR¥JPCDATA.SAS'
もっとも、カレント・ディレクトリがMYDIRであれば、この例にあるようなパス名は省略することができて、
Command ===> FILE 'JPCDATA.SAS'
と入力しただけでも、同様にディレクトリMYDIRのもとに保存される。もし
Command ===> FILE 'B:JPCDATA.SAS'
とすると、こう指定するだけで、ドライブBになっているフロッピィ・ディスクにもファイルが保存できるので、プログラムやデータの保存や移植、出力の保存などには非常に便利である。
MS-DOSのファイル名の拡張子は必ず付けなくてはならないというものではないが、ファイルの内容の分類のために、筆者はPROGRAM EDITORウィンドウから保存したプログラムやデータにはSAS、LOGウィンドウから保存したログにはLOG、OUTPUTウィンドウから保存した出力結果にはLSTというファイル名拡張子を付けることにしている。拡張子を使ったとき、例えばJPC、JPC.SAS、JPC.LOG、JPC.LSTはそれぞれまったく別のファイルを意味することになる。
CMS版SASでも、ファイル名の形式が異なるだけで、PC版SASとまったく同様に、各ウィンドウの内容は、それらが存在している各ウィンドウのCommand行にfileコマンドでCMSのファイル名を
Command ===> FILE 'fn ft [fm]'
と入力すれば、CMSファイルに保存することができる。ファイル・モードfmは省略するとAが既定値となっている。
もし既に同じファイル名fn ftのCMSファイルが存在している場合には、このfileコマンドの実行にともない、
WARNING: The file already exists. Enter R to replace it, enter A to append to it or enter C to cancel FILE command.
と聞いてくるので、CMSファイルの内容を更新する場合にはR、付加する場合にはA、fileコマンドを取り止める場合にはCを入力してから(実行)キーを押す。
ところで、こうしたプログラム、ログ、出力内容は、従来の「常識」からすると、必ず紙の上にプリント・アウトし、ハード・コピーとしてとっておくことになる。実際、PC版SASでは、各ウィンドウでfileコマンドを用い、あたかもファイル名'PRN'のMS-DOSファイルに出力するように、
Command ===> FILE 'PRN'
と入力するとプリンタに出力し、印刷できることになっている。(ただし、これにはプリンタの設定が適切に行われている必要があるので、注意を要する。) しかし、これはワード・プロセッサーのパソコン・ソフトやワープロ専用機がこれだけ普及した今日にあっては、ほとんど用紙の無駄遣いにすぎない。こうした出力内容は、いきなり紙の上に印刷せずに、fileコマンドによって、MS-DOSファイルとして固定ディスクやフロッピィ・ディスクに書き出し、その上で、このMS-DOSファイルを使い慣れたワード・プロセッサーによって編集し、必要なものだけを印刷する習慣をつけるべきであろう。
既にMS-DOSファイルやCMSファイルとして保存してあったSASプログラムやデータは、PROGRAM EDITORウィンドウに限っては読み込むことができる。その場合には、MS-DOSファイルやCMSファイルに保存しておいたSASプログラムのファイル名をPROGRAM EDITORウィンドウのCommand行に
Command ===> INClude 'ファイル名'
と入力して、画面上に読み込めばよい。もっとも、読み込んだからといっても、元のMS-DOSファイルやCMSファイルが失われるわけではない。いわば画面上にコピーしてくるわけである。SASプログラムだけではなく、あらゆるファイルが読み込み可能である。したがって、SASプログラムはもちろんデータのファイルの編集、変更にPROGRAM EDITORウィンドウが使える。さらには他のファイルのエディターとして使用することも可能である。ただしCMS版SASでは、データのファイルを読み込むときには、
WARNING: The file contains sequence numbers. Enter R to remove the sequence numbers or K to keep the sequence numbers.
と聞いてくるので、Kと入力してから(実行)キーを押す。
ところで、PC版SASでも、CMS版SASでも、既にPROGRAM EDITORウィンドウ画面にプログラム、データ等の内容が表示されている場合には、その内容の最後部に続けてファイルを読み込むことになる。PROGRAM EDITORウィンドウに表示されている内容が消去された上で、全面的に新たなファイルに置き換えられて更新されることにはならないので注意が必要である。ファイル内容の全面的更新をしたいときには、後述するclearコマンドを使って、一旦、PROGRAM EDITORウィンドウの内容を消去しておく必要がある。
新規にSASプログラムを作成する場合には、PROGRAM EDITORウィンドウの中の行番号のついている行ならば、どこからでも自由に文字を書き込んでいけばよい。カーソル・キーを使わなくても、リターン・キー(←)を使えば、改行することが出来る。ただし、行番号の次の1字分は保護フィールドと呼ばれ、文字を入力しようとすると「ピッ」と警告音がして、入力は受け付けられないので注意がいる。
PROGRAM EDITORウィンドウに表示されている最終行まで使い切った場合でも、リターン・キー(←)を押すと1行上にスクロールして、新たに1行表示されるので入力が続けられる。(ROLL DOWN)キーを押して、一気に次の画面に進むこともできる。前の行を見たり直したりしたいときには、(ROLL UP)キーを押して、前の画面に戻せばよい。CMS版SASでは、 (ROLL DOWN)キー、(ROLL UP)キーが使えないので、これらのキーの代わりに、forwardコマンド、backwardコマンドの設定されているファンクション・キーを用いる。
SASのPROGRAM EDITORウィンドウの編集機能を司るエディターはフル・スクリーン・エディターと呼ばれ、書き込まれた文字が画面のイメージ通りにSASプログラムとして扱われることになる。(ちなみに、これが仮にフル・スクリーン・エディターではなく、ライン・エディターであれば、入力し変更を加えた行は、コマンド入力のように、各行でリターン・キー(←)を押して、計算機にその旨を確認しないといけない。画面上の変更はあくまで画面上でのみの変化を意味し、ホスト計算機の記憶装置上の変化を意味しないので、編集は常に行単位で行わなければならないのである。その点、フル・スクリーン・エディターは非常に便利である。)
PROGRAM EDITORウィンドウでは次のようなSAS編集コマンドが使用できる。
SAS編集コマンドのうちでも、スクリーン・コマンドはコマンド行に入力して使用するコマンドである。そこで、スクリーン・コマンドを使用する際にはカーソル・キーなどを使って、カーソルをコマンド行に移動させてからコマンドの入力を行う。あるいはPC版SASでは、二つのキーを同時に
(SHIFT)+(HOME CLR)
と押せば、一発でカーソルをコマンド行に移動させることができるので便利である。CMS版SASでは、これと同じ機能をもつhomeコマンドを設定したファンクション・キーが普通はあるはずなので、それをKEYSウィンドウで探して使えばよい。
ファンクション・キーで設定されているコマンドももともとはスクリーン・コマンドなので、例えば、HELPウィンドウを表示させる際には、PC版SASでは(f・1)キーを押してもいいし、コマンド行に
Command ===> HELP
と入力してもいい。機能としては同じことになる。ファンクション・キーで設定されていないスクリーン・コマンドもあるが、よく使うものとしては、例えば次のようなものがある。
SAS編集コマンドのうちでも行コマンドと呼ばれるコマンド群は、これまでのスクリーン・コマンドとは異なった使い方をする。行コマンドは、編集画面左端に並んでいる5桁の行番号部分(これを=====で示すことにしよう)に、行番号の上に(1桁目からの必要はない)重ね書きする形で入力して、リターン・キー(←)を押し、使用するコマンドである。次のようなコマンドが利用可能である。
SASプログラムができたら、(f・10)キー(=zoom off; submit)を押して、PROGRAM EDITORウィンドウ上のプログラムをSASに提出し(submit)、実行させてみる。ただし、処理を異常終了することもあるので、submitする前にSASプログラムをMS-DOSファイルに保存しておかないと、SASプログラムは失われてしまうことがある。submitの前にこまめにfileしておく方が安全である。
うまくSASプログラムの実行に成功すると、出力があればOUTPUTウィンドウに表示されることになる。CMS版SASでは、うまくSASプログラムの実行に成功して、出力があれば、この段階で、ディスプレイ画面全面がOUTPUTウィンドウに切り替わる。
いずれにせよ、SASプログラムの実行が失敗し、うまくいかなかった場合には、LOGウィンドウ上に展開された実行結果を検討し、うまくいかなかった原因をチェックする必要がある。うまく実行されなかった原因は、ほとんどがプログラムの文法上の誤りやコマンドの綴り等の誤りで、これらはエラーとして、LOGウィンドウに表示される。こうしたプログラム上のエラーはバグ(bug=虫)と呼ばれ、エラーだらけで虫食い状態のプログラムは動かない。LOGウィンドウに表示されているメッセージを注意深く検討して、エラーを取り除き、プログラムを修正して実行可能なプログラムに仕上げることを虫を取り除くという意味でデバッグ(debug)という。
初心者がよくやる誤りで、しかも本人がなかなか気がつかない誤りは、次のような見た目には似ている文字、記号の打ち間違いである。
デバッグするためには、まず実行に失敗したSASプログラムを呼び戻さなければならない。そこで、(f・9)キー(=recall)を押して、直前に実行したプログラムをPROGRAM EDITORウィンドウ上に呼び戻してくる。そこで、この呼び戻されてきたプログラムの修正を行い、できたらまた実行させてみる。ごく短いプログラムを除いて、プログラムが一度で正常に実行されることはめったにない。通常は何度も実行、修正のサイクルを繰り返して、ようやくまともに動くプログラムができるものである。それだけに、自分で組んだプログラムが実際に動いたときには、それなりの感激があるものである。その感激を味わうためにも、ここでくじけずに、こまめにデバッグするしかないのである。
PROGRAM EDITORウィンドウ上のSASプログラムは、そのままSASを終了してしまうと失われてしまう。そこで、完成したSASプログラムは、ファイルとして保存しておこう。人間の手作業とは違い、プログラムとデータさえ保存しておけば、どんなに長い出力結果であっても、コンピュータの処理には100%の再現性がある。SASプログラムをファイルとして保存するためには、既に、(3)でも述べたように、
Command ===> FILE 'ファイル名'
と入力する。こうすることで、PROGRAM EDITORウィンドウ上にあるSASプログラムが、PC版SASでは指定ファイル名のMS-DOSファイルに、CMS版SASでは指定ファイル名のCMSファイルにそれぞれ書き出され、保存される。まさに、ファイルされるのである。
以上のような作業を行って、SASを終了する際には、
Command ===> BYE
と入力すればよい。ただし、このSAS終了によって、PROGRAM EDITORウィンドウのSASプログラムが失われるだけではなく、LOGウィンドウ、OUTPUTウィンドウの内容も失われる。実は、LOGウィンドウ、OUTPUTウィンドウの内容は、途中clearコマンドを実行しない限り、SASを起動してから終了するまで(これをセッションと呼ぶ)の間、失われることなく蓄積、保存されているのである。したがって、画面をスクロールさせることで、そのセッションでそれまでに実行されていた諸結果を参照することも可能である。このことがあるために、セッションをあまり長く続けて、プログラムを流し続けていると、記憶、蓄積される各ウィンドウの内容が膨大になりすぎて、プログラム実行の際の異常終了の原因ともなるので、ときどきはウィンドウの内容をclearするか、あるいはいっそのこと時々SASセッションを終了させた方がよい。
このように、byeコマンドによって、LOGウィンドウ、OUTPUTウィンドウの内容が失われるが、既に述べたように、それぞれのウィンドウでfileコマンドを使えば、MS-DOSファイルあるいはCMSファイルとして保存することは可能なので、必要ならばそうするとよい。
SASプログラムは、SAS文と呼ばれる文によって構成される一種の文章である。SAS文はSASシステムに対してある処理をさせるための命令文だから、SASシステムが読んで理解できるような形式、文法で書かれたものでなくては意味がない。各SAS文は形式的には ";" (セミコロン)で終わる空白を含めた文字列であるが、
ただし、"*" で始まるSAS文はコメントとみなされ、SASシステムは読み飛ばすことになっている。つまり、"*" で始まるコメント文は、SASシステムのためにではなく、プログラム作成者自身を含めた人間のために書かれるものである。実際、誰か他人のためというよりも、将来の自分がプログラムの内容を理解できるようにするために、プログラムの解説をコメントの形で入れておいた方がよい。
SASは、利用者が作成したデータ・セットに対して、利用者が指定し、呼び出した各種統計用プログラム(SASではこのようにあらかじめ用意されたそれぞれのプログラムをプロシジャ(procedure)と呼んでいる)を機能的に結び付けるためのシステムである。利用者はSASに対して、データ・セットの作成と希望するプロシジャの指定さえ行えばよく、あとはSASが統計処理を行ってくれるのである。したがって、SASプログラムは、基本的には次の2種類のステップの繰り返しとして構成される。
DATAステップで作成・加工の対象となり、PROCステップで統計処理の対象となるSASデータ・セットは、特殊な形式のファイルである。より具体的に、質問票調査をした場合を想定するとわかりやすいが、調査対象である各個人、これをSASではオブザーベーション (observation)と呼んでいるが、このオブザーべーションごとに、各質問に対する回答を表形式にまとめて整理したものとなっている。SAS流にいえば、SASデータ・セットはオブザーベーション番号1, 2, 3,...ごとに、いくつかの変数(variable)、例えばX1, X2, X3,...に対するデータ値を書いた表2.3のような表形式のファイルということになる。いわば表形式のデータ・ベースである。
表2.3 SASデータ・セットの構造
オブザーベー ション番号 | 変数 | |||
---|---|---|---|---|
X1 | X2 | X3 | ・・・・・・ | |
1 | ||||
2 | ||||
3 | ||||
: : |
SASデータ・セットには、
SASデータ・セットは元のデータ・ファイルに比べるとかなり大きな容量を必要とする。PC版SASでは、この章で後述する基本型プログラムでも82.5KB程度のデータ・ファイルから607.5KB程度のSASデータ・セットが生成され、7.4倍にもなる。通常はもっと多種多様な変数が作成されるので、例えば、この章の通常型プログラムでは、同じデータ・ファイルから1.2MB程度のSASデータ・セットが生成される。実に14.5倍である。一時SASデータ・セットでも、SAS終了時まで消去されないので、1回のSASセッションの間に、異なる名前の一時SASデータ・セットをたくさん作ると、大容量の固定ディスクでも、あっという間に空き領域を使い尽くすことになるので、特に、パーソナル・コンピュータでSASを使う場合には、できるだけ同じ名前のSASデータ・セットを繰り返し繰り返し使用した方が、ディスク容量の節約になる。また、SASデータ・セットの生成には、その都度時間がかかるので、メインフレームならばともかく、パーソナル・コンピュータでは同じ一時SASデータ・セットを何度も生成するのは時間の無駄である。そのため、本書では、一度、永久SASデータ・セットを生成しておき、後のプログラムはそれを繰り返し再利用することを原則としている。
SASでは変数名は英字で始まる8文字以内の英数字とすることになっている。最大4,000個まで変数を定義することが可能である。また、変数には数値データも文字データも与えることができる。ただし、変数に文字データを与える際には、それが文字データであることを明示する必要がある。具体的には、文字データを ' ' で囲むことで、例えば
'123' 'ABC' 'ASA100'
のように、それが文字データであることを明示する。したがって、123は百二十三という「数値」であるが、'123' は123という「数字」つまり文字列であることを意味している。変数のとりうる値は、数値データの場合には ±10-73〜1073 の範囲、文字データの場合には 1〜200文字(バイト)である。
質問票調査の場合を考えるとわかるように、調査を実際に行うと、一部無回答の質問票というのが、ある程度の割合で出てくることになる。つまり、オブザーべーションによっては、実際には値の存在しない変数がいくつか存在することになる。こうした場合には、SASシステムに変数の値が「欠損している」ということ知らせるために、データ・エントリーを行う際に、何らかの「値」を与えなくてはならない。この「値」のことを欠損値と呼び、SASでは変数に表2.4の欠損値を与えておくと、SASが統計処理を行なう際に、処理対象の変数が欠損値であるオブザーべーションについては、あらかじめそれを除いた上で各種処理が行われることになっている。
表2.4 欠損値
数値変数 | 文字変数 | |
---|---|---|
欠損値を示すデータ |
|
|
他に欠損値として扱われる入力データ |
|
|
また、SASプログラムの中では変数名をリスト状に並べて用いたり、同じような変数名がいくつも並んだりするようなケースが起こる。実は、その方がプログラムを書く際には楽なのである。なぜなら、例えば、五つの変数を並べた
X1 X2 X3 X4 X5
のような場合には、
X1-X5
という省略形が使えるからで、これはとても便利である。一般的には、Xm-Xn と記すと、XmからXnまでのすべての変数(m<n)を表すことになる。同様に、X--Z と記すと、SASプログラム中でXからZまでの間に定義されたすべての変数を表すことになる。このほかにも、
_ALL_ ……すべての変数
_NUMERIC_ ……すべての数値変数
_CHARACTER_……すべての文字変数
のような省略形も用意されている。
ところで、変数名を考え出すというのは、意外と大変な作業である。変数の数が増えるほどその大変さは身に染みてくる。実際、変数名を考えた本人ですら、変数名を見ただけでは、その変数がどの質問項目に対応していたのかがわからなくなってしまう。しかも、変数名が複雑で錯綜してくればくるほど、さきほどのような変数名の省略形を使いにくくなってくるのである。そこで、お勧めなのは、筆者が実行しているちょっとした工夫である。第6章でも触れるが、まず、変数名リストの省略形を使いやすいように、変数名の末尾は数字を質問の順に付けたものがよい。また変数名は英字から始めなくてはいけない。したがって、質問票の設計段階で、事前に質問番号を
アルファベットまたはローマ数字による大分類[+中分類]+数字による小分類
という構成にしておくのである。例えば、
質問番号 II.3 IV.4 A.III.5 D.IX.9
変数名 II3 IV4 AIII5 DIX9
というようにすると、簡単に変数名が付けられるし、逆に変数名を見れば、元の質問番号がすぐにわかるのである。SASプログラムで変数名を定義するときに質問票の質問番号をそのまま変数名にすることができて、便利で間違いも少ない。ただし、変数名は8文字以内なので、質問番号を決めるときにはなるべくシンプルにつけた方がよいことに変わりはないが……。変数の具体的な意味内容については、変数名に反映させるのではなく、後述するような変数ラベルを用いた方がよい。これで出力時に表示することができ、その際には字数制限も40文字以内と大幅に緩くなっており、日本語、漢字なども使え、はるかに実用的である。
この節では、実際に簡単なSASプログラムを作成し、データ・エントリーと単純集計及び永久SASデータ・セットの生成を行ってみよう。この一連のプロセスとSASプログラムの基本を理解してもらうために、この節では、もっともシンプルな基本型SASプログラムを取り上げる。この基本型プログラムを進化させる形で、次の節で、筆者が実際に調査のときに使用する通常型SASプログラムへと発展させる。もっとも、基本型プログラムでも欲を出さねば、十分実用になる。
例えば、第6章で調査の実例としてあげる「組織活性化のための従業員意識調査」で得られた回答は、調査票のままでは、人間には読めても、コンピュータやSASは読み取ることができない。そこでまず最初に、コンピュータやSASが読み取り可能な形のデータに書き直してやる必要がある。具体的には、回答をデータ値として、ある規則に則ってディスプレイ画面上やファイル上に書き並べてやるのである。これをデータ・エントリーという。よく用いられる代表的なデータ値の書き並べ方には次の二つの形式がある。
それぞれに対応する形で、後述するINPUT文の変数名の並びの形式がある。これらの形式がよく使われる入力の仕方について、それぞれ具体的に説明しておこう。
これはSASプログラム内部に直接データを書き込む方法である。リスト形式では、リスト入力が行われ、変数名の並びに対応させながらデータ値を読み込む。一般的には、変数名の並びは、INPUT文で
INPUT 変数名1 変数名2 ……;
とそのまま変数名を書き並べる形式をとる。リスト入力の場合、データ値は空白によって区切られるということの他に、
などに注意しなくてはならない。
いま、この方式でデータを入力し、永久SASデータ・セットを生成することを考えよう。PC版SASでは、次のようにする。
PC版SAS |
---|
LIBNAME libname '¥パス名'; DATA libname.永久SASデータ・セット名本体; INPUT 変数名の並び; CARDS; データ行 ; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; DATA SAVE.JPC; INPUT KC SC IC I1-I4; CARDS; 5 7 01 1 8 1 4 5 7 02 1 3 1 4 5 7 03 1 3 1 3 5 7 04 1 3 1 4 5 7 05 1 5 1 2 5 7 06 1 5 2 3 5 7 07 1 3 1 2 5 7 08 1 5 1 2 ; |
PC版SASでは、永久SASデータ・セットのファイル名の拡張子は必ず "SSD" として生成される。このプログラム例の場合には、"JPC.SSD" というファイル名の永久SASデータ・セットがMS-DOSファイルとして生成されることになる。LIBNAME文では、この永久SASデータ・セットがどこのディレクトリの下に生成されるのかを示すためのパス名が指定される。LIBNAME文でこのパス名と対応づけられたlibname (ライブラリ参照名)が、パス名の代わりに、そのSASセッションの間、用いられることになる。
このプログラム例の場合では、MYDIR というパス名を "SAVE" というlibnameに結び付けて定義している。この指定により、永久SASデータ・セットJPC.SSDはディレクトリMYDIRの下に生成されることになるとともに、"SAVE.JPC" で "¥MYDIR¥JPC.SSD" を意味することになる。
CMS版SASでは、PC版SASのようにlibnameの指定がいらない。既に、第4節(2)(b)で述べたように、CMS版SASでは、永久SASデータ・セット名=ft.fn とftが先にくるが、この2レベル名の指定だけで自動的に永久SASデータ・セットが生成され、libnameは必要がない。したがって、CMS版SASではPC版SASでは必要だった1行目のLIBNAME文はつけず、2行目のDATA文から始める。その際、形の上ではPC版SASのDATA文中のlibnameを指定していたところで、CMS版SASでは永久SASデータ・セット名のftを指定することになる(ftをWORKにすると、一時SASデータ・セットとして認識されてしまうので、それ以外のものにすること)。CMS版SASでは、このように指定するだけで,SASデータ・セットは永久SASデータ・セットとなり、DATAステップで行った加工処理は、そのままCMSファイルとして保管されることになる。したがって、形式的には、PC版SASのプログラム例の1行目を削除したものが、そのままCMS版SASのプログラム例となる。すなわち、
CMS版SAS |
---|
DATA 永久SASデータ・セット名; INPUT 変数名の並び; CARDS; データ行 ; |
例) |
---|
DATA SAVE.JPC; INPUT KC SC IC I1-I4; CARDS; 5 7 01 1 8 1 4 5 7 02 1 3 1 4 5 7 03 1 3 1 3 5 7 04 1 3 1 4 5 7 05 1 5 1 2 5 7 06 1 5 2 3 5 7 07 1 3 1 2 5 7 08 1 5 1 2 ; |
いずれにせよ、リスト形式はデータ値を空白によって区切っていくので、変数が多くなると、空白だらけになる。しかも、空白もまた1文字であり、キーの1タッチを要する。したがって、データを大量にエントリーする場合には、効率やファイル容量の点では問題があることには注意がいる。また、SASプログラム内に直接、データを書き込んでおくことで、大量のデータ、例えば1,000オブザーべーションのデータを扱うと、プログラムの長さも、最低でも1,000行を超えることになり、データの編集、デバッグ等を考えると実用的ではない。そこで考えられるのが、プログラムとデータをファイルとして分離しておく次のような方式である。
フォーマット形式では、リスト形式のように、データ値の間に空白の区切りがないので、データ・ファイルを見ただけでは、どこからどこまでが一つのデータ値になっているのかがわからない。そこで、データ・ファイルを作成した人間の側で、そのデータ・ファイルの中でデータ値がどのような書式で並べられているのかを指示してやる必要がある。
いま、MS-DOSファイルJPCDATA.SAS、あるいはCMSファイルJPCDATA SASからデータを読み込むことを考えよう。このファイルには、(a)のプログラム例と同じデータが図2.6のように入っているとする。つまり、変数KC, SC, IC, I1, I2, I3, I4に対応するデータ8人分が、図2.6のように変数に対応させながら入力してある。
図2.6 データ・ファイル(JPCDATA.SASあるいはJPCDATA SAS)の中のデータと変数の対応
入力した人間の側では、図2.6で示したような対応をつけながら入力したわけであるから、その対応関係のことをSAS側に教えてやらなければならない。そのとき、各変数に対応するカラムを指定するために用いられるのが書式であり、この場合には、例えば単純に変数とカラムの対応を付けて、
INPUT KC 1. SC 1. IC 2. I1 1. I2 1. I3 1. I4 1.;
あるいは、変数名の並びと、書式のまとまりを考えて、
INPUT (KC SC IC I1-I4)(2*1. 2. 4*1.);
というように指定してやればよい。つまり、リスト形式のように、データ値の間に、空白の区切りがないので、書式の上で区切りをつけてやろうというのである。一般的には、INPUT文で
INPUT (変数名1 変数名2 ……)(対応する書式)[(変数名3 ……)(対応する書式)……];
という形式をとる。下線部全体をさして、フォーマット形式では「変数名の並び」と呼ぶ。つまり、フォーマット形式では「変数名の並び」には書式まで含まれていることになる。ここで、書式とは次のものを空白で区切って並べたものをいう。
w. ……フィールドの長さw(1≦w≦32)の数値データを変数に与えるとき
$w. ……フィールドの長さw(1≦w≦32)の文字データを変数に与えるとき
m*w. ……同じwの数値データのフィールドがm個並んでいる場合
m*$w. ……同じwの文字データのフィールドがm個並んでいる場合
+n ……nカラム読み飛ばすとき
また、一つのオブザーベーションに対するデータが2行以上にわたるときには、変数名とそれに対応する書式は2行分以上にわたらないようにまとめて分け、その間に行の区切りを示すために "/" を入れる。
PC版SASでは、このような書式を用いて、図2.6のMS-DOSファイルJPCDATA.SASからのデータを読み込み、永久SASデータ・セットを生成するプログラムは次のようになる。
PC版SAS |
---|
LIBNAME libname '¥パス名'; DATA libname.永久SASデータ・セット名本体; INFILE データ・ファイル名; INPUT 変数名の並び; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; DATA SAVE.JPC; INFILE 'JPCDATA.SAS'; INPUT KC SC IC I1-I4; |
このプログラム例のように、データ・ファイル名(例ではJPCDATA.SAS)の指定の際にドライブ名、パス名を省略した場合は、データ・ファイルはカレント・ディレクトリ(本書ではMYDIR)の中になければならない。
CMS版SASでは、永久SASデータ・セットの使用の際に、libnameの指定がいらないが、その代わり、CMSファイルからのデータの読み込みの際にはddnameの指定が必要になる(詳しくは付章第2節を参照のこと)。CMSでは、データ入力機器の既定値は端末になっているので、CMSファイル(fileid = fn ft [A])からデータを読み込む際には、"X CMSコマンド"でデータ入力機器の設定を変更する必要がある。
CMS版SAS |
---|
X FIledef ddname DISK fileid; DATA 永久SASデータ・セット名; INFILE ddname; INPUT 変数名の並び; |
例) |
---|
X FI IN1 DISK JPCDATA SAS; DATA SAVE.JPC; INFILE IN1; INPUT (KC SC IC I1-I4)(2*1. 2. 4*1.); |
ddnameとして筆者は"18"または"IN"などをよく使う。ここでのプログラム例は、PROGRAM EDITORウィンドウで作成したデータ・ファイルであるCMSファイルJPCDATA SASを読み込むことにしている。
いずれにせよ、筆者が大量データの際に勧めるのは、このフォーマット形式である。この形式は、多くの変数と多数のオブザーべーション、つまり大量のデータを扱うような場合、特にデータ・エントリーを外注して、フロッピィ・ディスクや磁気テープでデータが納入されるような場合に適している。PC版SASでは、データ・ファイルをいちいち固定ディスクにコピーしておかなくても、INFILE文のデータ・ファイル名の指定を、例えば
INFILE 'B:JPCDATA.SAS';
とドライブ名つきで指定すれば、直接、ドライブBのフロッピィ・ディスクからデータを読み込むこともできる。固定ディスクから読み込むよりは、やや遅くなるとはいうものの、本書で扱うようなデータではせいぜい秒単位の話である。
ところで、CMS版SASでは、文字変数を使用する場合には、意外なトラブルに巻き込まれることがある。それは、メインフレームの端末やプリンタによっては、"$" を "¥" に置き換える必要があるためである。したがって、なるべく"$"を使用しないようなSASプログラムを作った方が無難である。例えば、データはすべて数字で作成し、数値変数で入力できるようにしたり、それでも、文字変数をどうしても使用したければ、'文字列'代入方式をとるというような工夫をしてみた方がよい。
以上のようなDATAステップに続いて、PROCステップに様々な統計処理を実行させるためのSAS文を書くことになるが、一般には、このPROCステップはDATAステップと比べても簡単で短い行数で済むことが多い。ここでは、一番最初にするべき統計処理である単純集計のみを例にして考え、他の様々な統計処理についてはそれぞれ対応する章において、SAS文の使用について取り上げることにしよう。
単純集計は、初心者はややもすると軽視しがちであるが、統計処理として一番基本的でかつ欠かしてはならない重要なものである。まず、この単純集計結果は報告書等の作成の際には、必ず掲載しなくてはならない情報の一つである。また、それだけではなく、それによって、データ・エントリーのミスやSASプログラムのDATAステップでの様々な設定が正しくなされているのかをチェックするという意味でも、欠かすことの出来ない重要な初期処理である。この段階で、次の第3章で述べる階級の設定なども実際の度数分布を参考にしながら行ってしまうのである。この単純集計を行うというステップで念入りにチェックを行っておかないと、後で統計処理のやり直しを迫られる羽目になるので十分注意深く行ってほしい。この単純集計を見ながら、これから行う統計処理についての様々なアイデアを練るのである。
統計学の用語でいえば、単純集計をとるということは、全変数の度数分布表を作成するということである。それには次のようなごく簡単なSAS文だけで済む。
PROC FREQ; [TABLES 変数名の並び;] [OPTIONS NOCENTER;] |
例) |
---|
PROC FREQ; TABLES KC SC I1--VI15; OPTIONS NOCENTER; |
ここで、TABLES文を省略すると、既定値通り、全変数について度数分布表が作成される。もし全変数の度数分布表が必要ないときには、プログラム例のように必要なものだけを変数名の並びでTABLES文の中に指定することもできる。しかし、単純集計では、プログラム、データのチェックをするという意味からも、全変数についての度数分布表を作成するのが原則である。
また、OPTIONS NOCENTER; を指定すると出力は左端に寄せて行われる。この指定を省略すると出力は画面の中央に寄せて行われる。出力をMS-DOSファイルやCMSファイルに書き出して、ワープロで編集する際には、OPTIONS NOCENTER; を指定して、出力を左端に寄せて行っていた方が、ファイル容量的にも、作業的にも無駄がない。中央寄せとは、結局、各行の先頭部分にたくさんの空白(ブランク)を挿入することだからである。このPROC FREQによって作成される度数分布表は、次のような形式になっている。
図2.7 PROC FREQによって作成される度数分布表の一般形式
度数分布表の形式や読み方については、次の第3章で説明するので、ここではとりあえず、単純集計とは、この度数分布表、その中でも特に、度数と相対度数を求めることだということだけを言っておこう。このような度数分布表の形で得られた単純集計結果で確認すべきことを、もう一度まとめておこう。
ここでは、質問調査票の回答のデータ・エントリーと単純集計の作成、そして今後の統計処理に再利用する永久SASデータ・セットの生成を作業の順に取り上げる。まず、データ・エントリーから始めよう。
基本型SASプログラムの中でデータ・ファイルとして指定することになるMS-DOSファイルJPCDATA.SAS、あるいはCMSファイルJPCDATA SASを自分で作成する場合を考えてみよう。データ・ファイルは自分の使いやすいワープロ・ソフトで作ってもよいが、ここでは、せっかくPROGRAM EDITORウィンドウの使い方を説明したので、このPROGRAM EDITORウィンドウで作成してみよう。データ・ファイル作成はいたって簡単である。図2.7では、データ例として、第6章で実例として取り上げる「組織活性化のための従業員意識調査」の実際の回答のうち、20人分のデータをPROGRAM EDITORウィンドウで入力、作成しているところを2画面で例示している。
図2.8 PROGRAM EDITORウィンドウで作成するデータ・ファイルの一部(20人分)
(MS-DOSファイルJPCDATA.SAS、あるいはCMSファイルJPCDATA SAS)
このPROGRAM EDITORウィンドウでの入力作業が終ったら、コマンド行に、PC版SASのときは
Command ===> FILE 'JPCDATA.SAS'
CMS版SASのときは
Command ===> FILE 'JPCDATA SAS'
と入力して、MS-DOSファイルJPCDATA.SAS (ディレクトリは自動的にカレント・ディレクトリMYDIRになる)またはCMSファイルJPCDATA SASの中に保存しておこう。もっとも、入力し終るまで保存しないというのは、もし何がトラブルがあったときに、それまでのデータ・エントリーの苦労が水の泡となってしまい、危険なので、作業途中に何度も、このfileコマンドを使って、こまめにファイルへの保存作業を行っておいた方が無難である。
実際には、データ・ファイルJPCDATA.SASあるいはJPCDATA SASの中には、907人分1814行のデータを入れることになるわけだが(ファイル容量としては82,538バイト)、これだけの量になると、信頼できるデータ・エントリー業者(昔はカード・パンチを外注するということから「パンチ業者」といっていた)に外注した方が、タイプ・ミスもなく安全である。しかし、このわずか20人分でも実際に自分の手で入力してみると、
最もシンプルで簡単な基本型SASプログラムの例は図2.9のようなものになる。図2.9はこの基本型プログラムをPROGRAM EDITORウィンドウで作成した状態を示している。これは基本型とはいうものの、第6章で調査の実例として挙げる「組織活性化のための従業員意識調査」によって得られたデータを実際に単純集計し、永久SASデータ・セットを生成することができるSASプログラムである。シンプルではあるが、これでその役目を十分に果たすことになる。
図2.9 PROGRAM EDITORウィンドウで作成した基本型SASプログラム(PC版SAS)
(MS-DOSファイルJPCP0.SAS、あるいはCMSファイルJPCP0 SASに保存)
図2.9はPC版SAS用のプログラムであるが、CMS版SAS用は1行目、3行目をそれぞれ次のように置き換えればよい。
00001 X FI IN1 DISK JPCDATA SAS;
00003 INFILE IN1;
この基本型SASプログラムは、PROGRAM EDITORウィンドウで作成した後、やはりfileコマンドで、MS-DOSファイルJPCP0.SAS、あるいはCMSファイルJPCP0 SASに保存しておく。
さて以上の準備が整ったら、さっそくSASプログラムを実行してみよう。うまくいけば、このSASプログラムの実行に伴って、次々とLOGウィンドウに表示が現れて、実行終了時には、図2.10のような表示が出されているはずである。
図2.10 基本型SASプログラムを実行したときのLOGウィンドウの表示(PC版SAS)
このログの内容からもわかるように、PC版SASでは、このSASプログラムの実行時間も表示される。この例では、実行には計10分弱を要したことがわかる(もっとも、まったく同じSASプログラムでも、この実行時間は実行の度に数秒程度のばらつきが出る)。その結果、生成される永久SASデータ・セットJPC.SSDは607,528バイトつまり約600KBの大きさのMS-DOSファイルとなる。CMS版SASでは、実行時間は表示されないが、はるかに短時間で実行が終り、永久SASデータ・セットJPC SAVEが生成される。
単純集計の結果は、OUTPUTウィンドウに次々と表示されるが、そのうちの一画面分を抜き出すと、図2.11のようになる。
図2.11 基本型SASプログラムを実行して得られた出力の一部を表示するOUTPUTウィンドウ
質問I 1は性別に関するもので、この場合、1は男で、2は女を表している。こんな簡単な単純集計であっても、従業員(正社員)の多くが男性であるという日本の大企業におけるホワイトカラーの職場の実態が垣間見える。
以上の基本型SASプログラムは、単純集計用プログラムの中でも最も簡単なものである。これでも十分に実用になるが、筆者が実際に調査の際に用いる通常型SASプログラムでは、出力結果をわかりやすくするために変数にラベルをつけたり、後々行う統計処理のことなども考えて、これらの変数をもとにして様々なデータの加工、処理を行ったりしておくとともに、出力結果をワード・プロセッサーで編集する際の作業をやりやすくするような様々な工夫を施してある。そこで、この節では、この最もシンプルな基本型SASプログラムをベースにして、実際の調査に用いられる単純集計用の通常型SASプログラムへと進化させてみよう。
変数には変数名だけではなく、変数の説明のためにラベルをつけることができる。変数のラベルは40文字(バイト)以内で、次のような形式で指定することが出来る。
LABEL 変数名1='ラベル1' 変数名2='ラベル2' ……; |
例) |
---|
LABEL KCODE='COMPANY' SCODE='UNIT' I1='SEX' I2='AGE' I3='OCCUPATION' I4='RANK'; |
ラベルそれ自体の中に「'」を含めたいときは「''」と2個続けて書くと、SASでは1個と認識され、表示されることになる。
変数のラベルに日本語データ(全角文字)を使うことも出来る。しかし、筆者としては、特に、CMS版SASでは、SASプログラムの段階で全角文字を使用することは勧められない。実際の経験からすると、プログラム段階で日本語データを含めておくと、OSやメインフレームの端末の種類、日本語変換プロセッサーのくせや性能によって、処理内容が影響を受け、思いがけないトラブルの原因になるからである。しかも、IBMのメインフレームでは、シフト・コードで全角文字をはさむ必要があるので、そのときにはラベルは19文字以内ということになるだけではなく、そのシフト・コードがデータの転送やワード・プロセッサーによる編集の際にトラブルの原因になるのである。出力結果の図表でラベルとして日本語を用いたいのであれば、出力を書き出したMS-DOSファイルを編集する際に、日本語ワード・プロセッサーの編集機能を使って、日本語ラベルに置換していった方がはるかに確実、実用的でかつ速い。
変数に変数値を代入することは、割り当て文(assignment statement)によって行われる。割り当て文といっても、形式はいたって簡単で、
変数名=式; |
定数は数値データでも文字データでもよい。数値データの場合には、直接数値を代入すればよいが、文字データの場合には、その文字データを' 'で囲んで、それが文字データであることを明示する必要がある。具体的には次のような形式になる。
変数名=数値; |
例) |
---|
TI1=1; |
変数名='文字列'; |
例) |
---|
I1='1.MALE '; |
同一オブザーベーション内での変数値の演算値を与える場合には、具体的には変数名を使った数式の形で示せばよい。
変数名=数式; |
例) |
---|
SCODE=KC*10+SC; |
という形式になる。そうすると各オブザーべーションの変数値を使って演算が行われ、その演算結果の値が変数に代入される。例では、各オブザーべーションで、変数KC, SCの値を使って演算が行われ、その演算結果の値が変数SCODEに代入されることになる。つまり、会社コードを十の位に、会社ごとに付けられた組織単位コードを一の位にもつ、全会社を通して使える2桁の「組織単位コード」を与えているのである。
算術演算子の優先順位は
いつも単純に同じ処理を繰り返すのではなく、変数値によって条件別に処理を選択することもできる。これにはSELECT/WHEN文が用いられる。SELECT/WHEN文では、WHENで条件を示し、その条件が真のとき処理が実行される。処理3は実際にはなくても、OTHERWISEは必ず入れておくことに注意してほしい。
SELECT; WHEN(条件式1)処理1; WHEN(条件式2)処理2; …… OTHERWISE[処理3]; END; |
例) |
---|
SELECT; WHEN(TI1=1) I1='1.MALE '; WHEN(TI1=2) I1='2.FEMALE'; OTHERWISE I1=' '; END; |
このプログラム例は変数値ラベルの定義をしているものである。プログラム例の中で、TI1=1とかTI1=2とかあるのは、値の代入式の意味ではなくて、条件を示す論理式である。この例のように、条件式は次のような演算子を使って書かれた真偽の判定できる論理式である。
比較演算子 | EQ | NE | GT | GE | LT | LE |
または | = | > | >= | < | <= |
論理演算子 | AND | OR | NOT | ||||||||||
または | & | | |
SELECT(変数名); WHEN(変数値1)処理1; WHEN(変数値2)処理2; …… OTHERWISE[処理3]; END; |
例) |
---|
SELECT(TI1); WHEN( 1 ) I1='1.MALE '; WHEN( 2 ) I1='2.FEMALE'; OTHERWISE I1=' '; END; |
このSELECT/WHEN文の処理はこのような変数値の代入だけではなく、様々な処理が可能である。具体的に多く用いられる処理のケースとしては次のようなものがある。
もっとも一般的でよく使われる。既に見てきた変数値ラベルの定義もこれにあたる。ただし、注意しなければならないのは、文字変数の値は、出力の表中に表示されるときには昇順に並べられるということである。それために、英字から始まる変数値を文字データとして与え、ラベル代わりに使用する際には辞書順序となってしまう。それを回避するためには、先ほどのプログラム例にあった '1.MALE', '2.FEMALE' のように、最初に数字を入れると良い。
また第3章でも述べる階級の定義も変数値ラベルの定義と同様に次の例のように行う。
例) |
---|
SELECT; WHEN (20<=I2<25) LI2='20-24'; WHEN (25<=I2<30) LI2='25-29'; WHEN (30<=I2<35) LI2='30-34'; WHEN (35<=I2<40) LI2='35-39'; WHEN (40<=I2<45) LI2='40-44'; WHEN (45<=I2<50) LI2='45-49'; WHEN (50<=I2<55) LI2='50-54'; WHEN (55<=I2<60) LI2='55-59'; OTHERWISE LI2=' '; END; |
また変数値ラベルは10文字(バイト)以下に抑えた方が、PROCでトラブルが起きない。10文字を越えた分は、クロス表などでは無視される。
DELETE; |
SELECT/WHEN文の処理として、オブザーべーションの削除を用いると、条件にあったオブザーべーションだけを残して統計処理をすることが可能になる。例えば、調査対象全体をいくつかのサブグループに分けてそれぞれの特性値を求めるような際には必要となる。ただし、このDELETE文を永久SASデータ・セットに用いると、オブザーべーションは永久に消えてしまうので、サブグループごとの統計をとるためには一時SASデータ・セットについてDELETE文を使っていることを確認しながら使用した方がよい((6)の(b)も参照のこと)。
DOグループは、DO;とEND;ではさまれたSAS文群で、SASではDO-END文でDOグループを一つのSAS文のように扱う。実はSELECT/WHEN文でWHEN文に続いて書かれる処理は、形式的には一つの処理しか書けないようになっている。そこで、複数のSAS文を実行させたいときに、DOグループの形をとって、形式的に一つの処理として収めてしまおうというわけである。次の例では、下線部がDOグループになっている。
DO; SAS文群 END; |
例) |
---|
SELECT; WHEN(KC=1) KCODE='1.A '; WHEN(KC=2) KCODE='2.B '; OTHERWISE DO; KCODE=' ';SC=.; KC=.; IC=.; END; END; |
これはSELECT/WHEN文を入れ子の形で使用することが可能だということである。
異なる変数に、何度も同じ処理を繰り返す場合は、いちいちそれを書いていては、プログラムもいたずらに長くなってしまうし、分かりにくくなってしまう。そうした場合には、次のようにARRAY文を用いると便利である。
ARRAY 変数名{n} 変数名の並び; DO I=1 TO n; 変数名{I}を含んだ処理 END; |
例) |
---|
ARRAY TYN{15} TII1-TII15; ARRAY YN{15} $ II1- II15; DO I=1 TO 15; SELECT; WHEN(TYN{I}=1) YN{I}='1.YES'; WHEN(TYN{I}=2) YN{I}='2.NO '; OTHERWISE YN{I}=' ';END; END; |
ここでnには、変数名の並びにある変数の個数を数値として入れる。プログラム例のARRAY文の2行目にもあるように、変数に文字定数を代入する際、ARRAY文の中で、その変数の前に文字変数であることを示す"$"をつけることを忘れないようにする。
それでは、以上に述べてきたような様々なSAS文を駆使して、データの入力や変数名、変数ラベルの設定を行い、永久SASデータ・セットを作成するとともに、単純集計を行う通常型SASプログラムの例を、まずPC版SAS用に示すことにしよう。
*-----------------------------------------------------;
*-----------------------------------------------------;
*JPCP1.SAS ;
* Permanent SAS data set JPC.SSD will be made. ;
*-----------------------------------------------------;
*-----------------------------------------------------;
LIBNAME SAVE '¥MYDIR'; (i)
DATA SAVE.JPC;
*-----------------------------------------------------;
* Raw data will be read from MS-DOS file JPCDATA.SAS. ;
*-----------------------------------------------------;
INFILE 'JPCDATA.SAS'; (ii)
INPUT (KC SC IC)(2*1. 2.)
(TI1-TI4 TII1-TII15 TIII1-TIII15)(34*1.)
/+4 (TIV1-TIV15 TV1-TV15 TVI1-TVI15)(45*1.);
*-----------------------------------------------------;
* KCODE SCODE will be made. ;
*-----------------------------------------------------;
SELECT;
WHEN(KC=1) KCODE='1.A ER ';
WHEN(KC=2) KCODE='2.B STORE ';
WHEN(KC=3) KCODE='3.C RAIL ';
WHEN(KC=4) KCODE='4.D EP ';
WHEN(KC=5) KCODE='5.E SER ';
WHEN(KC=6) KCODE='6.F BANK ';
WHEN(KC=7) KCODE='7.G HI ';
WHEN(KC=8) KCODE='8.H OIL ';
OTHERWISE DO; KCODE=' '; SC=.; IC=.; END;
END;
SCODE=KC*10+SC;
*-----------------------------------------------------;
* Classification data will be labeled. ;
*-----------------------------------------------------;
SELECT;
WHEN(TI1=1) I1='1.MALE ';
WHEN(TI1=2) I1='2.FEMALE';
OTHERWISE I1=' ';
END;
SELECT;
WHEN(TI2=1) I2='1.20-24';
WHEN(TI2=2) I2='2.25-29';
WHEN(TI2=3) I2='3.30-34';
WHEN(TI2=4) I2='4.35-39';
WHEN(TI2=5) I2='5.40-44';
WHEN(TI2=6) I2='6.45-49';
WHEN(TI2=7) I2='7.50-54';
WHEN(TI2=8) I2='8.55-60';
OTHERWISE I2=' ';
END;
SELECT;
WHEN(TI3=1) I3='1.STAFF';
WHEN(TI3=2) I3='2.E & P';
WHEN(TI3=3) I3='3.R & D';
WHEN(TI3=4) I3='4.SALES';
OTHERWISE I3=' ';
END;
SELECT;
WHEN(TI4=1) I4='1.GEN ';
WHEN(TI4=2) I4='2.MGR ';
WHEN(TI4=3) I4='3.HEAD ';
WHEN(TI4=4) I4='4.OTHERS';
OTHERWISE I4=' ';
END;
ARRAY TYN{75} TII1--TVI15;
ARRAY YN{75} $ II1-II15 III1-III15 IV1-IV15 V1-V15 VI1-VI15;
DO I=1 TO 75;
SELECT; WHEN(TYN{I}=1) DO; TYN{I}=1; YN{I}='1.YES'; END;
WHEN(TYN{I}=2) DO; TYN{I}=0; YN{I}='2.NO '; END;
OTHERWISE DO; TYN{I}=.; YN{I}=' '; END; END;
END;
LABEL
KCODE='COMPANY'
SCODE='UNIT'
I1='SEX'
I2='AGE'
I3='OCCUPATION'
I4='RANK';
*-----------------------------------------------------;
* Check the labels and the frequencies. ;
*-----------------------------------------------------;
PROC FREQ;
OPTIONS NOCENTER;
RUN;
このプログラムはMS-DOSファイルJPCP1.SASに保存しておこう。これが、第6章で調査の実例としてあげる「組織活性化のための従業員意識調査」の際に単純集計と永久SASデータ・セット生成に実際に用いられたSASプログラムである。
先ほどの基本型SASプログラムと同じ、データの入ったMS-DOSファイルJPCDATA.SASから、永久SASデータ・セットが生成される。永久SASデータ・セット名に同じJPCを使っているので、MS-DOSファイルJPC.SSDは重ね書きされ、内容は更新されることになる。処理時間としては、DATAステップで6分強、PROCステップでは約9分を処理に要する。したがって、全体では15分強ということになる。この結果、生成される永久SASデータ・セットJPC.SSDは1,211,212バイトつまり約1.2MBの大きさのMS-DOSファイルとなる。基本型SASプログラムの82変数に対して、この通常型SASプログラムでは164変数が定義されることになるので、基本型SASプログラムの約2倍のファイル容量を必要とすることになる。
CMS版SAS用のプログラムは、このPC版SAS用のプログラムのうちのわずか2行、(i)と(ii)を次のように置き換えればよい。
永久SASデータ・セットは一度作成してしまえば、もうデータの読み込みや変数の定義、データの加工を繰り返す必要はなく、あとはそれを別のプログラムの中で呼び出してやるだけで、SASはそのSASデータ・セットを参照して、PROCステップを行うことができる。したがって、既存の永久SASデータ・セットを使うSASプログラムは、簡潔かつ簡単なもので済ませることができる。次の第3章以降で取り上げるSASプログラムは、そのために、ごく簡単なものになる。ここでは永久SASデータ・セットを繰り返して再利用する際の一般的な方法についてまとめておこう。永久SASデータ・セットの呼び出しは次のように行う。
PC版SASで、永久SASデータ・セット名1の永久SASデータ・セットの読み込みを行い、また新たに定義した変数や、新たに加工されたデータを含めて、永久SASデータ・セット名2の永久SASデータ・セットに書き出すには次のようにすればよい。
PC版SAS |
---|
LIBNAME libname '¥パス名'; DATA libname.永久SASデータ・セット名2本体; SET libname.永久SASデータ・セット名1本体; データの加工・処理 |
例) |
---|
LIBNAME SAVE '¥MYDIR'; DATA SAVE.JPC; SET SAVE.JPC; SELECT; WHEN(TI1=1) I1=1; WHEN(TI1=2) I1=0; OTHERWISE I1=.; END; END; |
こうすることで、SASデータ・セットは永久SASデータ・セットとなり、DATAステップで行った加工処理は、そのままMS-DOSファイルとして保管されることになる。このプログラム例のように二つの永久SASデータ・セット名を同じにすると、プログラム実行の都度、永久SASデータ・セットは書き換えられ、更新されることになる。DATA文のSASデータ・セット名2を永久SASデータ・セット名1と別のものにすれば、新たにもう一つ別の永久SASデータ・セットが自動的に生成される。
CMS版SASでは、PC版SASのようにlibnameの指定がいらない。つまりCMS版SASでは1行目のLIBNAME文はつけずに、2行目のDATA文から始めるわけだが、その際、PC版SASのDATA文中のlibnameに相当するものとして、CMS版SASでは永久SASデータ・セット名のftを指定することになる。そのため、永久SASデータ・セット名=ft.fn とftが先にくることに注意する。CMS版SASでは、このように指定するだけで,SASデータ・セットは永久SASデータ・セットとなり、DATAステップで行った加工処理は、そのままCMSファイルとして保管されることになる。したがって、形式的には、プログラム例で、1行目を削除したものが、そのままCMS版SASのプログラム例となる。すなわち、永久SASデータ・セット名1の永久SASデータ・セットの読み込みを行い、また永久SASデータ・セット名2の永久SASデータ・セットに書き出すには次のようにすればよい。
CMS版SAS |
---|
DATA 永久SASデータ・セット名2; SET 永久SASデータ・セット名1; データの加工・処理 |
例) |
---|
DATA SAVE.JPC; SET SAVE.JPC; SELECT; WHEN(TI1=1) I1=1; WHEN(TI1=2) I1=0; OTHERWISE I1=.; END; END; |
ここで、プログラム例ではftをSAVEにしているが、これは他のものにしてもいい。ただし、もしftをWORKにすると、一時SASデータ・セットとして認識されてしまうので、それ以外のものにすること。
永久SASデータ・セットの読み込みだけを行い、永久SASデータ・セットを書き直したり、書き出したりするようなことはしたくないときには、次のようにDATA文で一時SASデータ・セットを指定して、その中に、希望する永久SASデータ・セットを読み込んでくる形をとればよい。(a)との違いは、PC版SASではDATA文の中のlibnameの有無だけ、CMS版SASでは同じくDATA文のSASデータ・セット名のftの有無だけである。
PC版SAS |
---|
LIBNAME libname 'ディレクトリ名'; DATA 一時SASデータ・セット名; SET libname.永久SASデータ・セット名本体; データの加工・処理 |
例) |
---|
LIBNAME SAVE '¥MYDIR'; DATA JPC; SET SAVE.JPC; SELECT; WHEN(TI1=1) I1=1; OTHERWISE DELETE; END; |
CMS版SAS |
---|
DATA 一時SASデータ・セット名; SET 永久SASデータ・セット名; データの加工・処理 |
例) |
---|
DATA JPC; SET SAVE.JPC; SELECT; WHEN(TI1=1) I1=1; OTHERWISE DELETE; END; |
この章ではSAS第6版の使用方法を解説してきたが、最新版の第6版がリリースされてまだ間もないし、現在でもIBMのメインフレームとIBM互換国産メインフレームの一部では、SAS第5版の最新版であったリリース5.18がそのまま使用されているところもあるようなので、この節では、CMS版SASリリース5.18の基本的な使用方法について概説しておこう。もっとも、CMS版SASの第6版との相違点は、ディスプレイ・マネージャ・システムの使用方法に関するものが中心である。
SASを起動すると、プログラム作成、実行のためのシステムが起動されて、CMS版SASの第5版では、端末のディスプレイ画面に図2.12のような編集/ログ画面が表示される。これは構成的にはCMS版SASの第6版のウィンドウと基本的には同じである。
図2.12 CMS版SASリリース5.18のディスプレイ・マネージャ・システムの画面
CMS版SAS第6版と同様に、keysコマンドが使えるので、この編集/ログ画面のPFキー(ファンクション・キー)の設定は、自分で確認すること。CMS版SASの第6版との違いを次に挙げておく。その他についてはあまり違いはない。
出力画面でfileコマンドが使えないことから、出力をCMSファイルに保存したい場合には、直接、出力をCMSファイルに対して行うしかない。ここに述べる方法は、CMS版SAS第6版でもそのまま使える(もっともその必要はないだろうが……)。
CMSでは、データ入出力機器の既定値は端末になっているので、CMSファイルに出力する場合にも、CMSファイルからデータを読み込む際と同様に、"X CMSコマンド" で設定を変更し、ddnameを指定することが必要になる。具体的には、CMSファイル(プログラム例では、fileid=JPC LST [A])へ結果を出力したいと思っているPROC文の前へ、次の2行を挿入するとよい。
X FIledef ddname DISK fileid; PROC PRINTTO UNIT=ddname; |
例) |
---|
X FI 18 DISK JPC LST; PROC PRINTTO UNIT=18; |
"UNIT=" には装置番号しか使えないので、筆者はddnameとして18をよく使う(11〜15は使えない)。同じfileidのCMSファイルが既に存在している場合には、重ね書きされていくので注意がいる。また、このPROC文の後で出力機器の設定を端末に戻すには次の一文を入れる。
PROC PRINTTO; |
この文がなければ同SASセッション中は設定変更が生き続けることになる。
これらのSAS文は第5節(5)の基本型SASプログラムには、次の下線部のように挿入される。
X FI IN1 DISK JPCDATA SAS;
DATA SAVE.JPC;
INFILE IN1;
INPUT (KC SC IC)(2*1. 2.)(TI1 -TI4 TII1-TII15 TIII1-TIII15)(34*1.)
/+4 (TIV1-TIV15 TV1 -TV15 TVI1 -TVI15 )(45*1.);
X FI 18 DISK JPC LST;
PROC PRINTTO UNIT=18;
PROC FREQ;
OPTIONS NOCENTER;
PROC PRINTTO;
RUN;
2.1 基本型SASプログラムの実行 第5節(5)に示される通りにSASプログラムを作成、実行して、単純集計を行ってみよ。その際のデータは図2.8に示されている20人分をそのまま用いて行え。
2.2 通常型SASプログラムの理解 第6節(5)に例示されている通常型SASプログラムがどんな処理を行っているのか、日本語で説明せよ。ヒントは第5節、第6節の各所に分散している。
2.3 通常型SASプログラムの実行 第6節(5)に例示されている通常型SASプログラムを自分で入力し、実際に単純集計を行ってみよ。その結果を第6章の資料Fの形式を参考にしながら、資料Bの質問調査票に手書きで書き込み、単純集計の結果を報告せよ。
2.4 単純集計の利活用 演習問題2.1 (または2.3)で作成した単純集計に基づいて、次のことについて整理してまとめよ。
この章からは、調査によって得られたデータを具体的にどのように統計処理するのかを説明することにしよう。まず調査によって得られたデータについて考えてみよう。例えば「組織活性化のための従業員意識調査」(詳細については第6章で解説する)を行えば、個人単位の質問調査票が回収できる。第2章第5節の図2.7には、その調査によって得られた回答の一部20人分がデータとして表示されているが、いまその最初の8人、すなわち組織単位コード57の「Eサービス鰍フ所内保全サービス部門」について、性別、職種、職位を図に表示されているコードのままで並べれば、表3.1(A)のようなデータが得られたことになる。これでは人間にはピンとこないので、元のカテゴリーの形に戻して表示すると表3.1(B)のようになる。
表3.1 Eサービス鰍フ所内保全サービス部門の性別、職種、職位データ
(A)コード表示 (B)カテゴリー表示
個人番号 | 性別 | 職種 | 職位 |
---|---|---|---|
1 | 1 | 1 | 4 |
2 | 1 | 1 | 4 |
3 | 1 | 1 | 3 |
4 | 1 | 1 | 4 |
5 | 1 | 1 | 2 |
6 | 1 | 2 | 3 |
7 | 1 | 1 | 2 |
8 | 1 | 1 | 2 |
個人番号 | 性別 | 職種 | 職位 |
---|---|---|---|
1 | 男 | 事務 | 一般 |
2 | 男 | 事務 | 一般 |
3 | 男 | 事務 | 係長 |
4 | 男 | 事務 | 一般 |
5 | 男 | 事務 | 課長 |
6 | 男 | 技術 | 係長 |
7 | 男 | 事務 | 課長 |
8 | 男 | 事務 | 課長 |
表3.1をより一般化して、n 人のデータとして書き表せば、表3.2のようになる。ここで、x, y, z はそれぞれ変数(variable)あるいは変量(variate)と呼ばれる。(ただし、統計の分野では因子分析、主成分分析、判別分析等を総称して多変量解析(multivariate analysis)と呼ぶが、これを多"変数"解析とはいわないので注意がいる。) それに対して、xi, yi, ziは観測値、測定値と呼ばれる。観測値は、変数と区別するために添字を付けて表すことにしよう。n はデータのサイズを表している。
表3.2 一般の3変数の n 人データ
x | y | z | |
---|---|---|---|
1 | x1 | y1 | z1 |
2 | x2 | y2 | z2 |
: | : | : | : |
i | xi | yi | zi |
: | : | : | : |
n | xn | yn | zn |
例えば、性別だけのデータ、実はこの8人は全員が男性なのだが、
男, 男, 男, 男, 男, 男, 男, 男
のような一つの変数の観測値からなるデータ、x1, x2, ... は1変数データあるいは1次元データ(1-dimensional data)といわれる。それに対して、例えば、性別と職種からなるデータ、
(男, 事務), (男, 事務), (男, 事務), (男, 事務), (男, 事務), (男, 技術), (男, 事務), (男, 事務)
のように二つの変数の観測値からなるデータ、(x1, y1), (x2, y2), ... は2変数データあるいは2次元データ(2-dimensional data)といわれる。この2変数の場合も含めて、2変数以上の観測値からなるデータ、例えば3変数からなるデータ、
(男, 事務, 一般), (男, 事務, 一般), (男, 事務, 係長), (男, 事務, 一般), (男, 事務, 課長), (男, 技術, 係長), (男, 事務, 課長), (男, 事務, 課長)
一般的には、(x1, y1, z1),(x2, y2, z2),... などは、多変数データあるいは多次元データ(multidimensional data)と呼ばれる。
実は、通常得られる調査データは、このように各変数についてのみ見ることで1変数データとして扱うこともできるし、複数の変数の組を見ることで、多変数データとして扱うこともできる。1変数データとして扱うのであれば、各変数単独での特性を調べることになるし、多変数データとして扱うのであれば、変数間の関係を調べることになるが、いずれにせよ、1変数あるいは多変数のデータを整理・要約して、標本調査ならば標本の、全数調査ならば母集団の集団としての特徴を記述することが記述統計学(descriptive statistics)の役割である。しかし、記述統計学という名前がついているかどうかにかかわらず、データを整理・要約することは重要なことである。
この章では、1変数データの整理・要約について取り扱うが、データから事実を探り、知るためにはこのステップは欠かせない。統計的に分析をする際には、ややもするといきなり高度な手法に走りがちであるが、われわれが「分析」と呼んでいる過程は、このデータの整理・要約、特に1変数のデータの整理・要約をきちんとしておかないと、しばしば無意味になってしまうことがある。しかも、このデータの整理・要約の過程自体も、
第1章で述べたように、名義尺度、順序尺度にもとづくデータのことを質的(定性的)データ(qualitative data)といい、間隔尺度、比率尺度にもとづくデータのことを量的(定量的)データ(quantitative data)という。質的データ、量的データの区別とある意味では混同されがちなものに、離散変数と連続変数の区別があるので、一応説明しておこう。離散(discrete)変数とは、とりうる値が高々可算個、つまり有限個または可算無限個、例えば、とりうる値の集合が、整数、有理数の変数である。それに対して、連続(continuous)変数とは、とりうる値が可算個ではない、例えば、とりうる値の集合が実数全体であるような変数である。実は、ここでいう「連続」は通常の数学的意味で使われているのではなく、「離散」と対比して使用されていると考えた方がよい。
離散変数と連続変数の区別は数理統計学、確率論の上では意味のある区分だが、実際のデータ収集、統計処理上は、厳密に区別することにはあまり意味がない。なぜなら、まず、実際の観測値は正確には常に離散的だからである。理屈の上では連続変数であっても、その観測値は測定機器の精度の限界、分析の目的により、適当な桁数の有効数字に丸められ、離散的となるのである。しかも、逆に、たとえ理屈の上では離散変数の場合でも、とりうる値が多いときには、「試験の点数」のように、連続変数とみなして処理することも多いのである。
そこで、本書では、質的データと量的データの基本的な区別に注意しながら、説明を進めていくことにしよう。
統計データ処理とは結局、上手に図・表にまとめることである。と言ったら言い過ぎだろうか。実感としては、統計データの本来もっている説得力を上手に引き出す図・表による整理が出来るのであれば、それ以上の高度な統計手法は不要なものに思われる。少なくとも、図・表にまとめて、全体を記述した上で、はじめてそれから先の処理、分析に進むことができるということを肝に命じておくべきであろう。この章でこれから説明していくが、平均、分散といった非常によく用いられる基本的な統計量ですら、分布の形がなめらかで整っていればこそ、用いることも可能になるのである。
表による記述は、質的データに対しても量的データに対しても行われるが、量的データでは、まずデータの値をいくつかの段階に分けた「階級」(class)と呼ばれるものを設定する。この階級は質的データの「カテゴリー」に相当するものであり、そのため形式的には、質的データも量的データもその度数分布表(frequency table)、累積度数分布表(cumulative frequency table)は同じものになる。ここで、度数とは、当該カテゴリーもしくは階級に該当するオブザーべーション数を計数したものである。累積度数とは、量的データの場合には度数を下の階級から順に積み上げたときの度数である。質的データの場合には、カテゴリーの並んでいる順に積み上げたときの度数になる。
実際、質的データの表、量的データの表は、例えば「組織活性化のための従業員意識調査」のデータを用いると、それぞれ表3.3(A)(B)のようになり、形式的には同じものとなる。
表3.3 度数分布表・累積度数分布表の例
(A)質的データ(性別)の度数分布表・累積度数分布表
カテゴリー | 度数 | 相対度数 | 累積度数 | 累積相対度数 |
---|---|---|---|---|
男 | 765 | 87.2 | 765 | 87.2 |
女 | 112 | 12.8 | 877 | 100.0 |
計 | 877 | 100.0 | - | - |
(B)量的データ(年齢)の度数分布表・累積度数分布表
階級 | 度数 | 相対度数 | 累積度数 | 累積相対度数 |
---|---|---|---|---|
20〜24歳 | 60 | 6.7 | 60 | 6.7 |
25〜29歳 | 169 | 18.8 | 229 | 25.5 |
30〜34歳 | 175 | 19.5 | 404 | 45.0 |
35〜39歳 | 153 | 17.1 | 557 | 62.1 |
40〜44歳 | 159 | 17.7 | 716 | 79.8 |
45〜49歳 | 99 | 11.0 | 815 | 90.9 |
50〜54歳 | 62 | 6.9 | 877 | 97.8 |
55〜60歳 | 20 | 2.2 | 897 | 100.0 |
計 | 897 | 100.0 | - | - |
表3.3の中の各列を度数分布、相対度数分布、累積度数分布、累積相対度数分布ということもある。「相対」とついているのは、全体に対する相対的な百分率を表しているからである。相対度数は、集団の大きさnが異なる複数の集団の分布を比較するときに有効である。SASを使って集計処理した場合にも、こうした基本的な度数(frequency)、相対度数 (relative frequency)、累積度数(cumulative frequency)、累積相対度数(relative cumulative frequency)は出力されることになる。いずれにせよ、(A)(B)両者が形式的には同じものであることがわかるだろう。質的データの表、量的データの表をより一般的に対照して示せば、表3.4のようになる。
表3.4 度数分布表・累積度数分布表
(A)質的データ
カテゴリー | 度数 | 相対度数 | 累積度数 | 累積相対度数 |
---|---|---|---|---|
A1 | f1 | f1 /n×100 | F1 | F1 /n×100 |
A2 | f2 | f2 /n×100 | F2 | F2 /n×100 |
: | : | : | : | : |
Ai | fi | fi /n×100 | Fi | Fi /n×100 |
: | : | : | : | : |
Ak | fk | fk /n×100 | Fk | Fk /n×100 |
(B)量的データ
階 級 | 度数 | 相対度数 | 累積度数 | 累積相対度数 |
---|---|---|---|---|
a1〜b1 | f1 | f1 /n×100 | F1 | F1 /n×100 |
a2〜b2 | f2 | f2 /n×100 | F2 | F2 /n×100 |
: | : | : | : | : |
ai〜bi | fi | fi /n×100 | Fi | Fi /n×100 |
: | : | : | : | : |
ak〜bk | fk | fk /n×100 | Fk | Fk /n×100 |
こうした表からもわかるように、累積度数分布は度数分布から簡単に計算できるし、逆に累積度数分布から度数分布を算出することもできる。このことは、度数分布と累積度数分布とが同じだけの情報を含んでいることを意味している。したがって、どちらか一方を示せば十分なわけだが、通常は、度数および相対度数の分布だけ示せばよい。ここでは触れないが、累積度数および累積相対度数はやや特殊な用途に用いられる。
ここで、「分布」という用語の使用についてやや注意を述べておくと、母集団の分布の形を正規分布などで表現することがあるが、これは相対度数分布を確率分布に見立てて用いるのである。この場合、「母集団分布」は正確には相対度数分布のことであって、確率分布を意味するものではない。「確率」分布は、標本抽出、正確には無作為抽出という確率的装置を通して、標本分布にはじめて現れるのであって、母集団には論理的には存在しない概念である。ちなみに、統計学でいう「標本分布」とは標本における平均などの統計量の分布のことであって、これは確率分布である。標本における記述統計としての度数分布のことではないので、この点にも注意がいる。
度数分布表、相対度数分布表、累積分布表、累積相対度数分布表を求めることは、SASを使えば簡単である。単純集計のときと同様にFREQプロシジャを使えばよいのである。実際、質的データであれば、単純集計とは度数分布表を作ることと同じことになる。第2章で作成した永久SASデータ・セット(PC版SASのプログラム例ではJPC.SSD、CMS版SASのプログラム例ではJPC SAVE)を利用すれば、度数分布表作成のためのSASプログラムはわずかに数行で済む。
これには2通りの方法があって、まず最初の方法としては、SASプログラムの基本形であるDATAステップとPROCステップの2ステップ構成にこだわる方法で、このときは次のようなプログラムになる。
PC版SAS |
---|
LIBNAME libname '¥パス名'; DATA libname.永久SASデータ・セット名本体; SET libname.永久SASデータ・セット名本体; PROC FREQ; TABLES 変数名の並び; [OPTIONS NOCENTER;] RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; DATA SAVE.JPC; SET SAVE.JPC; PROC FREQ; TABLES I2; OPTIONS NOCENTER; RUN; |
CMS版SAS |
---|
DATA 永久SASデータ・セット名; SET 永久SASデータ・セット名; PROC FREQ; TABLES 変数名の並び; [OPTIONS NOCENTER;] RUN; |
例) |
---|
DATA SAVE.JPC; SET SAVE.JPC; PROC FREQ; TABLES I2; OPTIONS NOCENTER; RUN; |
CMS版SASのプログラムは、形式的にはPC版SASのプログラムの1行目を削除したものになる。このプログラムのようにDATAステップをつけると、内容的には何の変更もない全く同じ永久SASデータ・セットを実質的にまた作り直していることになるので、その分だけ時間がかかる。メインフレームでは気にならないが、パーソナル・コンピュータでは、筆者の実験ではDATAステップに約2分ほどかかる。PROCステップには20秒もかかからないので、時間の無駄といえないこともない。
そこで、もう一つの方法としては、DATAステップをなくして、PROCステップだけにして、直接永久SASデータ・セットを参照させる方法がある。この方法では、PROCステップにかかる時間だけで済むので、20秒以内に処理が可能である。またDATAステップがない分だけ、プログラムも簡単にすることができる。それには、次のようにPROC FREQ文のDATA=オプションで永久SASデータ・セット名を指定してしまうのである。もちろんこの方式では、DATAステップは不要になる。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC FREQ DATA=libname.永久SASデータ・セット名本体; TABLES 変数名の並び; [OPTIONS NOCENTER;] RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC FREQ DATA=SAVE.JPC; TABLES I2; OPTIONS NOCENTER; RUN; |
CMS版SAS |
---|
PROC FREQ DATA=永久SASデータ・セット名; TABLES 変数名の並び; [OPTIONS NOCENTER;] RUN; |
例) |
---|
PROC FREQ DATA=SAVE.JPC; TABLES I2; OPTIONS NOCENTER; RUN; |
さきほどと同様に、CMS版SASのプログラムは、形式的にはPC版SASのプログラムの1行目を削除したものになる。本書ではこれ以降、特に断らない限り、この後者の方式のPROC文のDATA=オプションで指定する方法でのみ、SASプログラムの解説をすることにしよう。
プログラム例の中の変数I2は「組織活性化のための従業員意識調査」(詳細は第6章)では、年齢を表す変数である。変数I2については、これまでの調査経験と事前知識から、既に調査時にプリコーディングしてあるので、実は、単純集計を求めることで、即年齢階層別の度数分布を求めることが出来る。ただし後述するように、通常はどのような階級を設定するのかについては、この度数分布表を作成しながら試行錯誤を重ねて納得のいくような階級を設定しなくてはならない。ここで示した分類は、そうしたこれまでの試行錯誤の一成果であると考えてほしい。
このSASプログラムを実行させると、どちらのプログラム例でも次のような集計結果が端末の画面に表示されることになる。
図3.1 SASで求めた度数分布表
実は、この図3.1の集計結果から、既に提示した表3.3(B)が作成されている。ここで、図3.1に示した画面の一番下の行には
Frequency Missing = 10
とあるが、これは年齢を表す変数I2で欠損値となっている人が10人いたことを示している。全体の1.1% (=10/(897+10))程度が欠損値だったことになるが、この程度の低水準に抑えられているのであれば、調査データとしては良好なものだといえるだろう。
表で記述する場合の度数分布表、累積度数分布表に対応して、量的データ、質的データともに、それぞれ2種類の図で記述することができる。
この場合には、度数分布表に対応してヒストグラム、累積相対分布表に対応して累積度数多角形が描かれる。
ヒストグラムと累積度数多角形の例として、表3.3(B) (あるいは図3.1)の度数を使って描いてみると、図3.2のようになる。このうち、累積度数多角形のグラフでは、説明のためにヒストグラムの柱が重ね合わせて示されているが、累積度数多角形は折れ線の部分だけなので、注意してほしい。
図3.2 ヒストグラムと累積度数多角形
ところで、この例では、年齢は60歳までになっているが、企業のように定年制のあるところは別として、一般的には年齢のような変数の最後の階級は、オープン・エンドの階級、つまり上限がわからない階級となっていることが多い。こうしたオープン・エンドの階級の処置が実はあやしくなってしまう。正確に図を描くことが出来ないのである。ヒストグラムの場合には、多少面積を小さめにして、目分量で記入するしかないし、累積度数多角形の場合には、100%よりやや下のところに目分量で線を結ぶしかないのである。したがって、ヒストグラムや累積度数多角形を正確に描くことを考えているのであれば、オープン・エンドの階級は不用意に作るべきではない。もし作るのであれば、その階級でのデータの平均値、最小値または最大値を注記する心遣いがほしい。
この場合には、度数分布表に対応して棒グラフ、累積相対分布表に対応して累積度数折れ線が考えられる。
こうしたものには量的データで、階級をカテゴリーとして扱う場合も含められる。実は、本書で扱っているような分野の統計では、ヒストグラムや累積度数多角形を描くことはほとんどない。というよりも、SASなどの統計パッケージを使って集計する場合には、量的データであっても、結局は階級をカテゴリーとして扱って、あたかも質的データであるかのように棒グラフを描かせることになってしまう。例えば、次の例は、図3.2のヒストグラム、累積度数多角形を、階級をカテゴリーとして、(垂直)棒グラフ、累積度数折れ線を描いたものである。
図3.3 棒グラフと累積度数折れ線
棒グラフを作成することは、SASを使えば簡単である。CHARTプロシジャを使えばよい。第3章で作成した永久SASデータセット(例ではJPC91 SAVE)をPROC文のDATA=オプションで指定すれば、棒グラフ作成のためのSASプログラムはわずかに3〜4行で済む。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC CHART DATA=libname.永久SASデータ・セット名本体; HBAR 変数名の並び; [OPTIONS NOCENTER;] RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC CHART DATA=SAVE.JPC; HBAR I2; OPTIONS NOCENTER; RUN; |
CMS版SAS |
---|
PROC CHART DATA=永久SASデータ・セット名; HBAR 変数名の並び; [OPTIONS NOCENTER;] RUN; |
例) |
---|
PROC CHART DATA=SAVE.JPC; HBAR I2; OPTIONS NOCENTER; RUN; |
これもさきほどと同様に、CMS版SASのプログラムは、形式的にはPC版SASのプログラムの1行目を削除したものになる。度数分布表を求めるプログラムと比較しても、キーワードのFREQとTABLESが、それぞれCHARTとHBARに置き換えられているだけである。
プログラム例の中の変数I2は既に述べたように、「組織活性化のための従業員意識調査」の例では年齢を表す変数である。これによって、年齢の度数分布を求めることが出来る。このSASプログラム例を実行させると、PC版SASでは20秒弱で図3.4のような集計結果が画面に表示されることになる。
図3.4 SASで求めた水平棒グラフ
プログラム中のキーワード"HBAR"を"VBAR"に変えると、図3.4に例示されるような水平棒グラフの代わりに、図3.5に例示されるような垂直棒グラフが表示されることになる。ただし、図3.5を見てもわかるように、垂直棒グラフでは度数、累積度数、相対度数、累積相対度数は表示されず、垂直棒グラフのみの表示となる。
図3.5 SASで求めた垂直棒グラフ
階級の設定には、こうしたら良いというような一般的なルールは存在しない。むしろ、試行錯誤を繰り返しながら決めていくべきだといった方がよいだろう。ただし、試行錯誤とはいっても、手作業でやるのは大変である。集計はさておいても、何度も図表を作り直すのは、それだけでも大変な作業量となる。したがって、実用的な意味で、何度も気の済むまで試行錯誤ができるのは、SAS等の統計パッケージのおかげということになる。その結果として、なめらかな整った形の分布のヒストグラムや棒グラフが得られれば、一応満足して試行錯誤を終了するわけである。しかし、なめらかで整った形であることが、良い階級設定の唯一の基準ではない。ある階級設定が良いものであるかどうかは、統計処理をして分析する側の意図に大きく依存しているのである。このことは、後述の例題を自分で考えてみるとよくわかる。
しかし、次のようなポイントは、一応、頭の片隅に置いて着目してみると役に立つので、例題を考える際にも参考にしてほしい。
ここで、ポイント2のスタージェスの経験公式の中の log は常用対数 log10 のことである。この公式によれば、まずデータが1個の場合でも階級は一つは必要である。さらに、データのサイズnが2倍になるごとに階級の個数kを一つ増やした方がよいというのである。実際にいくつかのデータ・サイズについて、この公式を用いて階級の個数を計算してみると、表3.5のようになるので、参考にするとよい。
表3.5 データのサイズと階級の個数
データのサイズ(n) | 10 | 20 | 50 | 100 | 200 | 500 | 1,000 | 2,000 | 5,000 | 10,000 |
---|---|---|---|---|---|---|---|---|---|---|
階級の個数(k) | 4.32 | 5.32 | 6.64 | 7.64 | 8.64 | 9.96 | 10.96 | 11.96 | 13.28 | 14.28 |
例題) 下のデータは、某日、東京都のある小売店のうち、100軒をくじ引き的に抽出して、そこにおける某品の在庫量(単位は個数)を調べたものである(林, 1973, p.11)。度数分布を図表化してみよ。もちろんSAS等を使わずに手計算でやってかまわない。その度数分布からどんなことがいえるか。
21 | 142 | 0 | 282 | 187 | 100 | 0 | 0 | 225 | 42 |
72 | 159 | 33 | 21 | 61 | 593 | 0 | 47 | 97 | 0 |
0 | 4 | 192 | 0 | 17 | 75 | 133 | 125 | 13 | 163 |
122 | 30 | 0 | 263 | 27 | 186 | 23 | 41 | 18 | 44 |
0 | 8 | 12 | 4 | 47 | 20 | 0 | 16 | 91 | 20 |
0 | 18 | 6 | 0 | 25 | 29 | 178 | 8 | 110 | 0 |
62 | 0 | 98 | 0 | 55 | 0 | 0 | 43 | 75 | 61 |
14 | 0 | 63 | 0 | 25 | 0 | 27 | 12 | 561 | 62 |
14 | 20 | 34 | 64 | 43 | 90 | 169 | 4 | 81 | 44 |
85 | 4 | 10 | 19 | 0 | 35 | 39 | 28 | 0 | 0 |
こうした問題にはただ一つの正解というものはない。ポイント2については、n=100 であるから、スタージェスの公式から階級の数は7〜8といったところである。問題はポイント1で、これについて二つの解答例を考えてみよう。
階級の区間を等間隔にとった場合、次のような度数分布表、棒グラフが描ける。データを一見して、0が多いことがわかるので、「0」だけで一つの階級にしている。なお棒グラフは度数分布と対照させるために、水平棒グラフにしてある。
図3.6 解答例1
この棒グラフから、比較的きれいに分布している様子がわかる。しかし、実は、こうしたデータに対して、この解答例のように、等間隔原則を形式的に適用すると、観測値が片方の端のごく狭い部分に具体的には0〜199に集中して、集中部分の情報が失われてしまうことになる。このことは、次の解答例2と比較するとよくわかる。
階級の区間を対数の意味で等間隔にとった場合。これは対数をとれば、
log a・b=log a+log b
log a・bn=log a+n log b
という性質があることから、つまりb倍ごとに対数の意味で等間隔になっていると考えるのである。スタージェスの公式から階級の数は7〜8ということを配慮して、いま2倍ごとに区切って階級を作ってみると次のようになる。
図3.7 解答例1
念のため、各階級の区切りの値の対数をとると次のようになっている。
log 10
log 20=log 10+log 2
log 40=log 10+2 log 2
log 80=log 10+3 log 2
log 160=log 10+4 log 2
log 320=log 10+5 log 2
log 640=log 10+6 log 2
こうすると、「0」という階級を除いて、きれいな分布をしていることがわかる。このような考え方は、従業員規模に大きな違いのある企業の集団について、従業員規模別企業数の度数分布を調べるような場合にも同じようにあてはまる。例えば従業員規模10人の企業にとって従業員が10人増減するということは大変なことである。しかし、従業員規模10,000人の企業で従業員が10人増減することはあまり問題にはならない。なぜなら、前者ではたった10人でも従業員規模は倍増もしくは消滅を意味しているのに、後者では10人では0.1%にしかならず、この程度の従業員数の変動は日常的に起きている可能性がある。このように、絶対数での差よりも、むしろ相対的な比率に意味があると考えられる場合には、等しい比率が等しい間隔になるようにした方がよい。つまり、対数の意味での等間隔である。(→演習問題3.1)
ところで、この解答例2では、階級「0」に集中した分布の山と、階級「40〜79」をピークとしたきれいな分布の山の二つの山のあることがわかる。このように、分布の峰が複数ある場合には、全く特性の異なる複数の母集団からの標本が混じっている可能性がある。こうした場合には、層別(stratification)によって、適切にグループ化すると、それぞれのグループで、峰が一つの単純な分布(単峰型;unimodal)が現れることが多い。
例題の場合もこの作業が必要かもしれない。少なくとも、「0」という値は異常値で、何か特別な理由があるはずである。おそらく、「某品の在庫量」調査とはいうものの、実際には、たまたま調査時に在庫が底をついていて、在庫量が0だったという小売店はごく少数で、むしろその多くはずっと恒常的に0、つまり、そもそも当該商品をまったく取り扱わない小売店がけっこうあるのであろう。他方、当該商品を扱っている小売店では、その規模等で在庫量にばらつきが生まれるために、きれいな分布が現れたものと思われる。当該商品を最初からまったく相手にしていない小売店がけっこうあるということ自体が、その商品の販売担当者にとっては重要かつ有用な情報となるであろう。もっとも、こうした有用な情報も、解答例2のように整理したからわかったもので、解答例1のように整理していては、気付かれることもなかっただろうが……。
前節の例題のように、全く特性の異なる複数の母集団からの標本が混じっているような場合には、いわゆる「平均」のような代表値に、代表値としての意味はほとんどないということはもうおわかりだろう。これから、この節で扱う平均、分散は単峰型の分布を要約する際に用いられるべきものである。
通常、平均といえば算術平均(arithmetic mean)のことになるが、算術平均を計算することは、統計学を知らない人でも行うごく普通の操作であるといえる。
サイズnのデータx1, x2, ..., xnの平均xは
x=(x1+x2+・・・+xn)/n=(1/n)Σi=1n xi
平均は変数xの記号の上に横棒を付してx (「xバー」または「バーx」と読む)と表記するのが慣例となっている。
任意の定数a, b, cに対して、ax+by+c の算術平均を考えると、
ax+by+c=(1/n)Σi=1n(axi+byi+c)=(a/n)Σxi+(b/n)Σyi+(1/n)nc=ax+by+c
つまり、算術平均は次のような性質がある。
ax+by+c=ax+by+c
したがって、平均値を使った演算は「常識的」に行うことが出来る。
当然といえば当然のことであるが、平均は実際には観測されていない値になることが多い。特に離散型データの場合には、そもそもありえない値になることが多い。
また xi-x, i=1, ..., n を平均からの偏差と呼ぶが、その和は次に示すように0になる。
Σi=1n(xi-x)=Σxi-Σx=nx-nx=0
の性質の意味するところは、仮に各観測値に重さ1の分銅を割り当て、数直線にぶら下げたときに、平均の回りのモーメントは0になるということである。つまり、平均の所に支点があれば、この天秤はつり合うことになる。このことは、平均は全データの「重心」に当るということを意味している。したがって、全データの「中心」に当たると考えると誤解を生ずることがある。
例えば、10社から中間管理職1人ずつの計10人からなるグループで、「自分の直接の部下の数」について調べて、天秤で図示してみると、図3.8のような結果になったとしよう。日本の企業では、ポスト不足から、直接の部下数の少ない中間管理職が以外と多く、中には部下のいない「スタッフ管理職」もいるのである。もちろん図3.8は仮想例であるが、こうした実態は、この章の冒頭にあげた「Eサービス鰍フ所内保全サービス部門」のデータを見ても明らかである。なにしろ、8人の職場で、課長3人、係長2人、一般3人なのであるから、どう考えても直接の部下数は1人いるかいないかである。実は、平均は少数のはずれ値あるいは異常値に大きく影響を受けるので、そうした場合には、平均が集団を代表していると考えるには問題がある。この例では、1人を除いて全員が平均を下回っており、直接の部下の数の分布を平均3.1で代表させると、嘘をつかれたような気になる。
図3.8 重心としての平均
実は、一般に分布がゆがんでいる場合、算術平均のもつ意味については注意が必要になる。いま、比較のためにメディアンを考えよう。メディアン(median)は中央値、あるいは中位数とも言われ、データ x1, x2, ..., xn を小さい値から順に並べたものを x(1), x(2), ..., x(n) とすると、メディアンはその中央の値ということになる。偶数個のデータの場合もあるので、メディアンの定義は次のようになる。
図3.8ではメディアンは2人になり、これならまだ平均3.1人でこの分布を代表させるよりはましのようである。一般に、
データx1, x2, ..., xnに対して、ウェイトw=(w1, w2, ..., wn) による加重平均は
xw=(w1 /Σjwj) x1+(w2 /Σjwj) x2+・・・・・・+(wn /Σjwj) xn=Σi=1n(wi /Σjwj) xi
と定義される。ただし、wi≧0, i=1, 2, ..., n である。w1=w2=・・・=wn のときの加重平均は算術平均と同じことになる。
この定義だけでは一体何の目的のために加重平均を求めるのかよくわからないだろう。しかし実は、加重平均は暗黙のうちに多用されているのである。例えば、企業の自己資本比率は、自己資本比率=自己資本/総資産 で定義され、各企業の自己資本と総資産がわかれば、それぞれの企業の自己資本比率を計算することは簡単である。それでは、表3.6のような n 社のデータが与えられたときには、全体の自己資本比率はどのように計算するだろうか。各社の自己資本比率を計算して、その平均をとるだろうか。SASを使えば、そんな処理はいともたやすい。しかし、表3.6のような表が与えられていると、自己資本の合計額を総資産の合計額で割ってみたくなる誘惑にかられる。これは無意味なことだろうか。実はこれが加重平均になっているのである。
表3.6 総資産・自己資本・自己資本比率
企業 | 総資産 | 自己資本 | 自己資本比率 |
---|---|---|---|
1 | x1 | y1 | z1 |
2 | x2 | y2 | z2 |
: | : | : | : |
n | xn | yn | zn |
全体 | xw | yw | ? |
自己資本比率=yw /xw=(y1+y2+・・・+yn) /(x1+x2+・・・+xn)
={x1 /(x1+x2+・・・+xn)}(y1 /x1)
+{x2 /(x1+x2+・・・+xn)}(y2 /x2)
+・・・・・・+{xn /(x1+x2+・・・+xn)}(yn /xn)
={x1 /(x1+x2+・・・+xn)}z1
+{x2 /(x1+x2+・・・+xn)}z2
+・・・・・・+{xn /(x1+x2+・・・+xn)}zn
つまり、総資産額による加重平均となっているのである。多くの場合、各社の自己資本比率を計算して、その平均を求めたものよりも、この加重平均の方が実質的には、はるかに意味があるだろう。したがって、コンピュータとSASを使って、何でもかんでも力まかせに平均を求めればよいというものではない。
度数分布表から平均を近似的に求める場合には、この加重平均が使われる。一般に、m 組のデータを込みにした全データの平均は各組の平均をサイズによって加重平均したものとなる。
表3.7 グループのサイズと平均
グループ | サイズ | 平均 |
---|---|---|
1 | n1 | x1 |
2 | n2 | x2 |
: | : | : |
m | nm | xm |
全体 | n | x |
つまり、いまグループ k の i 番目のデータを xki で表すと、
x =(1/n)(Σi=1n1 x1i
+Σi=1n2 x2i+・・・・・・
+Σi=1nm xmi)
=(n1/n){(1/n1)Σi=1n1 x1i}
+(n2/n){(1/n2)Σi=1n2 x2i}+・・・・・・
+(nm/n){(1/nm)Σi=1nm xmi}
=(n1/n) x1
+(n2/n) x2+・・・・・・
+(nm/n) xm
ここで、グループ1, 2, ..., mは、カテゴリーでもいいし、階級でもいいのである。したがって、この考え方は、量的データの度数分布表からの全データの平均の算出に適用することが出来る。計算機を使用して平均を計算できる場合には必要のないことであるが、質問票の段階で階級にプリコーディングしてある場合には次のような手続きが必要になる。つまり、
各階級の区間での一様分布を仮定することができれば、各階級での平均、階級値で近似できる。実際には、各階級の区間での一様分布をほぼ仮定できるので、平均を計算するということは、階級値(class value)を計算するということになる。階級の境界 ai, bi がわかっていれば、階級値 mi は次の定義のようにいたって簡単に計算できる。
mi=(ai+bi)/2, i=1, 2, ..., k
ただし、問題は階級の境界である。階級の境界 ai, bi については変数とその観測値の性質を考慮することが必要になる。
図3.9 階級「50点以上〜60点未満」の点数の一様分布と平均
細かいことのようでも、階級値が0.5ポイントずれるということは無視できない大きさである。つまり、不注意に平均を計算すれば、プリコーディングをしたことで、平均年齢や平均体重、平均点がそれぞれ0.5歳、0.5kgあるいは0.5点もずれて結論を出してしまうのである。
サイズ n のすべて正のデータ x1, x2, ..., xn の幾何平均(geometric mean) G は
G=(x1・x2・・・・・xn)1/n
で定義される。この幾何平均は時系列的に得られた変化の比率を平均する場合などに用いられる。
例えば、ある企業の3年間の売上高の対前年伸び率が、20%、25%、20%だったとき、この3年間の年平均の売上高伸び率は次のように幾何平均で求められる。
G=(1.20・1.25・1.20)1/3=1.801/3≒1.216
ただし、これは3年間で売上高が 1.20・1.25・1.20=1.80 と80%伸びているので、次のように考えることと結局同じである。つまり、ある企業の売上高が3年間で1.8倍になった。毎年同じ伸び率Gで売上高が伸びているとすると、3年間で売上高が1.8倍になるようなGを求めると
G・G・G=G3=1.8
∴ G=1.81/3≒1.216
このようなGを年平均の売上高伸び率と考えるのである。
しかし、この例からもわかるように、幾何平均では結果的に途中の数字の動向はすべて計算に入らないことになる。このことを知らずにデータを集めると、せっかく集めたデータが生かされないケースも起こりうる。例えば、調査で、ある企業の売上高が、当初100億円で、続く3年間で120億円、150億円、180億円と伸びたことがわかったとしよう。このとき、3年間の対前年売上高伸び率 120/100(=1.20), 150/120(=1.25), 180/150(=1.20) の幾何平均は
G=(120/100)・(150/120)・(180/150)1/3=1.81/3≒1.216
となる。しかし、この式をよく見ると、幾何平均の計算の途中で、分子分母が互いに消去されるので、結局のところ、幾何平均 G は最初と最後の売上高100億円と180億円しか反映していないことがわかる。つまり、未知数 a, b, c を含んだ次の式でも十分なのである。
G=(a/100)・(b/a)・(180/b)1/3=1.81/3≒1.216
このことは、逆に非常に長期にわたる、例えば50年間の平均の売上高伸び率であっても、実は、幾何平均を使う限りは、最初の年と最後の年の売上高データさえあれば、途中のデータがごっそり抜けていても計算できるということになる。
ところで、両辺の対数をとると、幾何平均の対数は、観測値を対数に変換したときの算術平均に等しいので、統計パッケージを使うときに便利である。
log G=(log x1+log x2+……+log xn)/n=(Σi=1n log xi)/n
度数分布が左右対称で、したがって平均とメディアンが等しいときでも、次の4つの分布の形は明らかに異なり、そのことは図3.10のように棒グラフを作るとはっきりする。
A: 1, 1, 1, 2, 2, 2, 3, 3, 3
B: 1, 1, 2, 2, 2, 2, 2, 3, 3
C: 1, 2, 2, 2, 2, 2, 2, 2, 3
D: 2, 2, 2, 2, 2, 2, 2, 2, 2
図3.10 平均が等しくて、分散の異なる分布
4つの分布はいずれも左右対称で、その平均は2である。しかし、分布の形は明らかに異なっている。これは実は分布の散らばっている程度(逆に言えば、分布のかたまっている程度)が異なっているからである。その程度を表す代表的なものが分散である。
データx1, x2, ..., xnの分散(variance)は次のように定義される。
sx2={Σi=1n (xi−x)2}/n
={(x1−x)2+(x2−x)2+・・・+(xn−x)2}/n
ここで、分散の分子は平方和(sum of squares)または変動と呼ばれ、
Sx=nsx2={Σi=1n (xi−x)2}
=Σxi2−2xΣxi+nx2
=Σxi2−2nx2+nx2
=Σxi2−nx2
分散はこのように偏差平方和を用いているので、その単位は観測値の単位、つまり変数の測定単位の2乗である。そこで、観測値と同一の単位にするために分散の正の平方根をとった標準偏差も広く利用される。きちんと定義しておけば、標準偏差(standard deviation)は
sx=(sx2)1/2
のように定義される。
任意の定数a, bに対して、ax+b の分散は
sax+b2
={Σ(axi+b−(ax+b))2}/n
={Σ(axi+b−(ax+b))2}/n
={Σ(a2(xi−x)2}/n
=a2sx2
となる。つまり、次のような性質がある。
sax+b2
=a2sx2
分布の散らばっている程度を表すものとして分散や標準偏差を考えたが、実は分散や標準偏差では分布の散らばり具合を形式的に比較できないような場合もある。そのようなときには、変動係数(coefficient of variation)
C.V.=(sx/x)×100
が用いられる。変動係数はこの定義のように%で表すことが多い。具体的には、変動係数は観測値がすべて正のとき、次のようなケースで相対的な散らばり具合を比較するのに用いられる。
変動係数は、たとえば測定単位の異なるデータ(ただし、mとcmのように原点の一致している測定単位)を比較する場合に用いられる。このとき、平均と標準偏差は同じ単位なので、変動係数は無名数となり、比較が可能になる。つまり、yi=axi, i=1, 2, ..., n, a>0 とおいても
sy /y×100={(asx)/(ax)}×100=(sx /x)×100
となるので、測定単位が異なっていても変動係数は変わらないという性質を使っているのである。
例えば、地域間県民所得格差のデータによると、1965年の平均所得が26.6万円、標準偏差が7.5万円、1975年の平均所得が117.5万円、標準偏差が23.8万円であった。標準偏差だけを見ると、1965年の方が圧倒的に小さい。しかし、1975年は1965年に比べて、平均所得は約4.5倍、標準偏差は約3倍となっており、相対的な地域間所得格差は1975年の方が小さくなっているといってよさそうだ。このように、測定単位が同じであっても中心の位置が著しく異なるデータの場合には、変動係数が用いられる。1965年の変動係数は28.2、1975年の変動係数は20.3となり、確かに、1975年の方が変動係数は小さくなる。
質的データがカテゴリーAとカテゴリー非Aしかもたないとき、2値質的データと呼ばれる。既に第1章第3節で述べた尺度による観測値の演算可能性を繰り返せば、
また、平均が考えられたように、2値質的データの分散も考えることが出来る。平均がカテゴリーAの比率 p になっているので、分散は次のようになる。
sx2={Σ(xi−x)2}/n
=[{(1−p)2+・・・・+(1−p)2}+{(0−p)2+・・・・+(0−p)2}]/n
f1個 f0個
=[f1(1−p)2+f0(0−p)2]/n
=p(1−p)2+(1−p)p2=p(1−p)
したがって、分散は p=1/2で最大値1/4をとることになる。ところで、このことから、標準偏差は各カテゴリーの比率の幾何平均になっているのである。
このように2値質的データの場合には、質的データであっても数量化することが可能となり、そのことにより、より高度の演算を必要とする統計手法を使用することが可能となる。しかし、次のような方法は、似て非なるものなので注意がいる。いま、個人の判断する好き嫌いや良し悪しなどの評価を、たとえば
といった5段階くらいで答えさせ、回答を1〜5点のスコアに置き換えることを考えよう。このようにして得られた複数の質問のスコアを合算して用いる尺度をリッカート・スケール(Likert scale)という。
こうした5点尺度あるいは7点尺度などで質問の回答を求めることは、リッカート・スケールという意識がなくても、調査ではよく用いられる方法である。しかし、この方法で得られた観測値間の演算を行うことは、実は理屈の上では問題が多い。なぜならば、それらは、たとえば通信簿の点のように、同一人物が統一的に評価したものではなく、複数の人がまったく独立に主観的に評価したものなので、順序尺度として扱うことにすら疑問があるからである。にもかかわらず、5点尺度、7点尺度の観測値は、とりうる値が5つ、7つと多いために、カテゴリーとして扱うには不便であるということもあって、平均値をとったり、より複雑な演算にもとづくデータ処理が行われたりすることが多い。しかし、この種の観測値を間隔尺度以上の尺度にもとづく観測値として扱うことには、前述の演算可能性の規則からいうと根拠がない。
したがって、5点尺度や7点尺度のデータを扱う場合には、無造作な演算は許されない。細心の注意が必要である。もし、その平均値をとる場合には、少なくとも分布の峰が一つで、単峰型(unimodal)をしていることを確認すべきである。峰が二つ以上ある場合には、既に述べたように、平均値で代表させる意味はほとんどない。また、複数の質問のスコアを合算して用いる場合には、項目分析を行うなどして、各質問項目の合算の適否を検討すべきである。
しかし、5点尺度や7点尺度を使って調査することの一番大きな問題点は、5段階評価や7段階評価を集計分析段階で、たとえば「良い」「悪い」の二つのカテゴリーに2分割することが、あまりに無造作にあるいは作為的によく行われるということである。この場合には、中立的回答をどちらのカテゴリーに分類するのかで、「良い」「悪い」のどちらを多数意見とするかを調査者側が恣意的に決めてしまう危険性がある。通常は、中立的回答、すなわち尺度のほぼ中央に分布の峰があるので、ほとんどのケースで調査者側に恣意的な判断を求めていることになる。最終的に「良い」「悪い」の二つのカテゴリーにまとめるつもりならば、調査段階で質問の回答の選択肢を「良い」「悪い」にしておくべきであろう。
SASを使えば、変数の平均、分散を計算することは簡単である。MEANSプロシジャを使えば、わずか数行で済む。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC MEANS [オプション] DATA=libname.永久SASデータ・セット名本体; [VAR 変数名の並び;] [OPTIONS NOCENTER;] RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC MEANS DATA=SAVE.JPC; VAR TII1--TVI15; OPTIONS NOCENTER; RUN; |
CMS版SAS |
---|
PROC MEANS [オプション] DATA=永久SASデータ・セット名; [VAR 変数名の並び;] [OPTIONS NOCENTER;] RUN; |
例) |
---|
PROC MEANS DATA=SAVE.JPC; VAR TII1--TVI15; OPTIONS NOCENTER; RUN; |
CMS版SASのプログラムは形式的にはPC版SASのプログラムの1行目を削除したものになる。VAR文を省略すると、すべての数値変数について求められる。PROC MEANS文のオプションを省略すると、欠損値でないオブザーべーション数(N)、最大値(Minimum)、最小値(Maximum)、平均(Mean)、標準偏差(Std Dev)について求められる。主なオプションとしては次のようなものがある。
CV | ・・・・・・ | 変動係数を求める |
MAX | ・・・・・・ | 最大値を求める |
MIN | ・・・・・・ | 最小値を求める |
MEAN | ・・・・・・ | 平均値を求める |
N | ・・・・・・ | 欠損値でないオブザーべーション数を求める |
STD | ・・・・・・ | 標準偏差を求める |
SUM | ・・・・・・ | 合計を求める |
VAR | ・・・・・・ | 分散を求める |
図3.11 SASで求めた平均、分散
ここで、変数TII1〜TVI15は、もともとは「組織活性化のための従業員意識調査」のYes-No形式の全質問75問に対応する変数であるが、第2章第6節(5)の通常型SASプログラムの中で、Yes-No形式の質問の回答で、「1. Yes」ならば1、「2. No」ならば0という値をとるように再定義しておいたものである。したがって、この章の前節で扱った2値質的データの平均と分散を求めたことになる。つまり、各変数の平均はYes比率を示している。ところで、分散はYes比率とNo比率(=1−Yes比率)の積になっているはずであるが、実際に計算してみると、小数点以下3桁までしか一致していないことがわかる。このことからすると、SASの分散の有効桁数は3桁程度のようである。それ以上の桁数を長々と出力通りに書き移しても無意味である。
正規分布(normal distribution)は、ガウス(C.F.Gauss, 1777-1855)が天文観測データの測定誤差の研究から誤差理論を確立した際の誤差関数(error function)が原型となったものである。そのため、正規分布のことをガウス分布(Gaussian distribution)ということもある。
平均μ、分散σ2の正規分布は N(μ,σ2) で表す。図3.12では様々な正規分布の形を描いているが、正規分布 N(μ,σ2) は平均μを中心にして左右対称の均整のとれたベル型をしている。平均μで最大値 1/{(2π)1/2σ} をとり、μ±σが変曲点となっている。平均μの値が変わると、分布全体が左右に平行移動し、分散σ2の値が大きくなると、分布が全体的に平べったく広がるという性質がある。
図3.12 正規分布
にもかかわらず、確率変数 X が正規分布 N(μ,σ2) にしたがえば、例えば次のようなことがわかっている。
Pr(μ− σ≦X≦μ+ σ)=0.683
Pr(μ−2σ≦X≦μ+2σ)=0.955
Pr(μ−3σ≦X≦μ+3σ)=0.997
これを図示すると、図3.13のようになる。
図3.13 正規分布と標準偏差
このことは非常に重要なことである。母集団の相対度数分布を正規分布で近似できるような場合、その母集団を「正規母集団」と呼ぶが、このように、ある集団の特性値の分布が正規分布で近似できるような場合には、分布の平均xと分散 sx2 がわかれば、例えば、区間 [x−sx, x+sx] には68.3%、区間 [x−2sx, x+2sx] には95.5%、区間 [x−3sx, x+3sx] には実に全体の99.7%が属していることがわかるのである。したがって、正規分布は左右対称だから、当然、区間 (-∞, x−sx] と区間 [x+sx, ∞) にはともに (100-68.3)/2=15.85% が属しているというようなこともわかってしまう。これは、別に標準偏差 sx の整数倍に限ったことではなく、ある値 x が平均 x から標準偏差 sx の何倍離れているのかさえわかればよいのである。例えば、区間[x−1.96sx, x+1.96sx]には全体の95%が属している(第1章第7節の場合)。そこでいま変数 x を次のように変数 z に変換することを考えてみよう。これを標準化(standardization)という。
z=(x−x)/sx
この z は標準得点(standard score)または z 得点(z-score)と呼ばれる。この標準得点については、定義より、
z=(x−x)/sx=0
sz2=sx2/sx2=1
つまり、標準得点 z の平均は0、標準偏差は1という性質がある。言い換えれば、平均0、標準偏差1 (したがって、分散も1)の変数に変換することが「標準化」なのである。したがって、標準得点は平均0、分散1の正規分布 N(0,1) にしたがうことになる。この N(0,1) は標準正規分布と呼ばれる。
ある集団の特性値が正規分布をしていると考えられる場合には、各値の分布全体の中での位置を知るためには、この標準得点が強力な方法となる。つまり、標準得点が z だということは、標準化する前のもとの値が、平均から標準偏差の z 倍離れているということを示している。したがって、標準得点はそれだけで全体の中での位置(例えば、上位○○%、あるいは上から○番目くらい)の情報をもたらしてくれるのである。例えば、いまある人が自分の標準得点 z=2 であることがわかれば、標準得点 z=2 以上の者は全体の (100−95.5)/2=2.25% になるので、自分が上位2.25%にいることがわかる。仮に総受験者数が10,000人であったなら、自分は上から225番前後であることまでわかってしまう。考えてみると、通常は順位を知るためには、全個体を得点順に並べ直してみなくてはいけないはずなのに、それをしなくても、平均と標準偏差(あるいは分散)さえわかれば、標準得点を計算してやることで、全体の中でのおおよその位置を知ることが出来るのである。その意味で、標準得点は強力である。
試験結果の通知などによく用いられる「偏差値」(deviation score)は、標準化された変数 z から次のように計算される。
偏差値=50+10z
つまり、偏差値は平均50、標準偏差10となるように点数を変換したものである。したがって、標準得点と同様に、全体の中での位置の情報をもたらしてくれることになる。
実際、試験結果に限らず、母集団分布に正規分布を仮定することが一般的に行われている。例えば、身長や測定誤差の分布など、正規分布で表せる分布が多い。その他にも、例えば、所得は対数をとると正規分布で表せることが知られているが、このように適当な変数変換を施すと、正規分布で表せるものも多いということが知られている。
いま、企業に対する標本調査を行い、標本について、男女別に平均年齢を求めてみると、男子従業員の平均年齢は38.2歳、女子従業員の平均年齢は28.8歳であったとしよう。実に10歳近くも差があるわけだが、この平均年齢をもって、今回の調査企業では、男女の平均年齢には差があると結論してもよいものだろうか。ひょっとすると、母集団では男女の平均年齢には差がないのに、標本誤差のために、今回の標本では平均年齢に差が出てしまったのかもしれない。もっとも、常識的に考えて、母集団では差のなかったものが、標本誤差だけで、10歳も差が出るとは考えにくい。その「10歳も差が出るとは考えにくい」という程度を、確率を使って表現して吟味しようというのが、平均値の差の検定である。2群の平均値の差の検定は、通称「t 検定」(t-test)としてよく知られているものである。
母集団のもっている分布を母集団分布と呼ぶが、母集団からランダムに大きさ m の標本 (X1, X2, ..., Xm) を選ぶと、各 Xi はこの母集団分布に従う確率変数であると考えられる。母集団分布が平均 μ1、分散 σ12 の正規分布 N(μ1, σ12) で近似される正規母集団の場合、標本平均
X=(X1+X2+・・・+Xm)/m
は正規分布 N(μ1, σ12/m) にしたがうことが知られている。
いま、もう一つの母集団からの標本 (Y1, Y2, ..., Yn) についても、標本平均を
Y=(Y1+Y2+・・・+Yn)/n
とすると、母集団分布が N(μ2, σ22) のとき、同様に、Y は正規分布 N(μ2, σ22/n) にしたがうことになる。いま仮に、母分散 σ12、σ22 が既知であれば、各群の標本平均だけではなく、2群の標本平均の差 X−Y も正規分布 N(μ1−μ2, σ12/m+σ22/n) にしたがうことがわかっている。
いま仮説として「2群の母平均が等しい」つまり、
H0: μ1=μ2
を立てる。この仮説の下では、μ1−μ2=0 なので、X−Y の標本分布が N(0, σ12/m+σ22/n) にしたがうことがすぐにわかる。つまり、標準化すると
Z=(X−Y)/(σ12/m+σ22/n)1/2 (3.1)
が正規分布 N(0,1) にしたがうことになる。
しかし、一般には、母分散は未知でわからない。そこで、母分散の代わりに、不偏標本分散を使うことを考えよう。ここで、不偏分散(unbiased variance)と呼ばれるのは、その期待値が母分散に一致するからである。母分散の代わりに標本分散を使うことで、分布は正確には正規分布ではなくなってしまう。正規分布と似た形をした t 分布あるいはステューデント(Student)の t 分布と呼ばれる分布になるのである。このことは、ゴセット(William Gosset, 1876-1937)によって見いだされたもので、ステューデントとは彼が論文を書く際に使ったペンネームである。t 分布は、標準正規分布 N(0,1) と同様に平均0について左右対称で、標本の大きさが大きい場合には、標準正規分布 N(0,1) とほとんど変わらない。特に k=∞ のときは、標準正規分布 N(0,1) と一致する。
こうしたことがわかっているので、標本分散を使うには次の二つのケースが考えられる。
このとき、2群を合併して計算した合併した分散(pooled variance)
s2={Σ(Xi−X)2+Σ(Yj−Y)2}/(m+n−2) (3.2)
を考えると、(3.1)式での σ12、σ22 の代わりに s2 を代入した確率変数
T=(X−Y)/(s2/m+s2/n)1/2 (3.3)
が自由度 m+n−2 の t 分布 t(m+n−2) にしたがうことがわかっている。したがって、標本平均と分散を(3.3)式に代入して求めた値を t とすると、確率変数 T の絶対値がこの実際の観測された値 t の絶対値以上となる確率
Pr(|T|>|t|)=α
を計算して求めることができる(実際にはコンピュータが計算してくれる)。つまり、「標本平均の差の絶対値がこれだけ大きくなる確率は100α%しかない」ということが計算できるのである。第1章第6節でも述べたように、統計学では、通常この有意確率が5%未満のとき、「もし仮説が正しければ、標本平均の差がこれだけ大きな値をとることはめったに起きない」と判断する。したがって、標本から求めた t の値という事実から、母集団についての仮説 H0: μ1=μ2 は棄却されることになる。つまり、仮説は正しくなく、母平均は等しくないと判断するのである。
逆に、もしこの有意確率が5%以上のときは、母集団についての仮説 H0: μ1=μ2 が正しくても、この程度の t の値は標本誤差として標本抽出上ありうることと考え、仮説は採択される。つまり、母平均は等しいと判断するのである。
この場合は、X−Y の正確な標本分布を求めることはできない。近似的に求める方法として、ウェルチの近似法(Welch's test)が知られている。各群での標本分散を
s12={Σ(Xi−X)2}/(m−1)
s22={Σ(Yj−Y)2}/(n−1)
とすると、確率変数
T=(X−Y)/(s12/m+s22/n)1/2
が近似的に、自由度が
ν=(s12/m+s22/n)2
/{(s12/m)2/(m−1)+(s22/n)2/(n−1)}
にもっとも近い整数ν*の t 分布 t(ν*) にしたがうことが知られている。
それでは、2群の母分散が等しいかどうかは、何を基準に判断すればよいのだろうか。それには、仮説として「2群の母分散が等しい」つまり、
H0: σ12=σ22
を立てる。いまこの仮説: σ12=σ22 が正しければ、母分散比(variance ratio)
σ12/σ22=1 となっているはずである。しかし、実際に観測された標本分散比 f は1にはならない。問題は、観測された標本分散比の値が1からずれた分を標本誤差と考えてしまってよいか、それとも、標本誤差では考えにくい(つまり、確率的には起こりそうもないか)ということである。実は、標本分散比
F=s12/s22
が自由度 (m−1, n−1) の F 分布 F(m−1, n−1) にしたがうことが知られているので、この標本分散比を使って、その確率を計算して求めてやることができる。実際には、
F'=max {s12, s22}
/min {s12, s22}
と1未満の値をとらないように定義された、折り重ね形式の F 統計量(folded F statistics)と呼ばれるものを使って、
Pr(F' > f' )>α
を計算することになる。この確率が計算できると、標本分散比が1からずれた値 f' をとる確率が100α%であることがわかる。統計学では、通常この有意確率が5%未満のとき、もし仮説が正しければ、標本分散比が1からこれだけずれた値をとることはめったに起きないことだと判断する。したがって、標本から求めた標本分散比 f' の値という事実から、母集団についての仮説 H0: σ12=σ22 は棄却されることになる。つまり、母分散は等しくないと判断するのである。
逆に、もしこの有意確率が5%以上のときは、母集団についての仮説 H0: σ12=σ22 が正しくても、この程度の標本分散比 f' の値は標本誤差として標本抽出上ありうることと考え、仮説は採択される。つまり、母分散は等しいと判断するのである。
2群の平均値を t 検定(t-test)で比較するSASプログラムは、文字どおりTTESTというプロシジャとして用意されている。その使用法はいたって簡単である。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC TTEST DATA=libname.永久SASデータ・セット名本体; CLASS 分類変数; VAR 平均値を求める変数リスト; RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC TTEST DATA=SAVE.JPC; CLASS I1; VAR AGE; RUN; |
CMS版SAS |
---|
PROC TTEST DATA=永久SASデータ・セット名; CLASS 分類変数; VAR 平均値を求める変数リスト; RUN; |
例) |
---|
PROC TTEST DATA=SAVE.JPC; CLASS I1; VAR AGE; RUN; |
CMS版SASのプログラムは、形式的にはPC版SASのプログラムの1行目を削除したものになる。もともと「組織活性化のための従業員意識調査」の年齢階層を表す変数I2はプリコーディングしてあるので、年齢の階級が既に設定されている。プログラム例の中の変数AGEは、その階級の代わりに、階級値を与えて作ったものである(→演習問題3.3)。分類変数は数値変数でも文字変数でもかまわない。このプログラムを実行すると、PC版SASでは、20秒弱で図3.14のような結果が画面に出力される。
図3.14 SASによる平均値の差の検定(t 検定)
この結果は次のように読むことになる。まず、男(1. MALE)、女(2. FEMALE)の年齢の平均(Mean)はそれぞれ、38.16・・・歳、28.83・・・歳で、これだけで見ても、ほぼ10歳も年齢差があり、男の方が、年齢が高いと言えそうであることがわかる。標準偏差(Std Dev; 2乗したものが分散)もほとんど等しいので、平均だけがずれた、ほぼ同じような形の分布になっているといえる。
実際、この標本分散比(F')は1.23とほとんど1である。より正確に言えば、自由度(DF)が763-1=762、112-1=111の F 分布にしたがうことがわかっているので、標本分散比がこれ以上この値(F')からずれる確率(Prob>F')は0.1790で、母分散は等しいと判断される。したがって、分散 (Variances)が等しい(Equal)ときの t の値を見ればよい。この値(T)は、11.0909で、自由度(DF)が763+112-2=873の t 分布にしたがうので、標本平均の差の絶対値が |t|=11.0909 よりも大きくなる確率(Prob>|T|)は0.0000、つまり1万分の1未満と非常に小さくなる。このことから標本平均には有意な差があり、母平均は異なっていると結論づけられる。
もっとも、標本平均の違いがこれだけはっきりしていれば、統計学の知識がなくとも、標本平均を見ただけでも判断ができる。しかし、例えば、両群の分布の形を比較するために標準偏差を比較するというようなプロセスは初心者に限らず、しばしば見落とされがちである。統計学の知識は、こうした当然必要となる処理も含めて、われわれの日常的な判断、いわば直感的、常識的判断に対して、客観的でより精度の高い判断の根拠を提供しているのである。
2群の平均値の比較をしたように、この k 群の平均値の比較もできないだろうか。いま表3.8のような k 群のデータが得られ、それぞれの群での平均値が計算できたとしよう。
表3.8 k 群のサイズと平均値
群 | サイズ | 平均 |
---|---|---|
1 | n1 | x1 |
2 | n2 | x2 |
: | : | : |
i | ni | xi |
: | : | : |
k | nk | xk |
全体 | n | x |
実は、2群の平均値の差の検定を単純に k 群に拡張しようとしても、k 群の平均値の差の検定を想像することは難しい。そこで、k 群の平均値の差の検定の考え方について、簡単に説明しておこう。まず、全平方和
S=Σi=1k Σj=1ni (Xij−X )2
は群内平方和(within samples sum of squares)の和と群間平方和(between samples sum of squares)に分けられるという性質がある。つまり、
S=Σi Σj [(Xij−Xi)
+(Xi−X )]2
=Σi
{Σj (Xij−Xi)2
+Σj 2(Xij−Xi)(Xi−X )
+Σj (Xi−X )2}
=Σi
{Σj (Xij−Xi)2
+2(Xi−X )Σj (Xij−Xi)
+ni (Xi−X )2}
ここで、Σj (Xij−Xi)=0 であるから、
S=Σi
Σj (Xij−Xi)2
+Σini (Xi−X )2} (3.4)
つまり、
全平方和=群内平方和の和+群間平方和
となるわけである。
そこで、本代に戻ろう。「k 群の平均値の差の検定」とはより正確には「k 群の標本の母平均間の差の検定」のことである。つまり、母集団の平均についての仮説
H0: μ1=μ2=・・・=μk
が正しいかどうかが問題となる。この仮説のような関係が標本でも成立していれば、各群の平均値は等しく、全体の平均値とも一致しているはずなので、(3.4)式の右辺第2項の群間平方和の部分は0となっているはずである。しかし、たとえ仮説が正しくても、標本抽出の際の偶然によって生じる標本誤差のために、これが正確に0になるというようなことはめったに起きない。それでは、その標本誤差はどの程度の大きさになるのだろうか。言い方を変えると、群間平方和がどのくらい大きければ、標本誤差の範囲を逸脱して、母平均間に差があると考えざるをえなくなるのだろうか。
まず、(3.4)式から、
群内平方和の和=全平方和−群間平方和 (3.5)
となる。ここで、(3.4)式の右辺第2項の群間平方和の定義式を見ても分かるように、群間平方和は、各群の平均値と全体の平均値との差の2乗を各群のサイズで加重して加えたものになっていることが分かる。つまり、平均値の差の平方和である。さらに、群間で平均値が異なるために生じたこの群間平方和を除いた残りの群内平方和の和は偶然によって生じた誤差平方和(error sum of squares)と考えられるので、(3.5)式は
誤差平方和=全平方和−平均値の差の平方和
と書くこともできる。この誤差平方和(=群内平方和の和)を単位、基準にして、平均値の差の平方和(=群間平方和)を計り、評価してやることを考えればよい。
そこで、表3.9のような表が作成される。この表の中にある「平均平方和」(mean squares)とは「平方和」(sum of squares)を自由度で割って平均したもので、不偏分散のことである。したがって、この表によって計算された F=VA/VE は、平均値の分散が誤差の分散の何倍あるのかをみたものになっている。実は、この F が自由度 (k−1, n−k) の F 分布にしたがうことが知られている。このことを利用して検定が行われるために、この検定は F 検定とも呼ばれる。
表3.9 分散分析表
要因 | 平方和 | 自由度 | 平均平方和 | F値 |
---|---|---|---|---|
群によるもの | SA | k−1 | VA=SA /(k−1) | F=VA /VE |
誤差 | SE | n−k | VE=SE /(n−k) | |
全体 | S | n−1 |
ところで、この表は分散分析表(analysis of variance table)と呼ばれるが、正確にはこうした一連の手続きで、一元配置(one-way layout)の分散分析 (analysis of variance)が行われたことになる。しかし、ここで「一元配置」や「分散分析」の意味をこれ以上述べても、平均値の差の検定という目的にプラスにならないので、これ以上の説明はしないことにしよう。
既に述べたように、k 群の平均値の差の F 検定は、考え方としては、2群の平均値の差の t 検定の単純な拡張をしたわけではない。しかし、2群の平均値の差の検定については、F 検定も t 検定も実質的には同じことをしていることになる。実は、2群の平均値の差の F 検定で求めた F 値は、2群の平均値の差の t 検定で求めた t 値の2乗になっているのである。実際、 F=VA/VE のうち、分母 VE は、
VE=SE /(n−2)
={Σ(X1j−X1)2+Σ(X2j−X2)2}
/(n1+n2−2)=s2
すなわち、t 検定の際の合併した分散(3.2)式と等しくなる。また
X=(n1X1+n2X2)/(n1+n2)
に注意すると、分子 VA については、
VA=SA/1
=n1(X1−X)2+n2(X2−X)2
=(X1−X2)2/(1/n1+1/n2)
したがって、 F=VA/VE は(3.3)式の T の2乗に等しいことになる。このように、t 分布と F 分布の間には、「量 T が自由度 n−2の t 分布にしたがうときは、量 F=T2 は自由度 (1, n−2) の F 分布にしたがう」という関係があったのである。つまり、2群の平均値の差の t 検定を単純に拡張して、k 群の平均値の差の F 検定を思いつくことは難しくても、k 群の平均値の差の F 検定の特別の場合として、2群の平均値の差の F 検定を考え、その F の定義式の分子分母のルートをとることで、t 検定の t の定義式を導出することはできるのである。
SASによって k 群の平均値を比較するには、GLMプロシジャを使う方法が考えられる。実は、ANOVAプロシジャを使うこともできるが、GLMプロシジャの方が、汎用性が高く、使い方を覚えていると得である。また本書では扱わないが、実験計画法に基づかない社会科学分野のデータに対しては、特に2元配置以上の分散分析にはANOVAプロシジャの使用は勧められないというような事情もある。GLMプロシジャを使うと、次のようになる。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC GLM DATA=libname.永久SASデータ・セット名本体; CLASS 分類変数; MODEL 平均をとる変数=分類変数; MEANS 分類変数; RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC GLM DATA=SAVE.JPC; CLASS I4; MODEL AGE=I4; MEANS I4; RUN; |
CMS版SAS |
---|
PROC GLM DATA=永久SASデータ・セット名; CLASS 分類変数; MODEL 平均をとる変数=分類変数; MEANS 分類変数; RUN; |
例) |
---|
PROC GLM DATA=SAVE.JPC; CLASS I4; MODEL AGE=I4; MEANS I4; RUN; |
CMS版SASのプログラムは、形式的にPC版SASのプログラムの1行目を削除したものになる。ここで、プログラム例の中の変数I4は職位を表す変数である。変数AGEは前節で作った年齢を表す変数である。このプログラムを実行すると、PC版SASでは約40秒で図3.15のように4画面にわたって結果が出力される。
図3.15 SASによる k 群の平均値の比較
この結果の第2画面が分散分析表に相当している。第3画面も類似の表示がなされているが、今回の比較には関係がないので、第2画面をもとにして、自由度(DF)、平方和(Sum of Squares)、平均平方和(Mean Square)、F値(F Value)に注意しながら、分散分析表の形に対応させて書き直すと、表3.10のようになる。ここで、F 値につけた「***」は、有意確率 (Pr > F)が0.0001なので、当然0.1%水準で有意ということで表示したものである。つまり、分散分析の結果、k 群による平均値の差は有意ということになる。変数AGEの全体の平均(AGE Mean)は第2画面に37.1547756と表示され、各群での平均は第4画面に表示されているので、これらをまとめると表3.11のようになる。
表3.10 分散分析表
要因 | 平方和 | 自由度 | 平均平方和 | F 値 |
---|---|---|---|---|
群によるもの | 25501.41639 | 3 | 8500.47213 | 168.66*** |
誤差 | 43595.01629 | 865 | 50.39886 | |
全体 | 69096.43268 | 868 |
表3.11 カテゴリーごと(各群)の平均値
N | 平均 | |
---|---|---|
1. 部長クラス(GEN) | 72 | 46.3 |
2. 課長クラス(MGR) | 180 | 41.1 |
3. 係長クラス(HEAD) | 281 | 40.1 |
4. 一般(OTHERS) | 336 | 30.6 |
全体 | 869 | 37.2 |
第2画面に表示されている全体の自由度868が、第1画面の"NOTE"に表示されている全体のNに相当するオブザーべーション数869から1引いたものになっていることも確認してほしい。検定結果が示唆していたように、この表3.11によって、各群での年齢の平均の違いが明らかにあることがわかる。課長クラスと係長クラスの平均年齢の差は僅差であるが、部長クラスと一般とでは、実に16歳も平均年齢が違うのである。(→演習問題3.3)
3.1 階級の設定と棒グラフ 第2節(5)の例題の解答例1、解答例2の棒グラフをSASを使って描いてみよ。
3.2 分散と変動係数 第6節の図3.11を参考にしながら、2値質的変数の変動係数を求めることの意義について、分散と対比しながら述べよ。
3.3 平均値の比較と棒グラフ プリコーディングしてある年齢の各カテゴリーに対して、その階級値を与えた変数として変数AGEをSASプログラム上で定義した上で、次のような統計処理をSASを使って行なってみよ。
いま2変数 x, y のデータが与えられている場合を考えよう。例えば、一般的には個人ごとの身長と体重のデータ、あるいは前章冒頭の例でいえば、個人ごとの性別、職種、職位のデータ、そして表4.1のような企業の資本金と従業員数のデータなどである。
表4.1 私鉄大手16社比較(1990年3月末現在)
会社名 | 資本金(百万円) | 従業員数(人) | ||
---|---|---|---|---|
東 急 | 106,710 | (1) | 7,028 | (6) |
近 鉄 | 89,851 | (2) | 11,873 | (1) |
阪 急 | 68,578 | (3) | 5,373 | (7) |
名 鉄 | 65,664 | (4) | 8,268 | (5) |
東 武 | 62,971 | (5) | 11,017 | (2) |
営 団 | 58,100 | (6) | 10,572 | (3) |
小田急 | 57,606 | (7) | 3,911 | (13) |
京 王 | 48,845 | (8) | 4,236 | (12) |
京 阪 | 40,049 | (9) | 3,371 | (14) |
京 急 | 31,396 | (10) | 4,741 | (11) |
阪 神 | 27,829 | (11) | 2,230 | (16) |
相 鉄 | 27,143 | (12) | 2,637 | (15) |
西 鉄 | 25,589 | (13) | 8,486 | (4) |
南 海 | 22,162 | (14) | 4,855 | (9) |
西 武 | 21,665 | (15) | 5,239 | (8) |
京 成 | 13,583 | (16) | 4,805 | (10) |
表4.1はもともと「組織活性化のための従業員意識調査」の対象企業の中に、私鉄大手のうちの何社かが含まれていたために、それらの企業の規模を相互に比較したり、あるいは業界の中での位置づけを行ったりするために集められたデータである。通常、企業規模を表現するためによく用いられる資本金や従業員数をピックアップして、資本金順に並べてみた。しかし、明らかに従業員数順にはなっていない。両者を組み合わせたときに対象企業の位置づけがどういった結論になるのか、この表だけではピンとこない。
こうした2変数の間の関係の分析は1変数の場合とほぼ同様に次のような手順で行われる。
それではまず、ステップ1の図・表によってデータを整理する方法についてから解説することにしよう。初心者はこのステップを軽視して、いきなり相関や回帰をしたがるが、こんな雑で荒っぽいことをしていては、分析が進んでしまった後で、後悔することになる。このステップ1で図・表によってデータをきちんと整理して、データの特性をおおまかにつかんでおかないと、ステップ2でどのような方法を用いたらよいのか、また得られた数値が、本当にデータを要約したことになっているのかについて、基本的な判断を間違えることになる。
この章では、量的データの整理・要約をまず説明し、それからより頻繁にかつ一般的に用いられる質的データの整理・要約について説明することにしよう。
量的データの場合には、相関表という表形式、あるいは散布図(scatter diagram または scattergram)という図によってデータを整理する。このうち相関表については、次の第5章で取り上げることにして、この章では散布図について説明しよう。散布図とは、例えば図4.1は表4.1の資本金と従業員数の2変数のデータを基にして描いた散布図であるが、このように、平面上に直交座標を定めて、横軸に変数 x (図4.1では従業員数)、縦軸に変数 y (図4.1では資本金)をとり、2変数データ (xi, yi), i=1, 2, ..., n をこの座標平面上に点(1点=度数1)で記入したものである。
図4.1 私鉄大手16社の資本金と従業員数の散布図
散布図を一度自分で手書きで描いてみるとわかることだが、このようなせいぜい十数個の点をプロットするだけでも、実は大変な作業量である。グラフ用紙に向かって、縦軸、横軸の目盛をどの程度の細かさで設定するかを全て決め、その上で1点1点をプロットしていくのである。しかも、この程度の個数でも、どの点がどの会社であったか、描き終った時点ではもはやわからなくなっている。
散布図は、SASを使えば簡単に描くことができる。次のようにPLOTプロシジャを用いればよい。
PROC PLOT [DATA=SASデータ・セット]; PLOT 変数1*変数2[=変数3]; RUN; |
ここで変数1、変数2は変数のリストでもよいことになっている。変数3は文字変数でも数値変数でもよく、その変数の値の最初の1文字が、「点」の代わりに表示されることになる。変数3の代わりに、PLOT X*Y="*"; のように"*"などの文字定数を置くと、やはりその文字定数の最初の1文字が表示される。変数3が指定されなければ、度数によって、表4.2のように表示される。実は、PLOTプロシジャによって作成されるのは、正確には散布図ではなく、後述するクロス表を非常にきめ細かくしたものなのである。したがって、いかにセルが細かく設定されているとはいっても、一つのセルに複数の「点」を「プロット」しなくてはならないような事態も散布図に比べると頻繁に生じることになるので、こうした度数表示が行われるのである。
表4.2 SASの散布図における度数の表示
度 数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ・・・・・・ |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
表 示 | A | B | C | D | E | F | G | H | I | J | K | L | ・・・・・・ |
変数1と変数2の指定により、散布図の軸は図4.2のように設定されることになる。
図4.2 指定された変数と散布図の軸
ところで、「組織活性化のための従業員意識調査」の質問票調査では、得られるのは質的データばかりなので、散布図を描くのに適したデータがない。そこで、ここでは、先ほどの1990年3月末現在での私鉄大手16社の資本金と従業員数のデータを使ったSASのプログラム例を考えてみよう。このデータについては、まだ永久SASデータ・セットが存在していないので、ここでは、SASプログラム内に直接データを書き込んでおいて、しかも新たに永久SASデータ・セットをついでに作ってしまうPC版SASのプログラム例を挙げておこう。
このプログラムの1行目を削除すれば、そのままCMS版SASのプログラム例となる。PC版SASでは、このプログラム例を実行すると、20秒弱で永久SASデータ・セットSHITETSU.SSDがディレクトリMYDIRの下に生成されるとともに、図4.3のような結果が出力される。CMS版SASで生成される永久SASデータ・セット名はSHITETSU SAVEとなる。
図4.3 SASによる私鉄大手16社の資本金と従業員数の散布図
二つの変数の間で、一方の値が決まると他方の値が一意に定まる関係があるとき、両変数の間には関数関係があるという。それに対して、ここでいう相関関係とは、二つの変数の間で、一方の値が決まると他方の値が一意に定まるというわけにはいかないまでも、両者の間になんらかの関連性が認められる関係をさしている。例えば、通常、人間の身長と体重の間には、身長が高いほど体重も重く、体重が重いほど身長も高いという関係があるということは常識的に理解できる。しかし、身長が決まると体重も一意に決まるというような関数関係があるわけではない。同じ身長でも、細目の人から太目の人まで体重には大きな差があるものである。
統計学で用いられる相関関係は、特に直線的な関係を指しているものである。つまり、次のような関係を指している。
また、相関関係と因果関係とは別の概念であるということにも注意がいる。相関関係は観測されたデータから、表面的に認められる事実関係のみを意味するのに対して、因果関係は論理的に考えられるものである。統計学では事実としての相関関係を扱うことはできても、それが本当に因果関係を意味するものかどうかを統計学で直接判定することはできない(第1章第2節を参照のこと)。
既に述べた、散布図や相関表などの図・表によってデータを整理して、相関関係を視覚に訴えることができる。この方法を補完するものとして相関係数がある。相関係数は、2変数間の相関関係のうち、特に直線的な関係の強さを測る指標である。この節では、この相関係数についてまとめておこう。
通常、単に「相関係数」といった場合には、ピアソンの積率相関係数(Pearson's product-moment correlation coefficient あるいは Pearson's r)を指すことになる。2変数データ (x1, y1), (x2, y2), ..., (xn, yn) のピアソンの積率相関係数は次のように定義される。
rxy={Σi=1n (xi−x)(yi−y)} /[{Σi=1n (xi−x)2}1/2 {Σi=1n (yi−y)2}1/2]
この相関係数は何を意味しているのだろう。定義式の分母は平方和の平方根の積なので、その符号は正に決まっている。それでは定義式の分子はどうだろうか。相関係数の定義式の分子に注目して、相関係数の意味を考えてみよう。そこで、平均 (x, y) を原点とする直交座標を考えると、図4.4のようになる。
図4.4 相関係数の分子と平均
つまり、相関係数の定義式の分子のΣの中身 (xi−x)(yi−y) は、第1象限や第3象限にある点で計算すると正、第2象限や第4象限にある点で計算すると負の値をとることになる。したがって、
このようなことから、相関係数は、散布図など相関関係を視覚に訴える方法を補完するものであると考えていた方が間違いがない。相関係数は2変数間の直線的な関係を要約するものにすぎないからである。
ところで、相関係数の定義式の分子をnで割ったもの
sxy={Σi=1n
(xi−x)(yi−y)}
/n
は変数 x と y の共分散(covariance)と呼ばれる。変数 x と x の共分散は、定義より、
sxx=sx2
つまり、変数 x の分散となる。この共分散を用いれば、相関係数は
rxy=sxy /(sxsy)
と表すこともできる。この形はこの章の中でもたびたび用いられるので、記憶にとどめておいてほしい。
相関係数 rxy の定義では、分母 sxsy≠0 を暗黙のうちに仮定していることになる。しかし、これは実際上はなんら制約にならない。なぜなら、例えば、sx=0, sy≠0 であれば、変数 x の標準偏差、分散は0ということになり、x は一定値の定数だったことになるからである。したがって、このデータは実質的に2変数データではなかったことになり、もはや相関関係を考える必要はない。
次に、相関係数のもっている性質を列挙しておこう。これらの性質は、計算ミスを見つける際や、SASのような統計パッケージを使う際に、常識として知っておかねばならない性質ばかりを集めたものである。特に、性質1、性質2は、相関係数が相関関係の客観的指標になりうることを示すものであるが、知っていれば統計パッケージ使用の際の色々な手間を省くのに役立つ。
性質1 相関係数 rxy は x と y とを入れ換えても変化しない。すなわち rxy=ryx
性質2 相関係数 rxy の値は、両変数の1次変換 x'=ax+b, y'=cy+d, ac>0 によっても変わらない。すなわち rx'y'=rxy
<証明>
rx'y'
=[Σ{axi+b−(ax+b)}
{cyi+d−(cy+d)}]
/[[Σ{axi+b−(ax+b)}2]1/2
[{Σcyi+d−(cy+d)}2]1/2]
={acΣ(xi−x)(yi−y)}
/[a{Σ(xi−x)2}1/2
c{Σ(yi−y)2}1/2]
=rxy □
性質3 -1≦rxy≦1
<証明>
最初に t に関する次のような2次式を考える。
h(t)=Σi [ait−bi]2
=t2 Σai2−2tΣaibi+Σbi2
h(t)≧0 だから、この2次式の判別式が正になることはなく、
判別式=[Σaibi]2−Σai2 Σbi2≦0
これは、シュルツの不等式(Schwarz's inequality)と呼ばれる。そこで ai=xi−x, bi=yi−y とおくと
rxy2={Σi=1n
(xi−x)(yi−y)}2
/{Σi=1n
(xi−x)2
Σi=1n
(yi−y)2}
≦1 □
性質4 |rxy|=1 の必要十分条件は (xi, yi), i=1, 2, ..., n がすべて (x, y) を通る同一直線上にあることである。
<証明>
(十分性の証明)
(xi, yi), i=1, 2, ..., n がすべて同一直線上 y=ax+b 上にあれば、yi=axi+b, i=1, 2, ..., n となり、Σyi=aΣxi+nb ゆえに、y=ax+b。つまり、(x, y) もこの直線 y=ax+b 上にある。したがって、
(xi−x)t−
(yi−y)=0, i=1, 2, ..., n (4.1)
いま次の2次式
h(t)=Σ[(xi−x)t−(yi−y)]2
=t2Σ(xi−x)2
−2tΣ(xi−x)(yi−y)
+Σ(yi−y)2
を考えると、常に h(t)≧0 なので、t は(4.1)式から方程式 h(t)=0 の重根でなければならない。よって、
判別式=Σ[(xi−x)
(yi−y)]2
−Σ(xi−x)2
Σ(yi−y)2
=0
これから rxy2=1
(必要性の証明: 背理法で証明する)
(4.1)式を満たす t が存在しないと仮定すると、
h(t)=Σ[(xi−x)t−(yi−y)]2>0
となり、判別式は負でなければならないために rxy2<1 となる。これは矛盾。
よって rxy2=1 となるのは、(4.1)式を満たす t が存在するときに限られる。したがって、 (xi, yi), i=1, 2, ..., n はすべて同一直線上にある。□
第3章で扱った平均値の差の検定の際の t 検定、F 検定と同様に、相関係数についても検定することができる。母集団での相関係数をρとおくと、仮説
H0: ρ=0
を検定するためには、
t=rxy(n−2)1/2/(1−rxy2)1/2
が、自由度 n−2 の t 分布 t(n−2) にしたがうことがわかっているので、これを用いればよい。
表4.1の( )内に示した資本金順位、従業員数順位のような順序尺度データに対して相関係数を適用したらどうなるだろうか。尺度の問題(第1章第3節(2)を参照のこと)を考えると乱暴としか言いようがないが、いま、表4.1の( )内の順位を抜き書きして得られるような表4.3の形の2変数の順位データ (x1, y1), (x2, y2), ..., (xn, yn) に相関係数を適用することを考えよう。
表4.3 順位データ
観測対象 | x | y |
---|---|---|
1 | x1 | y1 |
2 | x2 | y2 |
: | : | : |
i | xi | yi |
: | : | : |
n | xn | yn |
ここで、xi, yi はともに1から n までの整数なので、
Σxi=Σyi=1+2+・・・+n=n(n+1)/2
Σxi2=Σyi2=12+22+・・・+n2=n(n+1)(2n+1)/6
となる。このことを用いると、x と y の平方和は、
nsx2=nsy2
=Σxi2−nx2
=n(n+1)(2n+1)/6−n(n+1)2/4=n(n2−1)/12
また
nsxy=Σxiyi−nx・y
=[−Σ(xi−yi)2+Σxi2+Σyi2]/2−nx2
=−Σ(xi−yi)2/2+Σxi2−nx2
=−Σ(xi−yi)2/2+n(n2−1)/12
これから
rxy=sxy /sxsy=1−6Σ(xi−yi)2/{n(n2−1)} (4.2)
となる。これは、スピアマンの順位相関係数(Spearman's rank correlation coefficient あるいは Spearman's ρ)と呼ばれる。ここでは rS と書くことにしよう。ただし、(4.2)式は順位データが1から n までの整数であることを利用して簡略化した計算式であって、相関係数の定義自体はピアソンの積率相関係数と同じである。
この計算式(4.2)式の分子にある xi−yi に着目すると、
順位相関係数は順位という粗い情報しか用いない。実は、通常の相関係数は少数個の大きな値で決まってしまい、実際には無意味な数字になることがある。このような場合、情報を少し落して、順位に変換し、おとなしくさせて、順位相関係数を求めればよいこともある。
ただし、rS は順位を表す数値をあたかも間隔尺度であるかのように取り扱って、ピアソンの積率相関係数を求めたものなので、より正確には、順位を順序尺度として扱う順位相関係数を使うべきである。このことを考えているのが、次のケンドールの順位相関係数である。
ケンドールの順位相関係数(Kendall's rank correlation coefficient) τ (タウ)は、純粋に観測値の大小関係のみを反映した相関係数である。したがって、どちらがどれくらい大きいとか小さいとかを一切考慮しない。先ほどと同様に表4.3のような順位データが与えられているとしよう。このような順位データの相関係数であるケンドールのτは、次の二つのケースに対応して、τa とτb の2種類のτが考え出されている。
個体二つずつの対を考えて(全部で nC2=n(n−1)/2 個の観測値の対)、この各対を次のように分類する。
既に定義した正順A、逆順Bに加えて、次の2種類の同順位を考える必要がある。
同順位がない場合(ΣC=ΣD=0)には、(4.4)式にこのことを代入すると、(4.3)と同じ式になる。すなわち τb=τa となる。したがって、同順位のあるなしにかかわらず、τb を計算すればよいことになる。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC CORR DATA=libname.永久SASデータ・セット名本体; [VAR 変数名の並び;] [WITH 変数名の並び;] [OPTIONS NOCENTER;] RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC CORR DATA=SAVE.SHITETSU; OPTIONS NOCENTER; RUN; |
CMS版SAS |
---|
PROC CORR DATA=永久SASデータ・セット名; [VAR 変数名の並び;] [WITH 変数名の並び;] [OPTIONS NOCENTER;] RUN; |
例) |
---|
PROC CORR DATA=SAVE.SHITETSU; OPTIONS NOCENTER; RUN; |
PC版SASのプログラムの1行目を削除すると形式的にはCMS版SASのプログラムとなる。このプログラム例では、さきほど生成した永久SASデータ・セット(PC版SASではSHITETSU.SSD、CMS版SASではSHITETSU SAVE)を使って、全数値変数間の相関係数を計算させている。このプログラム例を実行させると、PC版SASでは5秒以内に図4.5の画面が出力される。第1画面では、各変数のオブザーべーション数(N)、平均(Mean)、標準偏差(Std Dev)、総和(Sum)、最小値(Minimum)、最大値(Maximum)といった単純統計が表示され、第2画面では、相関係数行列が表示される。
図4.5 SASによる相関係数行列の計算
第2画面で、相関係数行列の各セルの上段に表示されているのが相関係数、下段に表示されているのが有意確率である。この例の場合、SHIHONとJUGYOINとの間のピアソンの積率相関係数は0.54351で、有意確率は2.96%ということになる。通常のように、有意水準を5%と設定している場合には、「5%水準で有意」ということになる。ただし、この場合、ここで取り扱っている私鉄大手16社のデータは何か別の母集団からの無作為標本のデータというわけではない。むしろこれ自体が母集団といってよいだろう。したがって、統計学的には、相関係数は意味があるが、それを検定すること自体は無意味である。もっとも、このような場合でも、有意確率や有意水準を併記しておくのが、現在のところ「流儀」になっている。「それは本質的におかしい!」と目くじらを立てずに、この場合には、相関係数0.54351が「相関がある」といってもよいほどの水準の値なのかどうかの一つの判断材料になっているという程度に理解していただきたい。客観的な判断材料になりうるものに対しては貪欲であり続けるのが統計処理の基本的姿勢なのである。ただし、統計学的には、あくまでも無作為標本データでない限り、有意確率に意味はないということは頭の片隅にとどめておいてほしい。
また単純統計は、データの特性をチェックするという点では重要な情報であるが、既に、第3章で行ったような、1変数データとしての吟味が終了している場合には、改めてチェックする必要はない。そのときは、PROC文で単純統計はいらないということで、NOSIMPLEと次のように下線部を追加指定してやると、単純統計は出力されず、相関係数行列だけが出力される。
PROC CORR NOSIMPLE DATA=SASデータ・セット名;
ただしはじめの頃は、その都度、単純統計をまめにチェックする習慣をつけておいた方が無難である。
相関係数行列は、変数の数が増えてくると、有意水準を
+ | p<0.1 | (10%) |
* | p<0.05 | (5%) |
** | p<0.01 | (1%) |
*** | p<0.001 | (0.1%) |
のように+印や*印で表示した方が見やすい。もちろん、有意水準をどのように設定するのかは分析する側の意図に依拠しているのであるが、ここに挙げたような有意水準の区切り、10%、5%、1%、0.1%は、筆者も含めて多くの人に用いられているものである。特別な主義、主張のない限り、これらを採用した方が無難であろう。また、通常は、5%水準ではじめて有意と言われることが多く、10%水準では「有意」とは扱われないので、「参考程度に」という意味もこめて、*印を使わずに+印で表示する。
したがって、レポートや論文で相関係数行列を示す場合には、表4.4のように表示すればよい。相関係数は対角線上はすべて1になるし、また対角線に対して対称になっているので、右上半分もしくは左下半分だけを示せば済むことになる。紙幅の都合でそのように省略することもあるが、見やすいということをいえば、紙幅の許す限り、省略せずに表示してもよいだろう。
表4.4 相関係数行列
資本金 | 従業員数 | |
---|---|---|
資本金 | 1.000*** | 0.544* |
従業員数 | 0.544* | 1.000*** |
ところで、SASプログラムの「変数名の並び」の中の変数は数値変数に限られる。またプログラム例では省略してしまったが、もちろんVAR文もWITH文も省略せずに使用し、相関係数を計算する変数名を明確に指定するのが基本である。WITH文やVAR文を省略した場合に、それぞれどういった処理がなされるのか整理しておこう。
この場合には、省略されたWITH文にはVAR文と同じ変数名の並びが指定されていると解釈される。つまり、次の二つのプログラムは同じ機能を果たす。
(A) PROC CORR DATA=SAVE.SHITETSU; VAR SHIHON JUGYOIN; RUN; |
(B) PROC CORR DATA=SAVE.SHITETSU; VAR SHIHON JUGYOIN; WITH SHIHON JUGYOIN; RUN; |
この場合には、指定されたSASデータ・セットの全ての数値変数が処理の対象となる。つまり、次の二つのプログラムは同じ機能を果たすことになる。
(C) PROC CORR DATA=SAVE.SHITETSU; RUN; |
(D) PROC CORR DATA=SAVE.SHITETSU; VAR _NUMERIC_; RUN; |
結局、このプログラム例で使用している永久SASデータ・セットでは、数値変数はSHIHONとJUGYOINの二つしかないので、4つのプログラム例(A)(B)(C)(D)は同じ処理を行うことになる。
スピアマンの順位相関係数、ケンドールの順位相関係数を求めたい場合には、ピアソンの積率相関係数を求めるプログラムのCORRのオプション部分をそれぞれ
PROC CORR SPEARMAN DATA=SASデータ・セット名;
あるいは、
PROC CORR KENDALL DATA=SASデータ・セット名;
と下線部を書き加えるだけで同様にして求められる。
表4.1のデータを使うと、資本金と従業員数との間の相関係数は表4.5のようになる。この表からもわかるように、SPEARMANやKENDALLを指定した時には、順位データではなく、金額・人数データを与えた場合でも、その順位についての相関係数が求められる。したがって、金額・人数データでも順位データでも相関係数 rS、τb は変わらない。また、順位データを与えて求めたピアソンの積率相関係数 r が、定義通りスピアマンの順位相関係数 rS と一致することも確認できる。
表4.5 表4.1のデータについてSASで求めた各種相関係数と有意確率
金額・人数データ | 順位データ | |||
---|---|---|---|---|
相関係数 | 有意確率 | 相関係数 | 有意確率 | |
ピアソンの積率相関係数 r | 0.54351 | 0.0296 | 0.46471 | 0.0697 |
スピアマンの順位相関係数 rS | 0.46471 | 0.0697 | 0.46471 | 0.0697 |
ケンドールの順位相関係数 τb | 0.30000 | 0.1051 | 0.30000 | 0.1051 |
相関(correlation)が、x と y を対等に見て、相互の関係を扱っていたのに対して、回帰(regression)分析では、例えば x から y が決定される一方向の関係を扱う(もちろん逆方向に、y から x が決定されるという関係を扱うこともできる)。2変数データに直線(1次式)をあてはめるには、次の二つの問題を考える必要がある。
問題1 y=a+bx をサイズ n の2変数データ (x1, y1), ..., (xn, yn) にうまくあてはまるように a, b を決める。
ここで、y=a+bx という式は変数 x によって変数 y を説明しようとするものなので、変数 x は説明変数または独立変数(independent variable)と呼ばれ、変数 y は被説明変数または従属変数(dependent variable)と呼ばれる。この問題を解く方法には、最小2乗法と呼ばれる方法がある。最小2乗法によって得られる直線を「y の x への回帰直線(regression line)」または「y の x への回帰式(regression equation)」と呼ぶ。このように、最小2乗法によって直線を求めることを回帰分析と呼び、この問題1のように説明変数が一つの場合には、単回帰と呼ぶ。また、より一般的に説明変数が p 個の場合には、重回帰(multiple regression analysis)と呼ぶ。単回帰は重回帰の特殊なケース(p=1)であるが、通常は、重回帰といえば、特に、p≧2の場合を指すことが多い。
問題2 問題1で求められた直線(1次式)のデータへのあてはまり具合を測る。
これは、正確には重相関係数や決定係数を求める問題になるが、単回帰では、相関係数の絶対値は重相関関係数と一致し、相関係数の2乗は決定係数とも一致するので、相関係数によってあてはまり具合を測ることができる。
それでは、問題1: y=a+bx が2変数データ (x1, y1), ..., (xn, yn) にうまくあてはまるように a, b を決めることを考えてみよう。最小2乗法(method of least squares)とは、
Σi=1n[yi−(a+bxi)]2 (4.5)
を最小にするように a, b を決める方法である。式の中の[ ]内は残差 ei と呼ばれるもので、(4.5)式は残差2乗和ということになる。最小2乗法はこの残差2乗和を最小にするように a, b を決める方法なのである。このことを図示すると、図4.6のようになる。
図4.6 観測値への直線のあてはめ
つまり、残差の絶対値 |yi−(a+bxi)| で観測値 (xi, yi) と直線 y=a+bx との乖離を y 軸方向に測り、この y 軸方向の乖離の2乗和によって、この直線の2変数データ (x1, y1), ..., (xn, yn) へのあてはまり具合を計ってやろうというのである。
残差2乗和を最小にするような a, b を求めてみると、つまり最小2乗法によると、a, b は次のような簡単な式で求められる。
b=Σi=1n (xi−x)(yi−y)/Σi=1n (xi−x)2=sxy /sx2=rxysy /sx (4.6)
a=y−bx
このようにして求められた b を回帰係数(regression coefficient)、a を回帰定数あるいは y 切片(y-intercept)と呼ぶ。回帰係数 b の式から明らかなように、変数 x とy の分散が変わらなければ、回帰係数 b は両変数の相関係数の大きさに比例することになる。相関係数が0のときは回帰係数 b も0になって、回帰直線は x 軸に平行になる。
<証明>
Q(a, b)=Σ[yi−(a+bxi)]2
とおき、微分の公式
[{f(x)}n]'=n{f(x)}n-1f '(x)
を使って、Q(a, b) の a, b に関する偏導関数を求め、0とおくと、
∂Q(a, b)/∂a=Σ2(yi−a−bxi)(-1)=0
∂Q(a, b)/∂b=Σ2(yi−a−bxi)(-xi)=0
これを整理すると正規方程式(normal equation)と呼ばれる次の連立方程式が得られる。
an+bΣxi=Σyi
aΣxi+bΣxi2=Σxiyi
この連立方程式を解くには、第1式の両辺をnで割って得られる a=y−bx を第2式に代入することによって、
b=(Σxiyi−nx y)/(Σxi2−nx2)={Σ(xi−x)(yi−y)}/Σ(xi−x)2 □
同様にして、x の y への回帰直線 x=a'+b'y の回帰係数、回帰定数も次のように求められる。
b'=sxy /sy2=rxysx /sy
a'=x−b'y
このようにして、2変数データ (x1, y1), ..., (xn, yn) については、どちらを説明変数にし、どちらを被説明変数にするかで、2本の回帰直線を引くことができる。この2本の回帰直線については、次の関係が成り立つ。
性質1 2本の回帰直線は点 (x, y) で交わる。
<証明>
y の x への回帰直線 y=a+bx に a=y−bx を代入すると y−y=b(x−x) と書けることから、この回帰直線は (x, y) を通る。同様に、x の y への回帰直線は x−x=b'(y−y) と書け
ることから、この回帰直線も (x, y) を通る。□
性質2 変数 x と変数 y の相関係数 rxy の絶対値は b とb' の絶対値の幾何平均となる。すなわち、b'b=rxy2
<証明>
b'b=(rxysx /sy)(rxysy /sx)=rxy2 □
この性質2から次の性質がすぐに導かれる。
性質3 rxy=±1 のとき 1/b'=b で2本の回帰直線は重なる。
これは性質2によらなくても明らかであろう。なぜなら、rxy=±1 のとき、すべての点は同一直線上にある(相関係数の性質4)わけだから、当然、その直線が回帰直線と重ならなければおかしいからである。
さらに、b と b' の式から
性質4 相関係数 rxy と回帰係数 b, b' の符号は一致する。
<証明>
b=rxysy /sx, b'=rxysx /sy から明らか。□
例えば、無相関で rxy=0 となっているときは、b=b'=0 で2本の回帰直線はそれぞれ x 軸、y 軸に平行な直線となり、直交することになる。
性質5 b'≠0 のとき |1/b'|≧|b|
<証明>
0≦b'b=rxy2≦1
である。したがって、b>0 のとき b'>0 であることから 1/b'≧b>0。b<0 のとき b'<0 であることから 1/b'≦b<0。□
以上の性質をまとめると、相関の大きさと2本の回帰直線の関係は図4.7のように図示される。図4.7からもわかるように、y の x への回帰直線 y=a+bx の方が常に傾きがゆるやかなものになる(性質5)。しかも、相関が弱いほど、2本の回帰直線の傾きの開きは大きなものになる。回帰直線の傾きは回帰係数 bで決まるので、回帰係数 b の絶対値が小さくて、回帰直線 y=a+bx の傾きが小さいときには、実際にはこのように相関が弱く、ただ単に回帰直線のあてはまりの程度が低く、回帰直線の説明力が弱いだけという可能性のあることに注意する必要がある。実は、回帰直線のあてはまりの程度、説明力を見るには、相関係数の大きさを見ればよいのである。
図4.7 2本の回帰直線と相関
回帰直線の説明力を見るためには、被説明変数の全平方和 Σ(yi−y)2 のうち、回帰直線 y=a+bx で説明のつく平方和部分の割合がどの程度になっているのかを調べればよいわけだが、それには、回帰直線によって説明できなかった残差2乗和の全平方和に占める割合を考え、それを1から引いたものに着目してやればよい。これを決定係数(coefficient of determination)と呼び、R2 で表す。すなわち、
R2=1−[Σ{yi−(a+bxi)}2]/Σ(yi−y)2
単回帰の場合には、説明変数と被説明変数の相関係数の2乗がこの決定係数に等しくなることがわかっている。すなわち、
rxy2=R2
また回帰直線による予測値 a+bxi と実際の観測値 yi との間の相関係数 R は重相関係数(multiple correlation coefficient)と呼ばれ、回帰直線のあてはまりの程度を表していると考えられる。重相関係数は 0≦R≦1 であり、また重相関係数の2乗は決定係数に一致することがわかっている。すなわち、
(R)2=R2
このことから、単回帰の場合には、相関係数の絶対値と重相関係数が等しいことになる。したがって、相関係数が大きいほど、回帰直線のあてはまり程度も良く、説明力も高いということになるのである。
決定係数は相関係数の2乗になっているので、たとえば、相関係数が r=0.7 のとき、決定係数は R2=0.49 となる。つまり、被説明変数の全平方和の0.49つまりほぼ半分の49%が回帰直線によって説明されていることになり、相関係数の数字に比べて説明力が意外と低いことがわかる。相関係数が r=0.9 にもなれば、決定係数は R2=0.81 になるが、逆に相関係数が小さく r=0.3 であれば、決定係数は R2=0.09、つまり被説明変数の全平方和のわずか10%弱しか説明できていないことになる。
このように、回帰直線の説明力を示す決定係数が、相関係数の2乗となっていることからもわかるように、回帰分析は相関分析と深い関係があり、相関係数を使うときと同様の注意が必要となってくる。すなわち、
無作為標本のデータ (X1, Y1), ..., (Xn, Yn) にもとづいて回帰分析を行ったとき、求められた回帰定数 a、回帰係数 b は確率変数となる。母集団での回帰直線が y=α+βx で、そのときの残差が x の値によらない等分散の正規分布で近似される場合(x と y の同時分布が2次元正規分布で近似される場合にこうなることがわかっている)、回帰係数についての仮説
H0: β=β0
を検定するためには、
t=(b−β0)/s.e.(b) (4.7)
が自由度 n−2 の t 分布にしたがうので、そのことを用いる。同様に、回帰定数についての仮説
H0: α=α0
を検定するためには
t=(a−α0)/s.e.(a)
が自由度n-2の t 分布にしたがうので、そのことを用いればよい。ここで、s.e.(b)、s.e.(a) は標準誤差(standard error)と呼ばれ、次のようになる。
s.e.(b)=s/{Σ(Xi−X)2}1/2
s.e.(a)=s/{1/n+X2/Σ(Xi−X)2}1/2
ただし、
s2=Σ[Yi−(a+bXi)]2/(n−2)=(1−r2)Σ(Yi−Y)2/(n−2)
ここで、仮説の中の β0、α0 は分析を行う人が決める定数であるが、特に回帰係数 β0 について一般によく用いられるのは β0=0 である。つまり、「説明変数 x は y に影響を与えない」という仮説である。この仮説のときの t の値を t 値という。すでに(4.6)式で回帰係数 b が
b=rxysy/sx
となることを述べたが、この式からも想像がつくように、この式とs.e.(b)を(4.7)式に代入すると、単回帰の回帰係数についての仮説 H0: β=0 の検定と相関係数についての仮説 H0: ρ=0 の検定は同等ということがわかる。
回帰分析を手計算で行うことは、データ数が増えてくると、一般に大変な作業である。そこで、いよいよSASのような統計パッケージが有用となってくる。回帰分析を行うSASプログラムもいたって簡単である。REGプロシジャを使えばよい。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC REG DATA=libname.永久SASデータ・セット名本体; MODEL 被説明変数=説明変数; RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC REG DATA=SAVE.SHITETSU; MODEL SHIHON=JUGYOIN; RUN; |
CMS版SAS |
---|
PROC REG DATA=永久SASデータ・セット名; MODEL 被説明変数=説明変数; RUN; |
例) |
---|
PROC REG DATA=SAVE.SHITETSU; MODEL SHIHON=JUGYOIN; RUN; |
PC版SASのプログラムの1行目を削除すると形式的にはCMS版SASのプログラムとなる。このプログラム例を実行すると、PC版SASでは10秒ほどで、図4.8のように、2画面が表示される。第1画面は分散分析(ANALYSIS OF VARIANCE)表を表示し、第2画面は回帰係数・回帰定数の推定値(PARAMETER ESTIMATES)及びその検定結果が出力される。さらに必要であれば、PROC文のオプションとしてSIMPLEを追加指定すれば、相関係数のときと同様の単純統計を出力させることもできる。
図4.8 SASによる回帰分析(SHIHONのJUGYOINへの回帰直線)
分散分析については、ここでは説明しないが、決定係数 R2 (R-square)が0.2954と既に第3節図4.5で求めていた相関係数0.54351の2乗に等しいこと、また回帰分析のモデルの有意確率(Prob>F) 0.0296が、相関係数の有意確率と等しくなっていることを確認してほしい。この有意確率は、説明変数JUGYOINの回帰係数の有意確率(Prob > |T|)とも等しい。既に述べたように、単回帰の回帰係数についての仮説 H0: β=0 の検定と相関係数についての仮説 H0: ρ=0 の検定は同等なのである。
回帰係数、回帰定数(INTERCEP)の推定、そして、t 値(T)から、次のような回帰分析の結果が得られたことになる。
SHIHON=18612+4.7642 JUGYOIN
(1.386) (2.423*)
ここで、( )内は t 値を示している。t 値に付けられた*印は、5%水準で有意であることを示している。また、もとになった表4.1の資本金データの有効桁数などを考えると、回帰係数、回帰定数は、SASの出力結果を全部書かずに、5桁も表示すればいいだろう。
ちなみに、プログラム例のMODEL文で、説明変数と被説明変数を入れ替えて
MODEL JUGYOIN=SHIHON;
として実行させると、図4.9のような結果が出力される。
図4.9 SASによる回帰分析(JUGYOINのSHIHONへの回帰直線)
説明変数と被説明変数を入れ替えても、分散分析の F 値(F Value)、有意確率(Prob>F)、決定係数(R-square)は先ほどの値と全く同じになることを確かめてほしい。また説明変数が入れ替わったにも関わらず、説明変数の t 値(T)、有意確率(Prob > |T|)が変わらず、同じであることも確認してほしい。もっとも、当然、回帰直線は次のように別のものになっている。
JUGYOIN=3189.9+0.062004 SHIHON
(2.289*) (2.423*)
先ほど求めた回帰係数4.7642とここで求めた回帰係数0.062004の幾何平均は、
(4.7642×0.062004)1/2=0.54351
と相関係数に等しくなることも確認してほしい。
この章の最初に描いておいた図4.1の散布図に、2本の回帰直線を書き込んでみると、図4.10のようになる。
図4.10 2本の回帰直線
4.1 相関・回帰分析
表4.1の私鉄大手16社のデータを、資本金(SHIHON)、従業員数(JUGYOIN)そのままではなく、その対数をとった上で、相関、回帰分析を行なってみよ。SASのプログラムでは、変数Xの対数は、底がeの自然対数、底が10の常用対数、底が2の対数については、それぞれ
Y=LOG(X);
Y=LOG10(X);
Y=LOG2(X);
といったように( )つきの関数で求めることができる。次のPC版SASのプログラム例を参考にするとよい。この1行目を削除するとCMS版SASのプログラム例になる。
LIBNAME SAVE '¥MYDIR';
DATA SAVE.SHITETSU;
SET SAVE.SHITETSU;
SLOG=LOG(SHIHON);
JLOG=LOG(JUGYOIN);
PROC PLOT;
PLOT SLOG*JLOG=KCODE;
RUN;
PROC REG;
MODEL SLOG=JLOG;
RUN;
4.2 相関・回帰分析 表4.6のデータは、第6章のD電気鰍フ1991年3月末現在の100%子会社全14社の資本金、従業員数である。相関・回帰分析を行ってみよ。
表4.6 D電気鰍フ100%子会社の資本金、従業員数(1991年3月末現在)
会社 | 資本金(百万円) | 従業員数(人) |
---|---|---|
A | 2,000 | 779 |
B | 2,200 | 218 |
C | 300 | 1,108 |
D | 300 | 1,214 |
E | 40 | 579 |
F | 80 | 404 |
G | 50 | 830 |
H | 50 | 1,199 |
I | 450 | 32 |
J | 50 | 590 |
K | 200 | 1,284 |
L | 50 | 156 |
M | 200 | 84 |
N | 450 | 16 |
4.3 相関・回帰分析 東日本旅客鉄道(株) (いわゆる「JR東日本」)は、1990年3月末当時、資本金200,000百万円、従業員数約80,000人といわれた。表4.1の私鉄大手16社にJR東日本も加えて相関・回帰分析を行ってみよ。
2変数データの表は、一般には、質的データの場合にはクロス表(cross table)あるいは関連表・分割表(contingency table)、量的データの場合には相関表(correlation table)と呼ばれる。質的データの表と量的データの表の両者を総称して、二重分類表(double classification table)と呼ぶこともある。いずれにせよ、これらの表は、2変数を同時にとりあげた同時度数分布の表である。
実際に表を作成するときには、まず二つの変数の値を質的データではカテゴリー、量的データでは階級に分割して、さらに両者が交差(クロス)する升目(セル)に度数を書き込むのである。その一般的な形式は表5.1のようになる。
表5.1 2変数データの表の一般形式
x | y | |||||
---|---|---|---|---|---|---|
y1 | ・・・・・・ | yj | ・・・・・・ | yk | 計 | |
x1 | f11 | ・・・・・・ | f1j | ・・・・・・ | f1k | f1・ |
: | : | : | : | : | ||
xi | fi1 | ・・・・・・ | fij | ・・・・・・ | fik | fi・ |
: | : | : | : | : | ||
xl | fl1 | ・・・・・・ | flj | ・・・・・・ | flk | fl・ |
計 | f・1 | ・・・・・・ | f・j | ・・・・・・ | f・k | n |
この形式で作成された表を、質的データ×質的データの場合はクロス表と呼び、量的データ×量的データの場合には相関表と呼ぶのである。したがって、質的データのクロス表のときは、xi, yi はカテゴリーを表すことになるし、量的データの相関表のときには、xi, yi は階級を表すことになるのである。一般的には、表側の変数(ここではx)に、より基本的なものをもってくることが多い。
ここで、表5.1の中の各セルの fij が同時度数をあらわしている。他方、「計」として表の縁すなわち周辺に表示されているものは、周辺度数と呼ばれる。つまり、
fi・=Σj fij ・・・・・・xの周辺度数
f・j=Σi fij ・・・・・・yの周辺度数
ということになる。
量的データについて、前章で扱った散布図は、一般的には非常に有力な方法であるのだが、社会科学分野、特に調査データの場合には、あまり深く考えもせずに、単純に散布図を描いても、整理の実用性、効果という点ではあまり期待できない。なぜなら、本書で扱っている「組織活性化のための従業員意識調査」のようなケースでは、変数が離散変数であることが多いし(もっとも、既に第3章第1節で述べたように、観測・測定データは厳密にはすべて離散的である)、しかも、とりうる値の数に比べてデータのサイズが大きいので(つまり、調査対象者数が多いので)、散布図を描いてみても、結果的に散布図では同じ位置にいくつもの点が重なり合うことになり、結局、点では分布がわからず、度数で示さざるをえなくなってしまう。特に前章で扱ったPLOTプロシジャを使ってSASに描かせると、画面の大きさの制約もあって、描かせた散布図が、実質的には相関表と同じことにならざるを得ないような場合が多いのである。したがって、「とりあえず」散布図を描かせてみることの効用を否定しはしないが、正式には相関表をきちんと作成すべきであろう。
第3章で扱ったように、量的データとはいっても、各変数は適切に階級が設定されるべきであり、仮にそれが既に行なわれているならば、安易に散布図を描いてみる(SASを使えば手間はかからないが)よりも、相関表を作成した方がはるかに実用的で、きれいに整理ができる。実は、第3章で扱ったような1変数でのデータの吟味は、こうした後の複雑な処理を間違いや誤解を回避して、すんなりと進めるために、極めて重要である。2変数の相関表を作成する段になって、このようなことに悩むとしたら、それは、こうした階級設定の前工程がしっかりと行われていないことの証拠なのである。
この章では、2変数データの表の基本である質的データのクロス表について説明しよう。量的データの相関表や、質的データと量的データを組み合わせた表も、このクロス表の応用となる。
2変数の質的データのクロス表で、一番基本的でかつ重要なものが、各変数が各々二つのカテゴリーをもっている場合のクロス表で、2×2クロス表と呼ばれる。四分表(four-fold table)と呼ばれることもある。例として「組織活性化のための従業員意識調査」で調べた質問を使って、クロス表を作ってみよう。いま男女の性別と二つのYes-No形式の質問
V.2. 終身この会社で仕事をしていきたいと思う。 1. Yes 2. No
V.12. 人生にゆとりがあり、楽しい。 1. Yes 2. No
との間でそれぞれクロス表を作ってみると、表5.2の(A)(B)が得られる。これは筆者がよく使う形式のクロス表である。
表5.2 クロス表の例
(A)
質問V2. 終身この会社で仕事をしていきたいと思う。 | |||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. 男 | 508 (66.67) | 254 (33.33) | 762 (100) |
2. 女 | 38 (35.19) | 70 (64.81) | 108 (100) |
計 | 546 | 324 | 870 |
(B)
質問V12. 人生にゆとりがあり、楽しい。 | |||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. 男 | 282 (37.01) | 480 (62.99) | 762 (100) |
2. 女 | 68 (62.39) | 41 (37.61) | 109 (100) |
計 | 350 | 521 | 871 |
表5.2のクロス表の中の( )内には行方向の百分率を示している。クロス表の下についている Cramer's V とかχ2については、これからこの章の中で説明していくことになるが、いずれも相関の程度を表しているものである。***はその有意確率が0.1%よりも小さいことを示している。Cramer's Vとかχ2についてまだ知らなくても、表5.2(A)からは男子従業員の方が、終身この会社で仕事をしていきたいと思う傾向があることわかるし、表5.2(B)からは女子従業員の方が、人生にゆとりがあり、楽しいと思っているという興味深い傾向が読んで取れるだろう。(→演習問題5.1)
表5.3 解釈のはっきりしているクロス表
(A)無相関の場合 (B)正の完全相関の場合
x | y | ||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. Yes | 25 | 25 | 50 |
2. No | 25 | 25 | 50 |
計 | 50 | 50 | 100 |
x | y | ||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. Yes | 50 | 0 | 50 |
2. No | 0 | 50 | 50 |
計 | 50 | 50 | 100 |
一般的には、あらゆるクロス表は最終的には2×2クロス表に帰着させるといわれるほどで、2×2クロス表をきちんと理解し、きちんと解釈できることが、クロス表利用の基本となる。もっとも2×2クロス表をきちんと理解し、きちんと解釈することは決して難しくない。もし表5.3(A)のようなクロス表が得られたら、変数 x と y との間に何の関連もないということは、はっきりしている。もし表5.3(B)のようなクロス表が得られたら、x にYesならば y もYes、x にNoならば y もNoと答えるという完全な関連があることが一目瞭然である。それでは、次の例題はどうなるだろうか。
例題) 表5.4のクロス表では周辺度数だけが与えられている。もし、x と y との間に相関が全くなく無相関であったら、度数はどうなっているはずだろうか。表5.4(A)のクロス表に度数を書き入れよ。また x と y との間に正の完全相関が見られる例も表5.4(B)のクロス表に度数を書き入れよ。
表5.4 例題の解答用クロス表
(A)無相関の場合 (B)正の完全相関の場合
x | y | ||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. Yes | 60 | ||
2. No | 40 | ||
計 | 60 | 40 | 100 |
x | y | ||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. Yes | 60 | ||
2. No | 40 | ||
計 | 60 | 40 | 100 |
ここでは、この例題のように周辺度数が具体的に与えられている例ではなく、一般の場合について解説しよう。例題の解答は、以下の解説を読めばすぐにわかるはずである。それぞれ自分で考えられたい。
クロス表で、x と y との間に相関が全くない場合、「無相関」と呼んだり、あるいは「独立」と呼んだりする。実は確率論的な意味では、無相関よりも独立の方が強い性質なわけであるが、独立ならば無相関となることがわかっている。
それでは、独立とはどのような状態のクロス表を意味するのであろうか。もし x と y の両者の間に関係がないとしたら、表5.5で示されているような関係があるはずである。
表5.5 独立の場合のクロス表
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | f11 | f10 | f1・ |
x0 | f01 | f00 | f0・ |
計 | f・1 | f・0 | n |
たとえば、いまカテゴリー y1 の占める比率に着目してみよう。x と y の両者の間に関係がなければ、カテゴリー x1 の行の度数 f1・ のうちカテゴリー y1の占める比率も、カテゴリー x0 の度数 f0・ のうちカテゴリー y1の占める比率も等しく、f・1 /n のはずである。ならば
f11=f1・・f・1 /n
f01=f0・・f・1 /n (5.1)
となっているはずである。同様に、カテゴリー y0の占める比率に着目すれば、
f10=f1・・f・0 /n
f00=f0・・f・0 /n (5.2)
クロス表で、この(5.1)式または(5.2)式が成立するとき、x と y は独立(independent)であると定義する。この独立の定義は、確率の独立の概念と一致している。なぜなら、いま確率の意味で独立とするならば、たとえば(5.1)式の第1式に対応して、
Pr (X=x1, Y=y1)
=Pr (X=x1 |Y=y1) Pr (Y=y1)
=Pr (X=x1) Pr(Y=y1)
となるからである。ここで、左辺は f11 /n、右辺は (f1・ /n)・(f・1 /n) に対応しているので、結局(5.1)式の第1式が導出されることになる。
質的データの場合には、量的データの相関(correlation)の概念に対応するものとして、関連(association)の概念がある。もっとも、両者を総称して「相関」ともいうので、クロス表の場合には関連と呼ばなければならないというものではなく、相関と呼んでもかまわない。本書では一貫して相関と呼ぶことにしよう。
実は、クロス表の場合でも、通常の相関と同様の考え方をする(第4節で後述するように、同じ相関係数を用いることもある)。ピアソンの積率相関係数の意味の説明の際に用いた第4章第3節の図4.4と対応させるとよくわかるが、
表5.6 完全相関の場合のクロス表
(A)正の完全相関 (B)負の完全相関
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | f11 | 0 | f1・ |
x0 | 0 | f00 | f0・ |
計 | f・1 | f・0 | n |
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 0 | f10 | f1・ |
x0 | f01 | 0 | f0・ |
計 | f・1 | f・0 | n |
全く相関のない独立な場合とその逆に完全相関の場合のクロス表はわかったが、通常はそのような極端なケースは希であろう。その両者の間の中間的なクロス表の場合には、相関の程度、あるいは逆に独立ではない程度を表すにはどうしたらよいだろうか。それには、独立であるときの状態から、どの程度乖離しているのかを表現すればよい。
仮に、x と y とが独立とすると、その際に期待される度数つまり期待度数は、(5.1)式と(5.2)式から
f11=f1・f・1 /n f10=f1・f・0 /n
f01=f0・f・1 /n f00=f0・f・0 /n
のはずである。この独立と仮定した場合の期待度数と実際の観測度数との差が大きければ、x と y とが独立ではない、つまり相関している度合が高くなる。そこで、O を観測度数(observed frequency)、E を期待度数(expected frequency)とするとき、次の量を考えるのである。
χ2=Σセル (O−E)2/E=ΣiΣj ( fij−fi・f・j /n)2 /(fi・f・j /n)
これはPearsonのχ2検定量と呼ばれる。ここでχ2は「カイ2乗」(chi-square)と読む。母集団で2変数 x、y が独立であるときには、この母集団からの無作為抽出標本におけるこのχ2の分布が近似的に自由度1のχ2分布にしたがうことが、Pearsonによって示されている。
したがって、仮説
H0: 変数 x と y とは独立である。
数式で書けば
H0: すべての i, j に対して fij=fi・f・j /n
を検定するためには、χ2を用いればよいことになる。これを独立性のχ2検定(χ2 test for independence)という。
しかし、χ2をそのまま相関係数として使う場合には問題がある。それは、χ2のとりうる値の範囲が、通常用いられている各種の相関係数のとりうる値の範囲 -1〜1 と一致しないのである。例えばクロス表の各セルの度数にある定数 k をかけたときには、χ2 の値χ(k)2 は同じく k 倍になってしまうのである。実際、
χ(k)2=ΣiΣj ( kfij−kfi・kf・j /kn)2 /(kfi・kf・j /kn)=kχ2 (5.3)
となる。したがって、このPearsonのχ2検定量は標本の大きさ n に比例していくらでも大きくなり、0〜∞の値をとることになってしまう。そこで、χ2を n で割ってやることで、
φ2=χ2/n
を定義してやればよい。これは、相対度数によりクロス表のχ2を求めたのと同じことになる。つまり、
ΣΣfij=n、ΣΣfi・f・j =n2 に注意すれば、
φ2=χ(1/n)2=χ2/n
=ΣΣ{ fij2−2fij fi・f・j /n+( fi・f・j/n)2}/( fi・f・j)
=ΣΣ fij2 /( fi・f・j)−ΣΣ2fij /n+ΣΣ fi・f・j /n2
=ΣΣ fij2/( fi・f・j)−1 (5.4)
導出の過程からもわかるように、この(5.4)式は、2×2以外のクロス表にも使える。さらに、2×2クロス表に関しては、この(5.4)式の分母が f1・f0・f・1f・0 となるように通分した上で、その分子を f11、f10、f01、f00 だけからなる式にして展開すると、次の形の式も得られる。
φ2=( f11 f00−f10 f01)2
/( f1・ f0・ f・1 f・0) (5.5)
どちらの式を用いて計算するにせよ、このφ2の平方根をとって、
φ係数: φ=(χ2/n)1/2
を定義する。
φ係数はこの定義からも明らかなように、
φ≧0
である。実際、(5.5)式の分子は f11 f00=f10 f01 のとき、すなわち、x と y とが独立のとき、0をとるので、このとき φ=0 となる。
他方、周辺度数 f1・、f0・、f・1、f・0 を固定したとき、(5.5)式の分子は、
ところで、(5.3)式から、各セルの総数 n が大きくなってくれば、χ2検定は有意になりやすくなってくることがわかる。経験的には、n が400〜500を超えるような大きさになると、多少なりとも相関のありそうな(つまり、φ=0ではない)クロス表はほとんど有意になってしまう。こうした「クロス表のχ2検定は n が大きいとき有意になりやすい」という性質は、分析の際に十分知っておく必要がある。しかし、このことをもってして、n の大きなクロス表のχ2検定は信用できないという人がいるが、これは正しくない。こうした見解は、検定、推定の考え方を理解しないままに、「χ2検定で有意ならば相関が高い」と短絡的に考えている人が陥りやすい誤解である。第1章で既に述べたように、標本の大きさが十分に大きければ、推定の精度が十分に向上しているのである。つまり、χ2検定の結果が教えてくれているように、例えば、φ=0.15 なる標本での値を「母集団では φ=0 だったのではないか」などと疑ってみる必要も、検定してみる必要も、もはやないのである。n の大きなクロス表のχ2検定は信用できないのではなく、そもそも必要ないのだ。n の大きなクロス表だからこそ、φの値はかなりの精度で信用ができるし、そのために、検定すること自体の意味も、必要もなくなっているのである。
表5.7に示す s×t クロス表(s≦t)のような場合には、相関はどのように考えればよいだろうか。
表5.7 s×t クロス表
x | y | ||||
---|---|---|---|---|---|
y1 | y2 | ・・・・・・ | yt | 計 | |
x1 | f11 | f12 | ・・・・・・ | f1t | f1・ |
x2 | f21 | f22 | ・・・・・・ | f2t | f2・ |
: | : | : | : | : | |
xs | fs1 | fs2 | ・・・・・・ | fst | fs・ |
計 | f・1 | f・2 | ・・・・・・ | f・t | n |
変数が名義尺度(第1章第3節参照のこと)によるものであれば、カテゴリー間に何か固有の順序が存在しているわけではない。それでもカテゴリーが二つの場合には、φ係数のように相関係数の符号を考えないのであれば問題はない。ところが、カテゴリーが3つ以上になった場合には、カテゴリーの並べ方は固定していないことになる。カテゴリーが3つのときでもその並べ方は、3個のものから3個をとる順列の個数である 3P3=3・2・1=6 通りもあることになる(第1章第5節参照のこと)。
このように、一般の s×t クロス表では、二つの変数のカテゴリーは、それぞれ必ずしも固定した順序で並んでいるわけではないので、単純に相関を考えるのは難しい。したがって、次のどちらかの方法を考えることになる。
実用的には、1の方法が直感的に容易に理解が可能であり、もっとも説得力がある。したがって、可能ならば1の方法をとることが望ましいが、それができない場合もあるので、ここでは、2の方法について考えることにしよう。
2×2クロス表と同様に s×t クロス表でも、全く相関のない場合とは、二つの変数が独立な場合である。したがって独立性の検定を考えることができる。つまり、2×2クロス表と同様に s×t クロス表でもPearsonのχ2検定量を計算することができるのである。O を観測度数(observed frequency)、Eを期待度数(expected frequency)とすると、Pearsonのχ2検定量は、
χ2=Σセル (O−E)2/E=ΣiΣj ( fij−fi・f・j /n)2 /(fi・f・j /n)
Pearsonはこのχ2の分布が近似的に自由度 (s−1)(t−1) のχ2分布になることを示した。2×2クロス表の自由度が1になることは、 s×t クロス表の自由度 (s−1)(t−1) の特殊な場合だということは容易にわかるだろう。
しかし、χ2は2×2クロス表のときと同様に、標本の大きさ n に比例して、いくらでも大きくなってしまうという性質があるので、χ2を相関係数として使うことには、2×2クロス表のときと同様の問題がある。それでは、2×2クロス表のときと同様に、
φ=(χ2/n)1/2
で定義したφ係数が使えるだろうか。無関連のときは、χ2が0になるので、φ=0 となるので問題はない。完全相関のときはどうだろうか。
そこでまず、 s×t クロス表での完全相関の例を考えてみよう。s=t のときの代表的な例は、対角線上のセルだけが度数をもち、他のセルが全て度数0となる表5.8のようなクロス表となる。この表5.8が完全相関を示していることは、前章の量的データの散布図からも納得できるだろう。相関表の場合には、正の完全相関というと、この表5.8の場合に限られるわけだが、さらに、カテゴリー間に何か固有の順序が存在しているわけではないときには、この表5.8の変数 x のカテゴリーの順序を入れ替えたもの、変数 y のカテゴリーの順序を入れ替えたものも完全相関となっている。すなわち、各行、各列において、度数0ではないセルが1個だけのとき、完全相関というのである。
表5.8 完全関連のクロス表の一例(s=t のとき)
x | y | |||||
---|---|---|---|---|---|---|
y1 | y2 | y3 | ・・・・・・ | ys | 計 | |
x1 | f11 | 0 | 0 | ・・・・・・ | 0 | f11 |
x2 | 0 | f22 | 0 | ・・・・・・ | 0 | f22 |
x3 | 0 | 0 | f33 | ・・・・・・ | 0 | f33 |
: | : | : | : | : | : | |
xs | 0 | 0 | 0 | ・・・・・・ | fss | fss |
計 | f11 | f22 | f33 | ・・・・・・ | fss | n |
しかし、s<t のときは、こう単純にはいかない。完全相関とは、y の値が決まると、x の値も決まるということであると考えて、
表5.9 完全相関のクロス表の一例(s<t のとき)
x | y | ||||
---|---|---|---|---|---|
y1 | y2 | y3 | y4 | 計 | |
x1 | f11 | 0 | 0 | 0 | f1・ |
x2 | 0 | f22 | f23 | 0 | f2・ |
x3 | 0 | 0 | 0 | f34 | f3・ |
計 | f・1 | f・2 | f・3 | f・4 | n |
このとき、φ係数を計算すると、(5.4)式が使えて、
φ2=f112/( f1・f・1)
+f222/( f2・f・2)
+f232/( f2・f・3)
+f342/( f3・f・4)−1
=1+f22/f2・+f23/f2・+1−1=2
となる。一般的に、s×t クロス表(s<t)のφ2の値は、完全相関のときに1ではなく s−1 となるのである。そこで、完全相関のときに1の値をとるように、次のような係数を考える。
V={φ2/(s−1)}1/2 s≦t
これは、クラマーの V 係数(Cramer's V)と呼ばれるもので、これまでのことからもわかるように、
0≦V≦1
という、相関係数としてふさわしい性質をもっている。2×t クロス表のとき
V=φ
という性質があり、もちろん、2×2クロス表のときも、両係数は一致するので、2×2クロス表のときも含めて、一般にクロス表の相関係数としては、統一的にクラマーの V 係数を用いるようにしておくとよい。(表5.2(B)で、V=-0.17 と負の値を示している理由については、第5節(2)を参照のこと。)
実は2×2クロス表に対してもピアソンの積率相関係数を適用することができる。考え方としては、2値質的データとして扱おうというのである。そこでいま表5.10のように、一方のカテゴリーに0、他方のカテゴリーに1という数値を与え、ピアソンの積率相関係数を適用してみよう。
表5.10 2×2クロス表
x | y | ||
---|---|---|---|
1 | 0 | 計 | |
1 | f11 | f10 | f1・ |
0 | f01 | f00 | f0・ |
計 | f・1 | f・0 | n |
x=f1・/n
y=f・1/n
sx2=(1−f1・/n) f1・/n=( f0・/n)( f1・/n)
sy2=(1−f・1/n) f・1/n=( f・0/n)( f・1/n)
sxy=Σ xi yi /n−x・y=f11/n−x・y=f11/n−( f1・/n)( f・1/n)
であるから
rxy=sxy/sxsy
={ f11/n−( f1・/n)( f・1/n)}
/{( f0・/n)( f1・/n)( f・0/n)( f・1/n)}1/2
=(nf11−f1・f・1)
/( f0・ f1・ f・0 f・1)1/2
={( f11+f10+f01+f00) f11−( f11+f10)( f01+f11)}
/( f0・ f1・ f・0 f・1)1/2
=( f11 f00−f10 f01)
/( f0・ f1・ f・0 f・1)1/2 (5.6)
この2乗は(5.5)式のφ2と一致するので、
rxy2=φ2=V2
2×2クロス表すなわち四分表に対して適用したピアソンの積率相関係数は、四分点相関係数(four-fold point correlation coefficient)、略して、点相関係数(point correlation coefficient)、あるいは四分積率相関係数または四分表に対するピアソンの相関係数といわれることもある。
ピアソンの積率相関係数 rxy の絶対値は両変数の正の1次変換によって変わらない(相関係数の性質2)ので、二つのカテゴリーが数値データとして与えられていさえすれば、このような rxy2=φ2 という関係は保証される。
2×2クロス表の場合には、さらに、ケンドールの順位相関係数τb(Kendall's τb)との間に、τb=rxy という関係もある。いまケンドールの順位相関係数の考え方をクロス表にそのまま適用してみよう。
ΣA=f11 f00
ΣB=f01 f10
さらに、ΣC について考えてみよう。同じセルに属する二つの個体(観測値)のつくる対は、x についても y についても同順位なので、各セル (i, j) に属する fij 個の個体のすべての組み合わせ
fijC2=fij ( fij−1)/2
通りの対はすべて同順位となる。またセル (1, 1) と (1, 0) に属する個体間の対 f11・f10 通りも x について同順位であるし、セル (0, 1) と (0, 0) に属する個体間の対 f01・f00 通りも x について同順位である。こうしたことから、
ΣC=f11( f11−1)/2+f10( f10−1)/2+f01( f01−1)/2+f00( f00−1)/2+f11 f10+f01 f00
2ΣC=f112+2f11 f10+f102+f012+2f01 f00+f002−f11−f10−f01−f00
=( f11+f10)2+( f01+f00)2−n
=f1・2+f0・2−n
よって、
n(n−1)−2ΣC=n(n−1)−( f1・2+f0・2−n)=n2−f1・2−f0・2=( f1・+f0・)2−f1・2−f0・2=2f1・ f0・
同様にして、ΣDについても、
ΣD=f11( f11−1)/2+f10( f10−1)/2+f01( f01−1)/2+f00( f00−1)/2+f11 f01+f10 f00
n(n−1)−2ΣD=2f・1 f・0
したがって、τb の定義と(5.6)式から、
τb=( f11 f00−f10 f01) /( f0・ f1・ f・0 f・1)1/2=rxy
このように、2×2クロス表では、ピアソンの積率相関係数やケンドールの順位相関係数を適用しても、その絶対値はφ係数そして V 係数に一致する。つまり、2×2クロス表については、相関の大きさを測ることについては、これらの相関係数の間で一致が見られている。
例題) 表5.11の9枚の2×2クロス表の相関係数として V 係数を求めよ。(V=φ、V2=φ2=r2=τb2、r=τb に注意)
表5.11 様々な相関係数の2×2クロス表
(1) V= (2) V= (3) V=
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 55 | 45 | 100 |
x0 | 45 | 55 | 100 |
計 | 100 | 100 | 200 |
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 60 | 40 | 100 |
x0 | 40 | 60 | 100 |
計 | 100 | 100 | 200 |
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 65 | 35 | 100 |
x0 | 35 | 65 | 100 |
計 | 100 | 100 | 200 |
(4) V= (5) V= (6) V=
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 70 | 30 | 100 |
x0 | 30 | 70 | 100 |
計 | 100 | 100 | 200 |
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 75 | 25 | 100 |
x0 | 25 | 75 | 100 |
計 | 100 | 100 | 200 |
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 80 | 20 | 100 |
x0 | 20 | 80 | 100 |
計 | 100 | 100 | 200 |
(7) V= (8) V= (9) V=
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 85 | 15 | 100 |
x0 | 15 | 85 | 100 |
計 | 100 | 100 | 200 |
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 90 | 10 | 100 |
x0 | 10 | 90 | 100 |
計 | 100 | 100 | 200 |
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | 95 | 5 | 100 |
x0 | 5 | 95 | 100 |
計 | 100 | 100 | 200 |
《解答》 まず、V=0 (独立)のときの期待度数を求めてみよう。9枚のクロス表はすべて同じ周辺度数なので、期待度数も同じになり、表5.12(A)に示すような期待度数になる。つまり、どのセルにも同じ度数50が入ることになるので、これを a と置くことにしよう。すると、実は9枚のクロス表にある観測度数は、表5.12(B)のように表現することができる。
表5.12 期待度数と観測度数
(A)V=0 (独立)のときの期待度数(a=50)
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | a | a | 2a |
x0 | a | a | 2a |
計 | 2a | 2a | 4a |
(B)クロス表(1)〜(9)にある観測度数(a=50)
x | y | ||
---|---|---|---|
y1 | y0 | 計 | |
x1 | a+b | a−b | 2a |
x0 | a−b | a+b | 2a |
計 | 2a | 2a | 4a |
9枚のクロス表のこの性質を使って、9枚のクロス表の相関係数をまとめて計算してしまおう。
χ2=b2/a+b2/a+b2/a+b2/a=4b2/aこれまで述べてきたようなクロス表を作成し、独立性のχ2検定とV係数などの相関係数を求めることは、SASを使えば非常に簡単にできる。それには、第2章第6節で単純集計をする際に用いたFREQプロシジャのTABLES文中の変数の指定の仕方を変えるだけでよい。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC FREQ DATA=libname.永久SASデータ・セット名本体; TABLES 変数リスト*変数リスト/CHISQ; [OPTIONS NOCENTER;] RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC FREQ DATA=SAVE.JPC; TABLES I1*V2/CHISQ; OPTIONS NOCENTER; RUN; |
CMS版SAS |
---|
PROC FREQ DATA=永久SASデータセット名; TABLES 変数リスト*変数リスト/CHISQ; [OPTIONS NOCENTER;] RUN; |
例) |
---|
PROC FREQ DATA=SAVE.JPC; TABLES I1*V2/CHISQ; OPTIONS NOCENTER; RUN; |
やはりPC版SASのプログラムの1行目を削除すると、形式的にはCMS版SASのプログラムと同じになる。
独立性のχ2検定と V係数などの相関係数を求めるために、TABLES文のオプションとして、ここでは /CHISQ を指定してあるが、後で触れるようにさらに色々なオプションを追加指定することができる。
一般に、TABLES文で「変数1*変数2」と指定すると、表5.13の形式のクロス表が作られる。
表5.13 TABLES文で「変数1*変数2」と指定したとき作成されるクロス表の一般形式
さらに、TABLES文で「変数リスト*変数リスト」を指定すると、「*」をはさんでできる変数の組合せすべてについてクロス表が作られる。例えば、
TABLES (A B)*C; | は TABLES A*C B*C; | と指定したのと同じこと |
TABLES (A B)*(C D); | は TABLES A*C B*C A*D B*D; | と指定したのと同じこと |
プログラム例を実行すると、表5.14のようなクロス表が作成されるはずである。しかし、実際には、このクロス表をディスプレイ画面で見ることはできない。これはOUTPUTウィンドウに出力されたものをファイルに一旦保存してから、筆者が編集してつなぎあわせたものである。
表5.14 プログラム例で作成されるクロス表
注) ただし、ディスプレイ画面では、このクロス表は1行ずつに分割されてOUTPUTウィンドウに表示される。
一応、この形式のクロス表について解説しておくと、このクロス表では各セルに表示されている数値は、クロス表の左上に表示されているとおり、
Frequency | ・・・・・・度数 |
Percent | ・・・・・・相対度数 |
Row Pct | ・・・・・・行相対度数 |
Col Pct | ・・・・・・列相対度数 |
そこで、TABLES文で、必要ではないものを表示させない次のようなオプションを使うことになる。
NOFREQ | ・・・・・・度数を表示しない |
NOPERCENT | ・・・・・・相対度数を表示しない |
NOROW | ・・・・・・行相対度数を表示しない |
NOCOL | ・・・・・・列相対度数を表示しない |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC FREQ DATA=SAVE.JPC; TABLES I1*V2 /CHISQ NOPERCENT NOCOL; OPTIONS NOCENTER; RUN; |
図5.1 SASによるクロス表
この場合、2×2クロス表なので、クラマーの V 係数(Cramer's V)とφ係数(Phi Coefficient)はともに0.215で等しい。χ2 (Chi-Square)は自由度(DF) 1で、その値(Value)は40.112となる。独立性のχ2検定の有意確率(Prob)は0.000、つまり、有意水準を0.1%に設定してある場合でも、有意であり、独立性の仮説は棄却されたことになる。
またオプションとしてCHISQを指定してあるときは、それに追加的に、次のようなオプションを指定して、クロス表のセル中に表示させることができる。
EXPECTED | ・・・・・・「期待度数」を表示する |
DEVIATION | ・・・・・・「度数−期待度数」を表示する |
CELLCHI2 | ・・・・・・「(度数−期待度数)2/期待度数」を表示する |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC FREQ DATA=SAVE.JPC; TABLES I1*V2 /CHISQ NOPERCENT NOCOL DEVIATION; OPTIONS NOCENTER; RUN; |
ここで注意が必要なのは、SASでは2×2クロス表の場合に限って、「φ係数」「V 係数」でも負の相関があった場合には、負の値をとるようになっているということである。その意味では、このピアソンの積率相関係数を出力するようになっているともいえる。しかし、2×2以外のクロス表では、本来の定義を用いて、正の値しか出力されない。本来のφ係数、V 係数の定義や背景となる考え方からして、負の値をとることは間違っているが、ユーザーとしては、そのことを知った上で、2×2クロス集計表の場合、出力される「φ係数」「V 係数」の値をそのまま使うか、あるいは絶対値を使うかを決めれば良い。この章では、SASの実行結果との対応をつけるために、出力された数値を負の値でもそのまま使っている。
ところで、変数の数が増えてくると、クロス表を1枚1枚見ていくのは大変な作業になってくる。「組織活性化のための従業員意識調査」では、Yes-No形式の75変数を調べているが(詳しくは第6章の資料参照)、過去に行ってきた調査でもだいたい100変数前後の調査を行ってきている。仮に100変数のデータであったとすると、総当り方式では、100×100=10,000枚。このうち、同じ変数同士のクロス表100枚は見る必要がないし、同じ変数の組み合せのクロス表が2枚ずつ含まれているので、これらはどちらか一方だけ見ればよいことにしても、なんと (10,000-100)/2=4,950枚、実に5,000枚も見なくてはならない計算になる。メインフレームであれば、この程度の集計作業をさせてもあっという間に結果が出力されてくる。問題なのは、それを読む人間の能力の方に限界があるということである。まさに限定された合理性である。やってみればすぐにわかることだが、直感に訴える2×2クロス表でも100枚読むのは大変な作業である。一般の s×t クロス表では1枚1枚のクロス表の解読に時間がかかり、絶望的な作業になる。ラインプリンターに出力した場合、通常、用紙1ページに1枚のクロス表が印刷されるので、約5,000枚ということは、実にラインプリンター用紙の段ボール箱2〜3箱分に相当することになる。私の知る範囲で、これだけの量のクロス表の山を読みこなした人間は存在しない。だいたいラインプリンター用紙をめくるだけで、腕が筋肉痛になってしまう。内容を理解するなどもはや不可能である。しかし、総当りで変数間の関係をつかんでおくことは、分析に際して重要なことなのである。
それでは、筆者はどのようにしてきたのであろうか。それは
CORRプロシジャを使えば、PC版SASのプログラム例でいうと、
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC CORR NOSIMPLE DATA=SAVE.JPC; VAR TII1 -TII7; WITH TII1 -TII3; OPTIONS NOCENTER; RUN; |
図5.2 SASによるクロス表の相関係数行列
この図5.2のようなSASによって出力されたクロス表の相関係数行列は、そのままでは使わない。このOUTPUTウィンドウを一旦ファイルに保存してから、そのファイルを編集して、表としての形式を整えて、表5.15のような表を作成するのである。ここで、有意確率は数字のままでは、視覚的にピンとこないので、記号化しておくとともに、各変数には第6章資料Dの入力フォーマットにある変数ラベルを使って、簡単な内容説明をしておく。
表5.15 クロス表の相関係数によるまとめの例
II1. 常に仕事 改善心掛 |
II2. 先例に拘 らず仕事 |
II3. 境界に拘 らず仕事 |
II4. 自分他社 でも通用 |
II5. 上司に素 直に従う |
II6. 経営方針 考え仕事 |
II7. 上司から 権限委譲 | |
---|---|---|---|---|---|---|---|
II1. 常に仕事 改善心掛 | 1.00000 902*** | 0.20641 901*** | 0.23053 900*** | 0.19725 897*** | -0.11947 900*** | 0.31303 898*** | 0.25682 896*** |
II2. 先例に拘 らず仕事 | 0.20641 901*** | 1.00000 906*** | 0.25468 903*** | 0.06917 901* | -0.08764 904** | 0.14707 901*** | 0.14303 901*** |
II3. 境界に拘 らず仕事 | 0.23053 900*** | 0.25468 903*** | 1.00000 904*** | 0.18074 899*** | -0.07025 902* | 0.23161 899*** | 0.21099 898*** |
まず例から始めよう。いま「組織活性化のための従業員意識調査」で調べた次の二つのYes-No形式の質問に対する回答のクロス表を作ってみよう。
IV7. | 指示が出されても、やり過ごしているうちに、立ち消えになることがある。 | 1. Yes 2. No | |
VI7. | 福利厚生面は充実している。 | 1. Yes 2. No |
表5.16 指示のやり過ごしと福利厚生のクロス表
IV7 指示やり 過ごし可 | VI7 福利厚生面は充実 | ||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. Yes | 267 (45.56) | 319 (54.44) | 586 |
2. No | 205 (68.56) | 94 (31.44) | 299 |
計 | 472 | 413 | 885 |
こうした他変数との比較と表5.16とをふまえれば、このクロス表の示唆する傾向は明らかである。つまり、指示のやり過ごしができないところでは福利厚生面が充実しているし、逆に、指示のやり過ごしができるところでは福利厚生面が充実していないというのである。総数が885人もいると、χ2検定は有意になりやすいのは確かだが、表5.16のクロス表を見ても、その傾向ははっきりしている。要するに、福利厚生面がしっかりしているところは、指示もしっかりしているということなのだが……。
こうした、どうも常識的に納得できない、根拠のはっきりしない調査結果がでた場合、これぞ事実発見と手放しで喜ぶのはまだ早い。だいたいは何か他に、よりもっともらしい理由があるもので、そうした常識的な可能性をしらみつぶしにしてみるまでは結論は出せない。
そこで試しに、調査対象企業を公益事業関係とそれ以外の流通業などに分けた上で、別々にクロス表を作ってみると、表5.17のようになった。まだどちらのクロス表も有意な負の相関関係があるが、相関係数であるクラマーの V は随分と小さくなった。つまり、指示のやり過ごしと福利厚生面での充実との相関は随分と小さくなっている。しかも、表5.17のクロス表をよく見ると、非公益事業では、指示のやり過ごしが多く、福利厚生面ではまだ充実していないということがわかる。それに対して、公益事業では、福利厚生面は充実しているし、指示のやり過ごしも非公益事業に比べれば少なくなっているということがわかる。
表5.17 指示のやり過ごしと福利厚生のクロス表
(A)公益事業 (B)非公益事業
IV7 指示やり 過ごし可 | VI7 福利厚生面は充実 | ||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. Yes | 223 (66.57) | 112 (33.43) | 335 |
2. No | 187 (76.95) | 56 (23.05) | 243 |
計 | 410 | 168 | 578 |
IV7 指示やり 過ごし可 | VI7 福利厚生面は充実 | ||
---|---|---|---|
1. Yes | 2. No | 計 | |
1. Yes | 44 (17.53) | 207 (82.47) | 251 |
2. No | 18 (32.14) | 38 (67.86) | 56 |
計 | 62 | 245 | 307 |
表5.16に見られる高い相関は、このように性質の異なる2群、公益事業と非公益事業とを合わせて集計したために出現したものと考えられそうである。常識的に考えてみると、巨大な設備や装置を管理運用している公益事業で、指示のやり過ごしが少ないのは当然であるし、独占や地域独占を前提としている公益事業が福利厚生面を充実させる余裕があるというのもまた当然かもしれない。これとてまだ推測の域を出ないわけで、フォロー・アップ・ヒアリングや追試を必要としてはいるが、指示のやり過ごしと福利厚生という直接的には本来無関係なはずの変数が、実はともに企業の業種、業態、市場環境などとは密接に結び付いていそうだということは、この表5.17でも十分に示されているといえるだろう。
いまの分析は、やり過ごしと福利厚生という2変数のクロス表に、さらに第3の変数として一種の「業種」を導入して行なったものである。このように、これまでに扱ってきたような2変数のクロス表に、さらに第3の変数を導入して、変数間の関係を明らかにしていく方法を一般に、エラボレイション(elaboration)と呼ぶ。より具体的にいえば、確認したいと思っている独立変数xと従属変数yとの間の関連を示すクロス表に、第3の変数 t を導入して、3重クロス表を作成するのである。このときの第3変数 t のカテゴリー(t1, t2, ...)ごとに作られた x と y のクロス表の相関を分割相関(split correlation)、または、条件相関(conditional correlation)、層別相関(stratified correlation)と呼ぶが、この分割相関を調べることで、変数間の関係が明らかにされるのである。
既に(1)の表5.16、表5.17で示したようなケース、極端には x と y との間には相関が見られるのに、分割相関が全くない表5.18のようなケースは何を意味しているのだろうか。これには次の二つの可能性が考えられる。
表5.18 極端にした架空例
(A)公益事業+(B)非公益事業=(C)全体
IV7 | VI7 | ||
---|---|---|---|
Yes | No | 計 | |
Yes | 9 | 1 | 10 |
No | 81 | 9 | 90 |
計 | 90 | 10 | 100 |
IV7 | VI7 | ||
---|---|---|---|
Yes | No | 計 | |
Yes | 9 | 81 | 90 |
No | 1 | 9 | 10 |
計 | 10 | 90 | 100 |
IV7 | VI7 | ||
---|---|---|---|
Yes | No | 計 | |
Yes | 18 | 82 | 100 |
No | 82 | 18 | 100 |
計 | 10 | 100 | 200 |
Cramer's V=0 | Cramer's V=0 | Cramer's V=-0.64 |
χ2=0 | χ2=0 | χ2=81.92*** |
これは、第3の変数 t が x と y に対する先行変数(antecedent variable)になっている場合である。図式化すれば、
x ← t → y
ということになり、疑似相関(spurious correlation)を説明することになる。疑似相関とは、 x と y には因果関係が存在せず、実際、x を人為的に変化させても y に変化は生じない。さきほどの(1)の例もこの疑似相関に相当する。つまり、「福利厚生を充実させると、指示のやり過ごしが減少するように見えるけれども、実は、これは大部分が、『業種』という先行変数があるための見かけ上の疑似相関であると説明される」のである。したがって、この調査結果から、指示のやり過ごしを減らすためには、福利厚生を充実させればよいのだと、短絡的に考える人がいれば(そんな人はいないと思うが)、その人は見かけ上の疑似相関に惑わされて、真の因果関係を見過ごしたということになる。
しかし、このような x と y との間には相関が見られるのに、分割相関がない場合にはもう一つ別の次のような可能性も考えられるので注意がいる。
これは、第3の変数 t が、x と y との間の媒介変数(intervening variable)になっている場合で、図式化すると次のようになる。
x → t → y
間接的な因果関係をより詳しく解釈したものである。しかしこの場合には、直接的には因果関係がないとはいえ、間接的には因果関係があるので、見かけだけの疑似相関とは異なる。
ただし、(a)のタイプになるか、(b)のタイプになるか、つまり因果関係の矢印の方向がどうなるかは常識や学問的蓄積等を動員して、思考実験によって行う以外にはない。つまり、それは統計処理上の問題ではなく、論理の問題である。
最後に、(a)(b)とは逆のケースとして、次の(c)があるのであげておこう。
もとの x と y との相関が t1 と t2 とによって程度が異なっていることが発見される場合である。極端な場合には、全体の単純相関は0であるが、それが実は、相反する方向の二つの分割相関の合成の表面的結果であったことを示している。つまり、疑似無相関(spurious non-correlation)である。疑似無相関の場合には、全体では無相関であっても、実際には適当にグループ化、層別化(stratification)を行うことで、各グループ内での相関を明確に示すことができる。
3重クロス表を作成し、V 係数のような相関係数を求めることは、SASのFREQプロシジャを使えば非常に簡単にできる。
PC版SAS |
---|
LIBNAME libname '¥パス名'; PROC FREQ DATA=libname.永久SASデータ・セット名本体; TABLES 変数1*変数2*変数3 [/オプション]; [OPTIONS NOCENTER;] RUN; |
例) |
---|
LIBNAME SAVE '¥MYDIR'; PROC FREQ DATA=SAVE.JPC; TABLES KCODE*IV7*VI7 /CHISQ NOPERCENT NOCOL; OPTIONS NOCENTER; RUN; |
CMS版SAS |
---|
PROC FREQ DATA=libname.永久SASデータ・セット名; TABLES 変数1*変数2*変数3 [/オプション]; [OPTIONS NOCENTER;] RUN; |
例) |
---|
PROC FREQ DATA=SAVE.JPC; TABLES KCODE*IV7*VI7 /CHISQ NOPERCENT NOCOL; OPTIONS NOCENTER; RUN; |
CMS版SASのプログラム例は、形式的にPC版SASのプログラム例の1行目を削除したものになる。このプログラムによって、変数1の各カテゴリーごとに、変数2*変数3のクロス表が作られることになる。ただし、全体のクロス表はこれでは作られないので、別に作る必要がある。(→演習問題5.1)
5.1 エラボレイション 第2節で表5.2のクロス表を作成するときに使用した質問V2と質問V12との間でクロス表を作成するとともに、第3の変数として、性別に関する質問I1を用いた3重クロス表を作成すると次のようになった。このSASの出力(一部省略)をどのように理解できるかを述べよ。
5.2 疑似無相関 全体の相関は0であるが、それが実は、相反する方向の二つの分割相関の合成の表面的結果であったというような疑似無相関のもっともらしい架空例を考え、表5.16、表5.17、表5.18を参考にしてクロス表を作成せよ。
本書では、統計調査の実際の姿をできるだけ具体的かつ明確にイメージしてもらうために、統計処理、分析に用いるデータ例をはじめ、SASプログラムの例なども、一貫して「組織活性化のための従業員意識調査」を素材としている。この調査手順と方法を、実際に用いられた詳細な資料とともに取り上げよう。もっとも、この章は単に具体例を提示するというだけではなく、もともと統計調査マニュアルを意図して書かれているので、読者が近い将来、自分の手で統計調査を企画、実施する際のマニュアルとして生かされることを希望している。
「組織活性化のための従業員意識調査」自体は1986年以来毎年6月〜翌年1月の8カ月をかけて、(財)日本生産性本部経営アカデミー「人間能力と組織開発」コースを舞台にして、筆者によって繰り返し繰り返し企画・実施されてきたものである。1991年までに、のべで約50社、約5,000人を調べてきたことになる。
この調査では、企業間での横断的な研究グループを作り、このメンバー企業の間で同時に同一の意識調査を行い、企業間・職場間の比較集計を行う。調査結果の企業間比較によって自社の抱える問題点を探り、他社の実例や知恵も借りながら、自社等の事例研究を行うというプロセスを繰り返すことで、研究グループを中心として組織の活性化に関する問題発見を図るプログラムとなっている。この「組織活性化のための従業員意識調査」では、従業員の意識調査を行なうことを契機として問題発見プロセスが進んでいくのである。
そのうち本書で扱うのは、調査研究プロセスの前半に相当する質問票調査、いわゆるアンケート調査の企画、設計から集計、分析に至るまでであるが、集計、分析については、既に第2〜5章で扱ってきたので、この章では通常の社会調査のプロセスの区分で言うと、基本設計、調査票・標本設計、現地調査を扱うことにする。
それでは、「組織活性化のための従業員意識調査」の手順を、順を追って説明していこう。実際の調査手順は図6.1のようなフローチャートにまとめることができる。このフローチャートにそって、ある年(19XX年)に行われた「組織活性化のための従業員意識調査」で、実際に使用された資料をこの章末に掲載してある。A〜Fの資料が調査のどの段階で使用されたものかは、図6.1のフローチャートの中に示してあるので、参考にしてほしい。ただし、調査内容には非公開を前提にしているものも含まれており、会社名等、公開して各方面にご迷惑のかかるおそれのあるものについては、一部、名前を伏せたり、特定不可能なように内容を変えたりしている。
図6.1 「組織活性化のための従業員意識調査」の前半部分(質問票調査)の調査手順と使用資料
まず調査を企画する際には、調査の目的を明確にする必要がある。具体的に、経験、一般常識、あるいは理論に基づいて仮説を立てると、調査目的は次第に明確化、具体化してくる。
この際に注意が必要なのは、多くの仮説をそれぞれ少数の調査項目で確かめるよりも、少数の仮説を多数の調査項目で確かめる方が調査の効率も高く、また分析にも深みが出るということである。したがって、調査目的となる仮説は、できるだけ絞った方がよい。多くの仮説が互いにきちんとした関係も与えられずに並立しているような場合は、仮説を立てるという立場からすると努力不足である。モデルは単純で、明解でなければ説得力をもたないし、モデルとはいえないのである。
調査の目的を確立し、統計調査の基本的な方針を立てるためには、まず入念なヒアリング調査から始めるのがよい。事前にかなりはっきりした目的や知識をもっているような場合でも、実際の調査対象予定者に対してヒアリング調査を行うことは、調査票の設計等を考えると極めて有益である。ヒアリング調査は面接調査の一種であるが、第1章第4節で述べた調査票を用いた面接調査法が、調査票を用いることで、(a)質問の仕方、(b)回答の仕方、を厳格に定め、統一していて、指示的(directive)面接調査と呼ばれるのに対して、不定型で調査者の自由に任されているために、非指示的(non-directive)面接調査と呼ばれる。
ただし、実際的には、非指示的なヒアリング調査に指示的な面接調査を組み合わせて行った方が効率的である。「組織活性化のための従業員意識調査」では、章末資料Aにあるように、各組織が抱える問題点や各メンバーの問題意識を探る非指示的なヒアリング調査を行っているが、その前に、それと抱合せの形で、「基礎調査票」を使って、指示的な面接調査も必ず行っている。これは、一つには、ヒアリング調査の際の背景的知識を獲得するということであるが、この目的とともに、企業によって異なる「言葉」や「概念」を明確に認識し、ヒアリング調査の際に、各社ごとの「方言」をできるだけ「標準語」に翻訳しながら会話することが出来るようになるために必要な作業なのである。こうした一連の作業とヒアリング調査を通じて、はじめて人々が各企業、各組織の中で、方言を使い、独特な論理を使って動いているということが、実感として認識されるのである。また、こうしたプロセスを経なければ、複数の企業、部門で共通して使用が可能な質問調査票を作ることができない。一般の社会調査、世論調査と比較しても、経営組織調査が難しい最大のポイントは、企業活動の核心的部分に近付けば近付くほど、企業によって「方言」が多く使われていて、しかもそのことに内部の人間が気づいていないという点である。
そうしたこともあって、この段階で、調査対象予定の者の一部に対して、入念なヒアリング調査を行うことが望ましい。質問票調査によって検証してみたい仮説がある場合には、ヒアリング調査によって、仮説の妥当性を(仮説が、調査対象にとって意味のあるものかどうかも含めて)ある程度確かめておく必要がある。
調査によって出てくる統計数字は、こうしたヒアリング調査による心証の精度を上げるものに過ぎない、という程度に考えていた方がよい。
それでは、「組織活性化のための従業員意識調査」で、ヒアリング調査が具体的にどのように行われるのかをまとめておこう。ヒアリング調査は章末資料Aの基礎調査票を併用しながら行われる。「組織活性化のための従業員意識調査」では、調査の開始に当って、例年6月に第1回の合宿が行われる。章末資料Aにもあるように、第1回合宿の第1目標は、今後のグループ研究の討議の際の基礎となるキーワード、コンセプトの認識をできるだけ統一しておくこと、もしくは認識の違いを明確にしておくことにある。もちろん親睦が大事なわけだが、ただなかよくなるのではなく、各々の企業の中では、その企業の方言を使って会話が行われていること、そして、「うち常識=よその常識」という暗黙の前提あるいは仮説が間違いであることをある程度気付かせることが大切である。実際には調査のプロセスが進んで、質問票調査の統計数字が出てくるまでは、なかなか納得の出来ないものらしいが、この最初の合宿は、そのきっかけとなるように行われる必要がある。
合宿は、例年3日間にわたって、グループのメンバー全員をホテルに缶詰にして、公式には12時間前後、実際には非公式にも夜、アルコールが入ってから深夜に至るまで行われるので、それプラス8時間程度はヒアリングが行われる。このヒアリングでは、まず1人1時間程度を目安にしてもらって、会社の概要紹介と会社の特長と問題点を報告してもらう。報告は一方的に発表するのではなく、質問がある人は誰でも、いつでも、その場で質問が出来るようにしておく。この段階では、第三者として入っている研究者が、率先して質問していく必要があるので注意がいる。何回かこうした調査を繰り返してみると自然にわかってくることだが、業種や企業の個性によっても、使われる状況や意味の異なる用語、概念が必ずあるので、そうした点をこまめに質問することで、次第に議論の糸口が見えてくるものである。そうした経験がたとえなくても、知ったふりをしないで、素朴に質問を積み上げていくことが肝要である。
会社の概要紹介は所定の用紙に則った形で要点だけということになっているが、あらかじめ、章末資料Aにもある所定の基礎調査票に記入してきた上で概要紹介を行うので、情報量としては十分なものとなる。質問が許されているので、通常公表されているデータを読むのとは異なり、その企業の実像や雰囲気を知ることが出来る。基礎調査票にある項目は例年の合宿の際に、こうしたグループ研究で話題になった事柄、あるいは、当初の基礎調査票には記入欄がなかったために、その場で黒板などを使って説明が行われたようなことを年々追加しながら形成されてきたものである。言い換えれば、最初に明らかにしておかなかったために、議論の混乱の原因となったものを公約数的にまとめたものということもできる。
こうした基礎知識を基にして、会社の特徴と問題点を会社の活性化に対する自分の問題意識を中心にして報告してもらう。これは非指示的なヒアリング調査であるので、所定の用紙は用いないが、身近なエピソードも交えて、活性化に対する自分の考え、問題意識をまとめてもらい、一応口頭だけではなく、紙に書いてきてもらうことにしている。これは「書く」という作業が、自分の考えをまとめるために有用だからである。
章末資料Aの基礎調査票の組織図は、質問票調査の調査対象となる組織単位を選ぶためにも用いられるもので、調査開始時期に当るこの第1回合宿の段階で、早めに各自が想定している調査対象組織単位を表示してもらうことになる。これは、ヒアリング調査は一般論を話されても調査にはならないので、具体的に、企業のどの部分を念頭に話しているのかを明らかにしておく必要があるからである。さらにいえば、実は今日の大企業では企業規模が非常に大きいために、1人の人が説明できる「企業」は実際の企業のごく一部だけにすぎない。後で行われる質問票調査は、こうした「説明可能」な部分だけに対象を限定して行われる。そうしなければ、統計数字のもっている意味、つまり実態を明確に確定することは出来ないからである。したがって、自分の所属部署を明示の上、調査してみたいと思っている組織単位をいくつか設定、図示してみてもらい、その際、できれば組織単位ごとの大まかな人数も記入してもらい、「説明可能」な部分を確認してもらうのである。
具体的には、人員規模50人以上100人未満のホワイトカラーの集団を組織単位として、一つまたは複数選んでもらうことになる。ここで、「組織単位」とは組織図上で同一の上司を持つ職場もしくは職場の集合で、例えば、図6.2のような組織図では細線で囲まれているような各レベルの部分に相当するのだということをあらかじめきちんと説明しておく。
図6.2 「組織単位」の設定
このように、単に「職場」とはせずに、組織単位を設定するのは、分析の段階で、組織単位間の比較分析も行うわけだが、職場間比較では、各職場の人員規模に開きがありすぎるために(場合によっては10倍もの差がある)、統計的には比較が難しいためである。ただし、性質の全く異なる職場を一つの組織単位に押し込めるようなことはしない。その場合には、たとえ人員規模が小さくても、組織単位は別立てにする。
この第1回合宿の段階で、調査スケジュールの見通しを明らかにしておくことは重要である。前年度を踏襲する形で行うと、どういう調査スケジュールになるのかを示し、そのスケジュールで何か問題はないか、あるいは、改善すべき点はないかをこの段階で既に確認しておく必要がある。おおざっぱにいえば、「組織活性化のための従業員意識調査」では例年第1回合宿の後、7月に2回のグループ研究を行い、質問案の検討・討議を行った後で、筆者がそれらを取りまとめる形で質問調査票に仕上げ、8月末から9月はじめにかけて、1週間程度をかけて調査票配布・回収が行われる。集計は1週間もあればできるので、比較的早く調査結果をフィードバックすることが出来る。フィードバックされる集計表は、具体的には次のようなものである。
調査票の設計、特に質問文の作成は、もっとも注意深く行われるべき作業の一つであり、また、もっとも面白い作業の一つでもある。「組織活性化のための従業員意識調査」の場合には、このプロセスは、各企業の担当者から質問文の候補を募る形で始められる。つまり、自分の組織を調査するにあたって、これだけは調べてほしいこと、これだけは知りたいということを、各自が自分で質問文として考えてくるように「課題」として与えるのである。
この作業は少なくとも2度繰り返される。1度目は各自ができるだけ「自分の頭で」質問文を考えてくるという作業で、できるだけ具体的な、実際の企業人が直感的に理解できるような質問文を考えてもらう。そうして作られた質問文は、グループ全体で討議される。その際の討議のポイントは
2度目は、1度目に他のメンバーが考えてきた質問項目も含めたグループ全体の全質問案の中から、「他人の質問を盗んで」もいいから、これだけは質問案の中に入れておいてほしいという質問文をもう一度持ち寄り、1度目と同じ作業を繰り返すのである。
こうした作業での表立った目的は、「標準語」で書かれた共通の質問票を作成するということであるが、実は、もう一つ重要な目的がある。それは、各メンバーの問題意識を掘り起こすということである。既にヒアリング調査の際に、各自の問題意識についても聞いているはずではあるが、その段階では、明解かつ直接的に問題意識が表明されるということを期待するのは実はまだ無理である。しかし、各自に、これだけは調べたいという質問文を考えさせ、また選択させることによって、潜在的であいまいだった問題意識が明解な形で表現されてくることになる。しかも、こうした質問文はそれぞれが一つの仮説を表明していると考えられる。各メンバーには意識されてはいなくても、少なくとも「自分の組織では、この質問に対してこんな回答が返ってくるだろう」あるいは「自分の組織のこの質問に対しての回答結果は、上司、同僚に見せるときっと問題だと言われるにちがいない」という仮説を各自が暗黙のうちにでも、もっているものだからである。だからこそ、ぜひその質問を聞いてみたいと思ったはずなのである。
したがって、こうした作業は、問題発見のプロセスとしては非常に重要なものとなる。仮説を立てるという立場からしても、この作業は研究者のような第三者が独立かつ一方的に行うべきではなく、あくまでも、グループ参加者からの自発的な提案を促し、それを生かす形で進めるべきなのである。
そこで、ここでは質問調査票を設計する際の一般的な注意事項、および一般的なテクニック、ノウハウについてまとめておくことにしよう。
統計調査での質問票の質問文の作成にあたっては、聞き方に、実態方式と常態方式の二つの方式があり、両者の特性をふまえて質問文を作る必要がある。
質問の内容が決ったら、次に質問に対する回答の仕方を決めることになる。そこでまず、質問票調査の回答を統計的に処理するために必要なコーディングの作業についてまとめておこう。コーディング(coding)とは、次の作業の総称である。
コーディングには、プリコーディングとアフターコーディングの2種類の方法がある。プリコーディング(pre-coding)とは多項選択形式のことである。この形式では、質問に対し、あらかじめ回答の選択肢が用意されていて(すなわち、あらかじめ回答のカテゴリー化、記号化が行われていて)、回答者がそれらの選択肢の中から回答を選択すると事実上、コーディングが終了することになるのである。
アフターコーディング(after-coding)とは自由回答形式のことである。あらかじめ回答の選択肢を用意しないで、質問に対する回答を回答者に思い付くままに自由に回答してもらい、回答終了後に、回答のカテゴリー化(categorization)によってコーディングの作業を行うことになる。
コーディングには2種類の方法があるといっても、統計調査では可能な限りプリコーディングを行い、多項選択形式を採用すべきである。なぜなら、
この自由回答形式の欠点と関係があるのだが、多項選択方式の場合でも、選択肢の中に無造作に「その他」を含めるべきではない。「その他」は欠損値と同じ意味しかもたないことが多いのである。「その他」を入れずに済むように、徹底的に事前のヒアリング調査を行うべきである。「その他」を選択肢として含めることは、事前のヒアリング調査の不備不足を質問調査票の中で告白しているようなものである。
それでも何らかの理由でヒアリング調査が十分に行えず、質問文の回答の選択肢をあらかじめ予想できないような場合には、プリテストを行ってみるとよい。プリテスト(pre-test)とは、本調査に先立ち、少数の調査対象に対して、質問文の検討や回答の分布に見当をつけるために行う調査である。質問文の回答の選択肢をあらかじめ予想できないような場合は、プリテストでは自由回答形式で回答してもらい、出現する回答を調べて分類し、本調査の選択肢を作成する。主に、アフターコーディングつまり自由回答形式は、プリテストで本調査におけるプリコーディングのカテゴリーを設定するために用いられると考えるべきであろう。
プリコーディングで既に他項選択形式の選択肢を用意してしまっているような場合でも、プリテストは、1度は行っておくべきである。ただし、こうした場合のプリテストは、本番同様の方式で規模を小さくして行うというものでなくてもよい。面接調査法や面前記入法の形をとりながらも、選択肢「案」についての率直な意見を聴取するという気持ちで、質問文、選択肢の洗練を行ってもよいのである。
ところで、自由回答形式は、調査とは別の目的で用いられることがある。つまり、実際の企業などでは、回答者のもっている不満のガス抜きの目的ために、自由回答形式を多用したアンケートを使用することがみられる。しかし、調査の本来の目的は事実としての統計データを得ることであり、このようなガス抜きの目的も含めて調査することは、本来の目的を損なう可能性があり、行うべきではない。
プリコーディングの多項選択形式の場合でも、選択肢の中から該当する回答を選ばせる際の選ばせ方には、次のような種類がある。
後述するようなクロス表を作成する際の容易さ、クロス表自体の簡明さと説得力を考えると、できるだけ1の択一方式(SA)が望ましい。さらに、質問数が100項目にもなるような場合には、総当りで二つの質問項目間の相関をみていくと、第5章第5節(3)でも見たように、ざっと (100×100-100)÷2=4,950枚 のクロス表と向き合うことになる。これほどの枚数でもメインフレームの側ではあっという間に集計してくれるが、問題はこれを見て理解する人間の側の能力の方に限界があるということである。私を含めて私の知る限り、この無謀な試みにうまく成功した人間はいない。したがって、択一方式(SA)の中でも、できる限り、Yes-No形式のように、二者択一型の質問にすることが望ましい。というのは、第5章第5節でも見たように、2×2クロス表ばかりであれば、各クロス表を一つの相関係数で代表させ、相関係数だけで比較することが可能になるからである。これならば、総当りでも相関関係を調べることが出来る。
複数回答方式(MA)でも、質問の中の各選択肢を形式的に、一つのYes-No形式の質問として扱ってクロス表を作ることは可能である。
回答選択肢のカテゴリーの設定上の注意としては、
過去に優れた調査がある場合には、できれば類似の分類カテゴリーを採用しておくと、その調査結果との比較が可能になり、調査の回答の偏り等を考える際に参考になる。
最後に技術的なことであるが、コードはどうしても避けられないような事情がない限り数字を用いること。統計パッケージ(SAS等)とコンピュータの都合ではあるが、後々の処理が楽になり、例えばSASならば、PROCステップでの制約も気にせずに済む。そして、データ・エントリーの際も、テン・キーだけで入力ができるので、エントリー・ミスの誘発を防ぐとともに、所要時間も短くて済み、外注した場合でもデータ・エントリー費用の節約につながるのである。
質問調査票には回答者の属性(性別、年齢、職種、職位など)を聞く部分を必ず設けておく。こうした基本特性(classification data)は、分析の基準となるもので、他の質問についても、基本特性との関係を分析しておくことが望ましい。この基本特性を聞く欄は調査票の冒頭に置かれることが多かったので、基本特性項目のことを、しばしば、フェース・シート(face-sheet)項目と呼ぶが、これは和製英語。現在では、末尾に置くことも多い。継続的に調査を行う場合には、早い機会にこうした属性の分類を確立、確定しておくことが、継続的なデータの集積、比較の際に基礎として必要である。
基本特性は、そのつもりになればどんどん詳しい内容の質問を作ることができるが、詳しくなくてはいけないとか、詳しければ詳しいほど良いということはない。むしろ、あまり詳しい内容の個人情報を聞くと、回答者の側に警戒心を呼び起こすことになり、回収率、有効回答率の低下を招くことになる。常識的に考えても、基本特性の項目が多くなれば、個人の特定が容易になり、匿名性が維持できなくなる。これまでの経験からすると、未婚・既婚の別や学歴を聞くことは分析上のメリットはほとんどなく、かえってこうしたデメリットの方が大きい。
例えば、未婚・既婚の別については、この属性がこれまでに分析に役立ったことはないし、この質問自体に不快感をもつ人がかなりいる。それに、未婚・既婚の他に、実際には離婚、死別、その後の再婚のケースなどもあり、あまりに選択肢が細分化しすぎる。「配偶者の有無」を聞く方法もあるが、これとて内縁の妻や夫の存在をどう扱うべきか、調査の意図とも関係してくる。結局、本書で考えているような調査では、こうした質問をすること自体に、どんな意味があるのかわからない。
また学歴の場合、特定企業の特定部門は、ほとんど同質的な学歴をもっている集団になっているので、企業と部門を特定すれば、学歴はほぼ特定できてしまうのが普通である。このことがあるために、学歴によって回答に差異が見られるようなケースでも、詳しく検討すると、実際には企業間差異、部門間差異の反映にすぎない場合がほとんどである。学歴による分析は、企業間比較、部門間比較の際には、実質的な意味をほとんどもたないといっていいだろう。
このことについては、既に第2章第4節(3)でも触れたが、章末資料Bの質問調査票のように、これだけ質問の項目数が多くなると、変数名が互いに重複しないように配慮しながら、各質問項目に対応した変数名を考えることはたいへんな作業となる。また類似の変数名も多くなるために、ごく限られた字数(SASでは英数字で8文字以内)の変数名だけを見て、すぐに元の質問を特定することは至難の技となる。そこで、変数名には質問の番号をそのまま用い、変数の意味内容については変数ラベルを用いることで集計表の上で表示することの方が実用的である。変数ラベルについては、字数の制限も大幅に緩くなっているし、漢字も使えることが多いので、少ない字数で情報量の大きな変数ラベルを作ることもできる。つまり、変数名で変数の意味内容を表現するよりはずっと確実で実用的である。
ただし、変数名に質問番号をそのまま用いるといっても、第2章第4節でも述べたように、変数名の最初の1字は数字ではいけないというソフト上の制約があるので、質問の大分類はローマ数字にしておくと便利である。ローマ数字はI、V、X、Lなどのアルファベットで構成されるので、変数名の頭にもってきても、そのまま変数名として用いて差し支えない。例えば、「質問IIの1」「質問Vの5」などはそれぞれ「II1」「V5」と質問番号をそのまま変数名にできるのである。
「組織活性化のための従業員意識調査」では、既にヒアリング調査の段階で設定しておいた組織単位を対象として、その正社員の全数調査をすることを原則としている。全数調査にする理由は、次のようなものである。
以上のような調査対象の設定意図を説明、確認した上で、調査の仕方・手順については、章末資料C「現地調査の手引」という説明文書をもとにして事前に口頭で説明し、確認しておく。この「現地調査の手引」は、各社における調査手順を説明したもので、各社における調査は、次の2段階に分けて行うことになる。
調査の進め方としては、まず第1段階として、各社単位に「配布・回収状況調査票」に記入してもらった上で、回収し、この段階で調査対象を最終的に確定する。なお、この調査対象の設定は慎重に進める必要がある。調査の質を決定するものだからである。したがって、念には念を入れて、企業側に疑問点等があれば、いつでも、気軽に問い合わせが出来るように配慮しておくことが重要である。企業側にとっては小さな疑問点でも、第2段階の質問調査票の配布前に解決しておかないと、取り返しのつかないことになる可能性がおうおうにしてあるものである。例えば、多くの場合問題はないのだが、組織単位が複数の「職種区分」(配布・回収状況調査票を参照)にまたがらないように設定されていることを確認することも必要である。つまり、「1. 事務・スタッフ」「2. 技術・製造」「3. 研究・開発」「4. 販売・営業」のどれかに収まることを確認するのである。
そして、このときに、経験的には調査票の回収部数が全体で400〜500部もあれば、標本誤差を抑えることが出来、統計処理上、かなり見栄えのする結果が得られるということ、したがって、この調査での問題は回収部数よりも、むしろ回収率の方であり、非標本誤差を抑えるために、回収率の目標は90%程度としておきたいということを明確に打ち出し、組織単位を設定する際には、できるだけ高い回収率を維持したままで、必要な回収部数が得られるような配慮を強調しておくことを忘れないように。回収率は質問票調査の質と信頼性を決定するのである。
以上のことを注意した上で、調査対象となる組織単位をいくつか設定してもらい、「配布・回収状況調査票」のコピーを回収し、確認して、この段階でまめにきちんとした管理をしておくことが重要である。
第2段階は、第1段階で既に設定してある組織単位について、それを構成する正社員全員を対象とした質問票調査である。配布から回収までの期間が1週間というのは短いと感じられるかもしれないが、経験的には、回収のピークは配布直後と提出期限前後の2回で、この間の期間は、それがかなり長期に設定してあっても、ほとんど回収がないものである。また実際には、提出期限後も、回収打ち切りまで1週間程度の余裕をもたせているが、この期間に回収できる部数も経験的にはそれほど多いものではない。1週間でできるだけかき集めるのが一番効率的で楽な方法だということを理解・納得してもらうしかない。
また質問調査票のコード・ボックスの記入の仕方は十分に説明しておく必要がある。質問調査票を配布する際には、あとでわからなくならないように、実際に配布した部数を配布・回収状況調査票の「配布部数」の「実際」の欄に記入してもらう。質問調査票を回収した質問調査票は組織単位別に分類し、組織単位ごとに質問調査票の2ページ目のコード・ボックスの後2桁に、一連番号を記入してもらう。そして、実際に回収した質問調査票の部数を配布・回収状況調査票の「回収部数」欄に記入してもらい、回収率を正確に把握するのである。
実際に回収を打ち切るのは、公式の締め切りのほぼ1週間後である。やむをえない場合やその後回収できた分はできるだけ生かすが、実際に集計作業が始まってしまえば、だらだらと追加するわけにはいかないので、回収打ち切りは明言しておくこと。
また章末資料Bにもあるように、質問調査票の表紙には、集計分析者を明らかにし、調査票が個票のまま利用されることのないことを保証した上で、その集計分析者の連絡先を明確にしてあるので、その対応も怠らないこと。これは、例年、せいぜい1件問い合わせがあるかどうかではあるが、集計分析者を確認できるという安心感が、調査の質を向上させるのである。
調査票の設計がまずいと、コーディングをしなくてはならないようなはめに陥ることになるのであるが、「組織活性化のための従業員意識調査」では、調査票の設計の段階でプリコーディングを入念に行い、データもすべて数字データにしてあるので、入力は調査票を見ながら直接行うことが出来る。しかし、章末資料Dにあるように、入力フォーマットだけは、疑問の余地のないような正確に定義しておくべきである。入力フォーマットは、調査票の回収が終る前に(実際には回収期間は1週間しかないので、質問調査票の完成直後に)、作成しておくことが望ましい。また、SASで集計する場合には、欠損値はピリオド "." で入力するように確認しておく。データ・エントリーを業者に外注する場合には、データは磁気テープ、いわゆるMTに入れられて納入されることが多いので、磁気テープに書き込む形式については、業者とも相談して、あらかじめ決めておく必要がある。
調査票の回収が終わると、データ・エントリーと並行して、章末資料Eのような「配布・回収状況一覧表」を作成する。ここで重要なのは組織単位ごとの回収数を正確に確定しておくことである。この数字は、単純集計を行って、データとプログラムのチェックを行う際に参照すべき基礎的数字なので、必ず集計作業の始まる前に作成、確定しておくこと。
以上が実際の調査手順である。ここまでくれば、あとは実際の集計作業に入るだけであり、本書の第2章で扱っている単純集計から順に分析を進めていけばよいのである。
6.1 基礎調査票 『会社四季報』『会社情報』など公にされている最新版の資料を使って、自分の興味のある会社1社について、章末資料Aの基礎調査票の会社概要調査票に記入し、できるだけ完成させてみよう。それから何がわかるか。また、そのような公にされている資料ではわからなかった情報の価値について考えてみよ。
6.2 プリテスト 被験者になったつもりで、章末資料Bの質問調査票に実際に回答してみよ。その際、次の点に注意しながら回答せよ。
第1回合宿の第1目標は、今後のグループ研究の討議の際の基礎となるキーワード、コンセプトの認識をできるだけ統一しておくこと、もしくは認識の違いを明確にしておくこと(=親睦)にあります。
6月14日 | 14:00〜18:00 | グループ討議 |
15日 | 9:00〜12:00 | グループ討議 |
13:00〜17:30 | グループ討議 | |
19:00〜 | 翌日の中間発表の準備作業 | |
16日 | 9:00〜11:30 | 中間発表(問題意識のまとめ、できれば研究テーマ) |
限られた時間内に参加者相互の理解を深めるために、是非ご協力下さい。
前年度を参考にすると
7月 | 2日 | 質問案の検討・討議 |
16日 | 質問案の検討・討議 | |
8月 | 27日 | 質問調査票完成 |
28日 | 調査票配布 | |
9月 | 3日 | 調査票点検・整理(調査票記載の回収期限は2日) |
9月 | 24日 | 集計表報告 |
10月 | 8日 | 集計表をもとにした企業間比較 |
10月 | 18〜20日 | 合宿: 集計表をもとにした職場間比較 |
本社の中の人員規模50人以上100人未満のホワイトカラーの組織単位を一つまたは複数選び、その組織単位の正社員の全数調査を原則とします。ここで、「組織単位」とは組織図上で同一の上司を持つ職場もしくは職場の集合です。例えば、次の図で、細線で囲まれているような各レベルの部分です。
《全数調査にする理由》
グループの皆さんへ
先日のグループ研究での討議を基に、質問調査票の原案を作成しました。ご検討ください。
完成版は8月27日(火曜日)に、私が日本生産性本部経営アカデミーまで持参し、お渡しするつもりです。その際に、口頭で調査の仕方についてもご説明するつもりでおりますが、事前に、今回添付している「C. 現地調査の手引」という説明文書を御熟読いただければ、調査の仕方はご理解いただけるものと思います。ご不明の点は、その際にまとめてご質問いただいても結構ですが、疑問点等がありましたら、早い機会にお電話いただければ幸いです。
なお今後の日程は「C. 現地調査の手引」の中に「現地調査・集計スケジュール」がありますのでご参照ください。
19XX年8月
この「現地調査の手引」は、各社における調査手順を説明したものです。各社における調査は、次の2段階に分けて行います。
調査の進め方としては、まず第1段階として、各社単位に「配布・回収状況調査票」に回答の上、8月27日(火曜日)に、日本生産性本部経営アカデミーまでお持ちください。
それでは、早速、「2. 第1段階調査の手順」にある説明を御熟読の上、添付してある「配布・回収状況調査票」の太枠内に記入しながら、第1段階調査を進めてください。
なお疑問点等がありましたら、いつでも、お気軽にお問い合わせください。疑問点は第2段階の質問調査票の配布前に解決しておかないと、取り返しのつかないことになる可能性がありますので、どんな小さな疑問点でも、お気軽にお問い合わせください。[連絡先]TEL 000-000-0000 高橋伸夫
既に、どこを調査対象としたいのかについては、おおまかにご説明いただいておりますが、質問票調査を目前にして、調査対象を明確に定義し、その人数的な大きさも確定しておく必要がありますので、これから述べるような考え方に沿って、組織単位を実際に設定してください。
第2段階調査の質問票調査では正社員の人員規模30〜50人程度のホワイト・カラーの「組織単位」をいくつか選び、その「組織単位」については、その正社員の全数調査を原則とします。ここで、「組織単位」とは組織図上で同一の上司を持つ職場もしくは職場の集合です。例えば、次のような組織図では、細線で囲まれているような各レベルの部分が組織単位の候補として考えられます。
この候補となるレベルの中から、どのレベルに組織単位を設定するかは、
経験的には調査票の回収部数が全体で400〜500部もあれば、統計処理上、かなり見栄えのする結果が得られます。したがって、問題は回収部数よりも、むしろ回収率の方になります。これまでの経験から、回収率の目標は90%以上としておきたいものです。この目標回収率は明確な基準には致しませんが、組織単位を設定する際には、できるだけ高い回収率を維持したままで、必要な回収部数が得られるように配慮してください。回収率は質問票調査の質と信頼性を決定します。
以上のことに留意された上で、調査対象となる組織単位をこの基準1、2でいくつか設定した上で、添付の「配布・回収状況調査票」の太枠内に記入して、8月27日(火曜日)に、そのコピーを日本生産性本部経営アカデミーまでお持ちください。
第2段階は、第1段階で既に設定してある組織単位について、それを構成する正社員全員を対象とした質問票調査です。8月28日(水曜日)に一斉に配布していただき、質問調査票に記載されている提出期限、9月2日(月曜日)までに回収してください。配布から回収までの期間が1週間というのは短いと感じられるかもしれませんが、経験的には、回収のピークは配布直後と提出期限前後の2回で、この間の期間はほとんど回収がないもののようです。また、実際には提出期限後も、回収打ち切りまで1週間程度の余裕をもたせる予定ですが、この期間に回収できる部数も経験的にはそれほど多いものではありません。ここはひとつ覚悟を決めて、1週間でできるだけかき集めるのが一番効率的で楽な方法だと思います。第2段階の手順は以下の通りです。
その際、実際に配布した部数を配布・回収状況調査票の「配布部数」の「実際」の欄に記入してください。
その際、配布・回収状況調査票は、回収した質問調査票の発送時に、その都度、ファックスで下記の東京大学宛に送ってください。私に対する調査票の「発送通知」も兼ねております。
それ以後の到着分は、集計作業が始まってしまいますので、集計に用いることができません。間に合わせるために、部数が少なければ、ファックスで経営アカデミーまで送っていただいてもかまいません。
回収した質問調査票の送付先: 〒150 東京都渋谷区渋谷3-1-1 (財)日本生産性本部経営アカデミー □□□□ 氏 FAX 00-0000-0000 配布・回収状況調査票の送付先: 〒153 東京都目黒区駒場3-8-1 東京大学教養学部社会科学科 高橋伸夫 FAX 00-0000-0000CMS(Conversational Monitor System)はIBMのメインフレーム用に開発された会話型専用OSである。OS (Operating System)とは、第2章第2節でも述べたように、簡単に言えば、外部記憶装置や入出力装置といったハードウェアを操作するソフトウェアのことである。
実際には1台のメインフレームをホスト・コンピュータにして、それにたくさんの端末をぶらさげて相手をさせている。つまり、1台のホスト・コンピュータを複数の利用者によって共用しているので、中央演算処理装置、主記憶装置をはじめ外部記憶装置や入出力装置といった資源の配分、管理を利用者間で調整しなくてはならないはずである。ところが、CMSでは、端末で利用者がログオンすると、その利用者専用の仮想計算機(Virtual Machine)を起動することになる。物理的なコンピュータ・システムを意識せずに、各自の利用環境を自由に設定できるし、仮想計算機には仮想入出力装置が接続されていることになる。各利用者は他の利用者やメインフレームの全体的な管理を気にすることなく、あたかも自分専用のパーソナル・コンピュータを使用しているかのように、端末を利用することができるのである。このCMSの使用方法、利用の決め事さえ覚えれば、自分がどのようなホスト・コンピュータのハードウェア、機種を使用しているのかを知らずとも、メインフレームのホスト・コンピュータを使用することができる。
コマンド入力の表記方法については、第2章第2節(4)で説明したものと基本的に同じであるが、異なるのは、原則的に、コマンド入力の際には、リターン・キーの代わりに、(実行)キーを押すということである。リターン・キーにあたる(改行)キーではないので注意してほしい。(改行)キーを押す場面も出てきて複雑なので、この章では、その都度キーの種類を表示することにしよう。端末の種類によっては、(実行)キーは(ENTER)キー、(改行)キーは(矢印)キーのこともあるので、その場合には読み替えること。
CMSにおけるファイル(file)またはデータ・セット(data set)とは、物理的にはホスト・コンピュータの固定ディスクに格納されたプログラムやデータの集合のことである。ファイルは論理的には利用者ごとに振り分けられた仮想の「ミニ・ディスク」に保管されている。
パンチ・カードを使って入力を行っていた時代には、プログラムやデータはパンチ・カードにパンチされ、パンチによって開けられた穴を光学的にカード・リーダーと呼ばれる読取機械で読み取ってコンピュータに入力していた。パンチ・カード1枚に80字の数字、アルファベットもしくはカタカナをパンチすることができた。ここでいっている1字分を書き込むべき場所はパンチ・カードの場合にはカラム(column)と呼ばれたが、この1字もしくは1カラムは、情報の量としては1バイト(byte)に相当している。つまりパンチ・カード1枚は80カラムからなり、80バイトの情報を入力することができたことになる。
現在では、パンチ・カードはほとんど使用されず、端末から入出力が行われるが、端末の画面の上の1行がこのパンチ・カード1枚に相当し、この1行に書かれたデータをレコードと呼ぶ。ファイルは、正確にはこのレコードの集合である。パンチ・カードの時代には、コンピュータに実行させたいプログラムやデータをパンチ・カードにパンチし、そのカードの束(これをカード・デックと呼んだ)を枚数が少なければ輪ゴムでまとめ、枚数が多ければファイリング・ケースに入れて保管したり、持ち歩いたりしていた。カード・リーダーにカードを読み取らせるときにも、この束単位でカード・リーダーにかけていた。この束こそが「ファイル」だったのである。ちなみに、一般的な端末の画面の左端から右端まで1行いっぱいに文字を入力すると半角文字で80字(つまり80バイト)入るようになっているのは、このパンチ・カードの名残である。
物理的に用紙の大きさの規格が統一されていたパンチ・カードとは違って、端末からの入力では改行するまでは1行であり、別に各行を80字に固定したり、(80字ではなくとも)各行の長さを揃えたりしなければならない理由はない。したがって、色々な形式のファイルが存在しうることになるわけだが、CMSではファイルの属性として、次の4つを表示してくれることになっている(第4節で後述するFILELISTコマンド参照)。
標準的なファイルの形式は、
各レコードは行番号を付けることも付けないこともできる。ここでいっている行番号は、後で編集のことに触れる際に出てくる編集画面上、左端に表示される「行番号」のことではなく、各レコード固有の行番号である。これもカード時代の名残で、かつてはカードの束を落したりして順番がメチャメチャになったときでも、この行番号のおかげで救われたものである。したがって、現在では付けても付けなくても、ほとんど意味はない。ただ問題になるのは、行番号をつける際には、各レコードの最後部8バイト(73カラム目〜80カラム目)を使って行番号が書き込まれるということである。このことは注意を要する。もし行番号なしのファイルを行番号付きのファイルに変えたときには、レコード最後部の8バイト分のデータが欠落してしまうからである。データのファイルは後でコーディング・ミスやパンチ・ミスの訂正を行うことが多いので、その際によく訳もわからないままに、オプションを指定してしまったりして、行番号を誤って書き込んでしまうおそれがないとはいえない。したがって、例えば、固定長、80バイトのカード・イメージのファイルを作成する際には、特別の事情がない限りは、もしもの用心のために各行の1〜72カラムのみを使い、最後部の8カラムは使用しないようにする。SASプログラムや入力データは行番号付きでも行番号なしでもよいことになっているので、行番号なしで使っても、この方が無難である。
ファイル識別子(fileidとも書き表される)はデータ・セット名(data set name: dsname)とも呼ばれるが、SASではファイルをデータ・セットと呼ぶので、SASの中ではデータ・セット名と呼ぶのが通例である。ファイル識別子の例としては、
NEWFILE SAS A1
のようになり、ファイル識別子は空白(ブランク)をはさんだ
わかりやすくいうと、1. ファイル・ネーム(fn)と 2. ファイル・タイプ(ft)の組でファイルの名前を表している。いわば人の姓名と同じで、2. ファイル・タイプ(ft)が姓、名字、1. ファイル・ネーム(fn)が名に相当している。SASのプログラムは「SAS家の一員」ということで「SAS姓」を名乗り、ファイル・タイプとしてSASを用いることになっている。SASはそれ以外のファイル・タイプをもったファイルをSASプログラムのファイルとして「認知」せず、受け付けないので注意がいる。それに対して、3. ファイル・モード(fm)は住所に相当し、どこの地区(ミニ・ディスク)にファイルが「住んでいるのか」を示している。特に断らなければ、ミニ・ディスクA、つまり自分も住んでいる「A地区」に住んでいると考える約束になっている。
CMSでは、入出力装置は既定値として端末のみが指定されている。逆にいうと、端末だけで通常の入出力は事足りているわけである。しかし、データが非常に大きいときや、他のコンピュータからデータをもらってくるとき、あるいはハード・コピーとしてきちんと紙の上に印刷して残したいときでも、端末だけで我慢しろというわけではない。端末以外の入出力装置、例えば、読取装置、穿孔装置、磁気テープ装置、印刷装置といった装置との入出力は、基本的には次のように考えて行うことになっている。
このうち、1で磁気ディスク上のCMSファイルを論理的に入出力装置(仮想入出力装置)と見立てた上で、既定値で端末となっている入出力装置の設定をそのCMSファイルに変更するには、データ定義名(data definition name: ddname)を用いて定義を行う。この一連の操作についてまとめておこう。
fileidで示された磁気ディスク上のCMSファイルを入出力装置と見立てる際には、
FIledef ddname DISK fileid(実行)
例えば、次のように入力すればよい。
FI 18 DISK OUT91 DATA(実行)
ここで、例からもわかるようにddnameは「仮想入出力装置名」とはなっているが、実際には入出力装置番号でよく、筆者は例にあるような "18" や "IN" などもよく使う。ただし番号でよいとはいっても、11〜15は使えないことがある。同様に、SASを使用する際には、次のddnameは使用できないので、注意がいる。
LIBRARY, SASDUMP, SASLIB, SORTWKxx, SORTLIB, SYSIN, $SYSLIB, SYSOUT, WORK
ここで指定したddnameは、2で仮想計算機の入出力をCMSファイルに対して行う際に、仮想入出力装置名として当該装置番号が指定されることになる。
こうした仮想入出力装置名の指定を解除し、既定値の端末に戻すには
FIledef ddname CLEAR(実行)
例えば、次のように入力すればよい。
FI 18 CLEAR(実行)
このように各装置名ごとに指定を解除するのでは面倒な場合には、全ての設定を解除し、既定値の端末に設定を戻すことも可能である。このときには、ワイルド・カード"*"を指定して、
FIledef * CLEAR(実行)
と入力すればよい。ワイルド・カードつまり星印 "*" は「該当する項目のすべて」を意味している。
ここでは、端末からその都度CMSにコマンドを入力することを考えているが、実際のケースでは、SASのプログラム中で「X CMSコマンド」の形が使えるので、SASプログラム内で次のように指定した方が混乱しないですむ。
X FIledef ……;
このようにデータ定義名を定義することにより、図7.1のように仮想入出力装置とCMSファイルの対応をつけることができる。
図7.1 仮想計算機と仮想入出力装置
この図の中の仮想読取装置、仮想穿孔装置、仮想印刷装置はまとめて仮想ユニット・レコード装置といい、実装置との間での入出力はCMSファイルの管理の形で行われる。ただし、現在では実際のコンピュータ・システムが読取装置、穿孔装置の実装置をもたないことが多く、この場合には、それぞれが入力用CMSファイル、出力用CMSファイルの意味しかもたない。また磁気テープ装置は接続台数が少なく、しかも磁気テープ装置には、各利用者が使用する磁気テープが常時かけられているわけではないので、磁気テープ装置を使用する際には、磁気テープ装置を仮想計算機の入出力機器として接続する手続きが特別に必要になる(磁気テープ装置の使用については、第7節を参照のこと)。
以上で、もっとも基本的な部分の解説は終ったので、あとは実際にホスト・コンピュータをいじりながら話を進めていこう。それでは、とにかく端末機の前に座って、ホスト・コンピュータと接続してみよう。このことをログオンするという。自分のユーザー名とパスワードさえもっていれば、ログオンの仕方はいたって簡単である。次のような手順でやってみると、すぐにホスト・コンピュータとの会話が可能になる。
ただし、3については、ユーザー名の後では、(実行)キーは押さずに、パスワードを入力した後で、(実行)キーを押す。ユーザー名を入力すると、他のキーに触れなくても自動的に改行し、パスワード行にカーソルが動いているはずなので、画面をよく見ること。もし、ユーザー名を入力しても、パスワード行にカーソルが移動しない場合には、(改行)キーを押すことになるが、端末で、入力を促す "===>" の表示の後ろに入力する場合には、その直後の1カラムには入力できないことになっているので、例えば、
===> TAKAHASI
というように、必ず1字分、カーソル・キー(スペース・キーではない)であけて入力すること。以上の手続きが無事終了すると、
LOGON ユーザー名
LOGON AT hh:mm:ss JST day mm/dd/yy
VM/SP REL 5 11/06/90 01:15
と表示される。これでログオンが済んで、TSS処理が開始され、端末はホスト・コンピュータであるメインフレームに接続されたオンラインの状態にある。この状態になると、もう端末のキーボードを使って、ホスト・コンピュータにコマンドを送ることができる。プログラムやデータを入力して、ホスト・コンピュータに仕事(job)をさせることができるのである。ホスト・コンピュータへの用が済んだら、端末をホスト・コンピュータから切り放しておく。このことをログオフするといい、次のようにする。
まずメインフレームの初心者に対する一般的なアドバイスから始めよう。端末のディスプレイ画面に赤色の表示が出たら、ホスト・コンピュータからの「警告」である。こうした警告を解除するのはいたって簡単である。(取消)キーまたは(RESET)キーを押せばよい。しかし、これでは何ら問題の解決にはなっていない。
警告が出たのなら、解除することをあせっても仕方がない。まず気を落ちつけて、なぜ警告が出されたのかを考えてみる必要がある。原因は必ず利用者の側にある。多くの場合は「タイプ・ミス」が原因である。しかし、このタイプ・ミスは広い意味でのタイプ・ミスで、端末を操作している当人が、「真面目に間違えて操作」している場合、つまり、「確信をもってミス」している場合でも、それがコンピュータにとって「意味不明」ならば、コンピュータの側ではタイプ・ミスとして形式的に判断するのである。したがって、なぜ警告が出たのかを確認する必要がある。ほとんどは本書のようなテキストやマニュアルの読み間違い、誤読が原因であるので、もう一度入念に読み直して、確認してほしい。
それともう一つ。ホスト・コンピュータは利用者と会話したがっている。もちろんコンピュータが声を出して話すわけではないので、コンピュータ側からの呼びかけは、メッセージとして端末のディスプレイ画面を通して行われる。ところが、初心者はほとんど画面を読まない。これでは話が成立しない。ホスト・コンピュータからのメッセージは、画面の隅につつましく出されることが多いので、コンピュータと会話するためには、画面の隅々まで気を配ってやる必要がある。相手が機械だからといって、利用者は一方的にコンピュータに命令することばかりを考えずに、コンピュータの意見やアドバイス、メッセージをきちんと受け止めてやる寛容さが必要である。もし皆さんがコンピュータの立場だったら、人の質問や意見、忠告にも耳を貸さず、ただ一方的にガミガミと一貫性のない命令をし、思い通りにならないと暴力まで振るうようなヤツ(たまに見かけるが絶対にやめてほしい)の言うことは聞かないはずである。コンピュータもそうした場合には言うことを聞かない。たまに口論をすることはあっても、コンピュータと良好な「友人」関係を築き上げてほしいものである。
そこで、パソコンとはちょっと勝手の違うホスト・コンピュータからのメッセージの読み方の初歩、基本中の基本を表7.1にまとめておくので、最低限の会話を試みてほしい。ログオンしてホスト・コンピュータと接続すると、画面右下隅に次のようなステータス(=システムの状態)が表示される。それぞれが利用者に対するメッセージとなっているので、覚えておくと計算機の「考えていること」がわかる。この表のうち最初のケース、すなわち左下隅に表示かなく、右下隅に「RUNNING」だけが表示されている場合は、通常のステータスで、正常に処理を行っているという表示である。他のステータス表示になっている場合には、それなりに対処する必要があるので、表を参考にしてほしい。
表7.1 画面右下隅に表示されるステータスと対処方法
ステータス | 対処方法と《意味》 | ||
---|---|---|---|
RUNNING | 左下隅に表示なし | 《入力待ち: 通常の表示》 | |
左下隅に「X ○」「X SYSTEM」 | 《ホスト作業中》 | その終了待ち | |
左下隅に赤い「XX …… 」 | 《誤操作なので取消せ》 | (取消)キーで解除 | |
VM READ | (実行)キーで「RUNNING」表示 | 《通常の表示》 | |
(実行)キーで「CMS」表示 | 《コマンドの入力待ち》 | ||
(実行)キーで「?」表示 | 《実行プログラムのデータ入力》 | ||
CP READ | ログオン前: Logon(実行) | ||
CMS使用中: B(実行) | それで変化なければ I CMS(実行) | ||
NOT ACCEPTED | 《ホスト作業中》 | 数秒待ってコマンド再入力 | |
MORE... | 《1分後に次画面表示》 | 停止するには(実行)キー 即刻表示には(CLEAR)キー | |
HOLDING | 《現画面表示を保持》 | その解除には(CLEAR)キー |
CMSファイルの管理は、原則的にFILELISTコマンドによって呼び出されたファイルの一覧表の画面を使って行われる。
次のどちらの方法でも、FILELISTコマンドの使用を開始し、ファイルの一覧表を表示することができる。
FILEList(実行) | ・・・・・・ | 自分の保有するファイル(ただしfm=A)の全部を表示。 |
FILEList * SAS(実行) | ・・・・・・ | 「ft=SASのファイルのみを表示」(ワイルド・カード「*」を使った例) |
例えば、前者の方法で、FILELISTコマンドによって、自分のミニ・ディスクAの全てのファイルを表示させると、図7.2のようにファイルの一覧表が画面上に表示される。
図7.2 FILELISTコマンドによるファイルの一覧表(初めてログオンしたときの状態)
この画面はまだファイルを自分で作成したことがない使い始めの最初の状態を示したものである。この画面からもわかるように、この状態で既に、各利用者のファイルとして PROFILE EXEC と PROFILE XEDIT の二つのファイルが必ず入っている。この二つのファイルは、ログオンと同時に自動的に実行される初期設定ファイルなので、いじらないこと。もしこのファイルが壊れると、特に PROFILE EXEC ファイルの方が壊れると、基本的な環境設定が出来ず、通常の使用は不可能になるので注意が必要である。
この図のようなFILELIST画面の状態で、キーボード上のPFキーを使ってCMSファイルの管理を行うことができる。FILELIST画面のPFキーの設定された機能は画面の下部に表示された通りで、これらの機能は比較的よく使用されるためにPFキーに設定されている。
PF1 | =HELP | コマンド、機能についての説明を表示する。 |
PF2 | =REFRESH | 余分な表示を除いて、FILELIST画面をリフレッシュする。 |
PF3 | =QUIT | FILELISTコマンドを終了し、システム・モードに戻る。 |
PF4 | =SORT(TYPE) | ファイル・タイプ(FILETYPE)で分類して並べ直したファイルの一覧表を表示する。 |
PF5 | =SORT(DATE) | 作成年月日(DATE)にしたがって並べ直したファイルの一覧表を表示する。 |
PF6 | =SORT(SIZE) | ファイルの大きさ順に並べ直したファイルの一覧表を表示する。 |
PF7 | =BACKWARD | 前の画面に戻る。 |
PF8 | =FORWARD | 次の画面に進む。 |
PF9 | =FL /N | カーソル行のファイルと同じファイル・ネーム(FILENAME)のファイルの一覧表を表示する。 |
PF10 | = | |
PF11 | =XEDIT | カーソル行のファイルをXEDITで編集する。 |
PF12 | =CURSOR | カーソルをコマンド行に移動させる。 |
このうち一番重要なのは、FILELISTコマンドを終了させるPFキーで、(PF3)キー(=QUIT)がそれである。このキーを押すと、
READY; T=n.nn/n.nn hh:mm:ss
と表示され、CPU使用時間とシステム・モード(CMSコマンドが使える状態)に戻った時刻とが示される。その他の機能と使用方法については(2)で触れる。
同じホスト・コンピュータを使っている他の利用者に送信する場合は、1の[ ]内のノード名は省略してもかまわない。ノード名は例えば "JPNUTKOM" とすると、東京大学教養学部2号館6階の機器室にあるIBMメインフレームを意味することになる。実はこれはbitnetと呼ばれるネットワーク内のノード名で、世界中どこでも、そのbitnetに加入しているホスト・コンピュータのノード名を指定すれば、そのホスト・コンピュータの利用者に対して、ファイルを送ることが出来る。逆に、名刺にユーザー名とノード名を例えば
TAKAHASI AT JPNUTKOM
と刷り込んでおけば、世界中のbitnet利用者からファイルを受信することが出来る。
他の利用者から転送されてきたファイルを受信するためには、FILELISTコマンドと同レベルのRDRLISTコマンドを使って行う。FILELISTコマンドを使用している場合には、FILELIST画面を一旦終了し、システム・モードに戻した上で、RDRLISTコマンドを使用する。
ホスト・コンピュータのCMSファイルを端末となっているパーソナル・コンピュータのMS-DOSファイルにコピーすることが出来る。その逆も可能である。この作業は、ホスト・コンピュータと端末となっているパーソナル・コンピュータとの間でのファイル転送と呼ばれている。
ホスト・コンピュータにログオンした後は、二つのキーを同時に
(前面)+(終了)
と押せば、CMSのシステム・モードとMS-DOSのシステム・モードとがスイッチのon/offのように切り替わる。ホスト・コンピュータと端末になっているパーソナル・コンピュータの間でファイル転送をするには、ホスト・コンピュータにログオンした後で、MS-DOSのシステム・モードに切り替え、端末側のソフトウェアを使って行う。いま端末側のディスク・ドライブAのフロッピィ・ディスクのあるMS-DOSファイルをCMSファイルfn ftに転送(正確にはコピー)するとき、及びその逆のケースでは、MS-DOSのシステム・モードで、次のように入力すればよい。
《端末→ホスト》
C:> SEND A:MS-DOSファイル名 fn ft [(JISCII CRLF(改行)
《端末←ホスト》
C:> RECEIVE A:MS-DOSファイル名 fn ft [(JISCII CRLF(改行)
ここで、"JISCII" は、ASCIIコードをEBCDICコードに変換し、PC漢字コードをIBM漢字コードに変換するという意味、"CRLF" は、ファイルの中の復改(CRLF)コードをそのまま転送するという意味のパラメータである。
SASのプログラムやデータは、第2章ではSASのPROGRAM EDITORウィンドウで作成することにしている。しかし、CMSのエディターであるXEDITによって作成することもできる。本書ではXEDITを使わなくても済むようにしているが、プログラムやデータを移植、転送する人は、この節の(3)の部分は必要になるので、最低限そこだけは読んでおくこと。
新しいCMSファイルを作る時は、次のような手順にしたがって行う。
既存のCMSファイルを編集する時には、
図7.3 XEDITの編集画面
SASではプログラム・ファイルは固定長でないと受け付けないが、他からプログラムを移植、転送した場合などには、ときどき可変長のファイルとなってしまっていることがある。こうした場合には、可変長のファイルを固定長のファイルに変えなくてはいけないわけだが、そのときは、新規のファイルを作成しておき(自動的に固定長のファイルとなっている)、そのファイルに可変長のファイルを読み込むことで、内容としては全く同一だが、形式だけが固定長に変わったファイルを作成することが出来る。つまり、正確にいえば、可変長のファイルを固定長のファイルにコピーすることが出来るのである。具体的な手順は、
ダウンサイジングの進行する中でも、メインフレームを使用する最大の理由は、大量のデータを取り扱う必要があるということであろう。そこで、この章の終りに、大量のデータのデータ・エントリーを外注した場合を考え、磁気テープ装置の取り扱いについて説明しよう。
磁気テープ(MT: Magnetic Tape)に次のような形式で書かれているファイルを自分のユーザー名のディスク上のCMSファイルとして読み込む(正確にはコピーする)ケースを扱う。
この読み込み手順のうち、1と2の準備さえ整えば、3の磁気テープ上のファイル操作の部分には、代わりに次のようなTAPEコマンドを使って、磁気テープ装置上のCMSファイルの操作を行うこともできる。
TAPE REW | ・・・・・・ | テープをロード開始点まで巻き戻す。 |
TAPE RUN | ・・・・・・ | テープを巻き戻しアンロードする。 |
TAPE SCAN fn ft | ・・・・・・ | 走査してファイル識別子をリストし、ファイルfn ftの直前に停止。 |
TAPE SKIP fn ft | ・・・・・・ | 走査してファイル識別子をリストし、ファイルfn ftの直後に停止。 |
TAPE LOAD fn ft | ・・・・・・ | テープ・ファイルfn ftをディスクに読み込む。 |
TAPE DUMP fn ft (TAP1 DEN 6250 | ・・・・・・ | ディスク・ファイルfn ftをテープにダンプする(書き込む密度は6250BPI)。 |
オプションとして、SCAN, SKIP, LOAD, DUMPされるファイルのリストを印刷したいときには "(PRint"、 端末に表示したいときには "(Term" を指定することが出来る。
こうしたTAPEコマンドの典型的な使用例は、大学のホスト・コンピュータを使用する際に年度の変わり目(つまりユーザー名の変更・更新時期)に、自分のユーザー名のディスクに保管されているCMSファイルを磁気テープに退避・保存する際の使用例で、3の部分を
TAPE REW(実行)
TAPE DUMP * * A (PR TAP1 DEN 6250(実行)
TAPE RUN(実行)
とすると、自分のユーザー名に保管されている全てのCMSファイルを6250BPIで磁気テープにコピーし、コピーしたファイルの識別子のリストをプリンタに印刷させることが出来る。この磁気テープを使って、ユーザー名が更新された後で、やはり3の部分で
TAPE LOAD * *(実行)
とすると、磁気テープ上の全ファイルをディスクに読み込むことが出来る。
7.1 ファイルの作成・編集
CMSファイルとして、LETTER DATA A1 を作成せよ。ファイルは1画面に収まる行数であれば、内容、表現等は自由である。例えば、英文やローマ字の手紙、感想文でもよいし、英数字を使って描いた図形、絵でもよい。とにかく、XEDITを使って各自でオリジナリティー溢れる内容のファイルを作成してみること。作成したファイルは、端末キーボードの(ぺージ印刷)キーを押して、画面をそっくりまるごとプリンタにハード・コピーをとること。
《ヒント:大文字・小文字を混ぜて使用しているのに、大文字だけで表示されてしまうような場合、ファイルに大文字・小文字を混在させたければ、XEDIT編集画面のコマンド行に
====> SET CASE Mixed(実行)
と入力するとよい。》
7.2 ファイルのコピーと転送 ファイル PROFILE EXEC は可変長のファイルであることをFILELISTコマンドで確認せよ。これを PRO DATA A1 という固定長のファイルにコピーして保管せよ。その後、このファイル PRO DATA A1 をユーザー名=________ に転送せよ。
本書を入口としてさらに学習を進める読者のために、読者が比較的入手しやすくかつ読みやすいように、和書のテキスト(翻訳を含む)を新しい順に列挙しておこう。