ユーザが分析しようとするデータはアンケート調査結果かも知れないし,カルテから抽出された病歴データかもしれない。いずれにせよ,解析しようとするデータはコンピュータで扱えるように,データファイルとして準備されなければならない。また,データファイルは後々の分析に適合するように(物理的にも論理的にも)構成されていなければならない。ここではまず,調査票などによって得られたデータ(原データと呼ぶことにする)をどのようにしてデータファイルとして用意するかについて述べる。
データをコンピュータで分析するためには,コンピュータが理解できる形で,また,分析プログラムが要求する形式でデータファイルを用意してやらなければならない。また,原データが持っている情報と分析プログラムが要求する情報を漏れなく含めなければならない。
多くの統計プログラムパッケージでは,数値データを扱うのが一般的である。このため,名義尺度変数や順序尺度変数は一定の数値に対応させて入力する必要がある。この対応づけをコーディングと呼ぶ。
性別とか疾患名のような名義尺度変数の場合には,各カテゴリーに特定の数値を割当てる。数値との対応づけは任意でよい。慣例的なコーディング規則がある場合にはそれに従ったほうが便利であるし,誤解もない。例えば,男を1,女を2として表わすのは最もポピュラーであるが,これは JIS規格で決められているものである。JIS規格ではこの他に,都道府県,市町村,職業,産業を表現するコードが決められている。このようなものの他にも,各分野で慣例的なコード化が行われている場合にはそれに従ったほうがよい。
治療効果判定や定性的臨床検査データのような順序尺度変数の場合には,与えられた数値が順序関係を保っていなくてはならない。例えば,治療効果の判定が「悪化」,「不変」,「有効」,「著効」と表わされている場合には,それぞれを,-1,0,1,2 という数値に対応させて入力する。この場合,それぞれに 1,2,3,4 という数値を割当ててもかまわない。ある研究者が「悪化というのはかなり厳しく評価しなければならない。また,著効は有効より3倍位に評価しよう」と考えて -5,0,1,3 という数値を割当てたとしよう。もし,この数値の割り当てがある程度の客観性と妥当性を持つならば,間隔尺度変数に対する分析手法が使用できるであろう。しかし,一般的に言えば,このようなやりかたは近似的なものにとどまるであろう。順序尺度変数に対する分析手法が存在していて,その方法で分析しても同じような結果が得られるならば,後者を採用したほうが無難である。
体重とか身長などのように数値で表される変数については,そのままの数値で入力する。この場合には,測定単位が統一されていなければならない。あるケースは kg,別のケースは g で入力されていては後の分析で困ることになる。
あらゆる場合に,数値で得られたデータはそのままデータファイルに入力するほうが,後の分析の可能性を広げる。カテゴリー分けはデータの解析時に何度でもどのようにでも行える。
アンケート調査データの場合の無回答項目やカルテデータの場合の未検査項目のように,あるケースのある項目の値が欠落している場合がある。ほとんどの統計プログラムパッケージでは,1ケースあたりの変数の個数は等しくなければならないので,データファイルを準備する場合には,データが欠落している場合でもなんらかの数値を入力しておかなければならない。ただし,入力される数値は実際にはデータがなかったことを表しているので,分析対象からはずす必要がある。そのため,他の有効なデータと明らかに区別できる値(欠損値)を入力する。例えば,正の値しか取らない変数には欠損値として負の値を与える。あるいは,通常では出現しないような大きな値を与えるなどが適当であろう(注1)。
欠損値を持つケースの取り扱いは分析プログラムによって異なるが,通常はそのようなケースを除外して分析が行われる(注2)。欠損値を特別に扱う場合には,分析に先だって適切な処理が必要である(例えば,欠損値を持つケースを除いた平均値で充当するとか,時系列データなら直近のデータ(の平均値)で代用するなど)。
注1: たとえば,33×1033 (データファイル中では 33E33と表現する。→浮動小数点表記)を欠損値とみなし,集計対象から除外する。
注2: 多変量解析で用いるデータに欠損値がある場合には,該当するケースは自動的に分析対象から外される(リストワイズ除去)。相関係数行列のみを求める場合には,関与する変数のうち1個でも欠損値があるケースを除外する方法(リストワイズ除去)と,2変数の組合せでいずれか(または両方)の変数が欠損値の場合にのみ,その変数対を除外する方法(ペアワイズ除去)がある。ペアワイズ除去はデータを最大限利用できるが,この方法で得られた相関係数行列を用いて多変量解析を行うのはいろいろな点で問題もある。
コーディングは原データの収集とデータ入力の仲立ちをする作業である。カルテ調査の場合に,もしカルテを1枚ずつ見ながら必要項目を選び出し,コード化しながらデータ入力するとすれば,作業が繁雑になる上に誤入力も多くなるであろう。データ入力はある意味では単純作業であるが,コーディング作業はそうではない。このような場合には抽出すべき項目を書込むチェックリストを作り,データ入力はチェックリストに基づいて行うようにするとよい。コーディングはデータ入力作業と切り離したほうがよい。
チェックリストに転記する場合には,誤入力に注意するのはもちろんであるが,カルテに記載されている解析に必要な情報を漏れなく拾い出す必要がある。定量的臨床検査値を正常,異常だけで入力するのは明らかに重大な情報の損失である。切除された腫瘍の大きさが実際にものさしで測定されているならば,単に大,中,小という順序尺度変数として入力するのでなく,数値をそのまま拾い出すべきである。チェックリストの様式も十分考えておく必要がある。
カルテ調査の場合のチェックリスト例 xxxxに関する患者調査 カルテ番号 性別 年齢 身長 体重 疾患名 検査所見1 検査所見2 8904001 1 32 178.1 62.5 2 125.3 24.6 8904007 2 41 153.7 45.7 1 132.6 33.8
アンケート調査の場合には調査票が前述の例のカルテに相当する。調査票の作成の段階から,後々のデータ入力,データ解析のことを考慮しておく必要がある。調査票の出来具合のよしあしで全てが決るといってもいい過ぎではない。
調査票によって得られる情報量の点から言えば,可能な限り,数値で回答を求めたほうがよい。
このような質問した場合,ほとんど全ての対象者が「1時間以上」と答えることになるかもしれない。「1時間以上」というカテゴリーはあまりにも漠然としているし,別の集団ではほとんどが「全くしない」とか「15分以下」に集中してしまうかもしれない。このような場合には,被調査者に時間をそのまま記入させ,データファイルにもそのまま入力したほうがよい。一週間に何時間くらい運動をしますか。
1:全くしない 2:15分未満 3:15分以上30分未満 4:30分以上1時間未満 5:1時間以上
また,例えばアンケート調査で対象者の既往歴の情報を得るための部分として以下のいくつかの例を考えてみよう。一週間に何時間くらい運動をしますか。
時間 分位
調査票Aは最も簡単であるが,同時に最も悪い例でもある。調査票A 質問6 今までにかかったことのある病気に○をつけてください。 糖尿病 脳卒中 虫垂炎 リウマチ 肝炎 心臓病 胃潰瘍 その他 調査票B 質問6 今までにかかったことのある病気に○をつけてください。 糖尿病 脳卒中 虫垂炎 リウマチ 肝炎 心臓病 胃潰瘍 その他( ) 調査票C 質問6 今までにかかったことのある病気に○をつけてください。 1:糖尿病 2:脳卒中 3:虫垂炎 4:リウマチ 5:肝炎 6:心臓病 7:胃潰瘍 8:その他( ) 調査票D 質問6 今までにかかったことのある病気にいくつでも○をつけてください。 1:糖尿病 2:脳卒中 3:虫垂炎(盲腸) 4:リウマチ 5:肝炎 6:心臓病 6 7:胃潰瘍 8:その他( )
1. ○がついた項目の番号を入力する。○が一個もついていない場合にはゼロを入力する。
この方法では,対象者がいくつ○をつけるか予想しがたい。たいていの統計解析プログラムは1ケースあたりの変数の個数は一定でなければならない。
2. 各選択肢を1つずつの変数に対応づける。最初の変数はつけられた○の個数,2番目以降に○がついた項目の番号を入力する。残った変数にはゼロを入れておく。
この方法では,2番目以降の変数が各疾患に1対1に対応していないので,例えば胃潰瘍の既往歴を持つ者の人数を集計する場合に,変数2から変数9までの8変数を集計対象としなければならない。このような機能はやや特殊なので,対応できる統計解析プログラムは限られているであろう。
3. 各疾患を8個の変数に対応づける。各疾患ごとに○がついていれば1,ついていなければゼロを入力する。
この方法が最も普遍的であろう。○がいくつついているかは変数1から変数8までの合計値を取ればわかる。また,糖尿病を1千万の位,脳卒中を百万の位,…,その他を1の位に割当てて新しい変数を作れば,この変数の度数分布をとることにより全ての解答パターンの例数がわかる。いくつかの変数の合計を取ったり,それらを組合せて新しい変数を作成する機能を持った統計解析プログラムパッケージは少なくない。
一般に,データファイルの作成・管理には専用のソフトウェアを使用するのが効率的である。
もしユーザが Excel などのスプレッドシートソフトウェア,あるいは access などのデータベースソフトウェアを使用しているならば,それらを用いてデータを入力したほうが便利かも知れない。それらのソフトウェアは,たいていの場合,CSVファイルを作成する機能を持っている。
CSVファイルを作成するためには,一般のエディタも使用できる。多くのユーザが持っていると思われるワープロソフトも使用できる。