4 つの基本的な品質チェック
スピーダー:回答時間の中央値を、まじめに回答するのに必要な時間の目安とします。中央値の一定割合(既定 33%)または指定した最短秒数のうち、大きいほうより短い行にフラグを付けます。回答時間が空欄または数値でない行はスピーダーとは判定しません。
ストレートライナー:選んだマトリクス設問で、回答したすべての項目が同じ回答で、かつ 3 項目以上(変更可)回答している行にフラグを付けます。長いマトリクスでは部分的な同一回答はよくあるため、「同一回答の最長連続」も弱い補助シグナルとして表示します。
重複回答:同じ回答者 ID が再び現れた場合、最初の出現を残し、2 回目以降にフラグを付けます。「行全体が完全に同一のコピー」を選ぶと、ID が振り直された重複送信も見つけられます。
不完全回答:空欄のセルが全列に占める割合がしきい値(既定 50%)を超える行にフラグを付けます。スキップロジックによる空欄は正常なので、分岐の多い調査票ではしきい値を上げてください。
自由回答・ほぼ重複・技術的識別子・アテンションチェック
低品質な自由回答:選んだ自由回答の各回答を、決まった順序でチェックします。無効回答(「n/a」「idk」「nothing」「.」「good」「特になし」など)、文字を含まない回答(「12345」など)、極端に短い回答、キーボードの乱打(QWERTY 配列の同じ段で隣り合う 5 キーの連続、例「asdfg」)、文字の繰り返し(「kkkk」「asdasd」など)、母音が少なすぎる回答、文字の種類が異常に少ない長い回答が対象です。辞書にある実在の単語や、ドイツ語の長い複合語などは誤検出しないよう調整されています。
文字体系による区別:キーボードの乱打・母音・長さのチェックはラテン文字中心の回答にだけ適用します。日本語・中国語・韓国語・ロシア語・アラビア語などの回答はこれらのルールで誤判定されず、文字体系に依存しないチェック(無効回答、文字なし、全文の繰り返し、エントロピーの外れ値、コピー&ペースト)だけを受けます。
コピー&ペースト:同じ列で、大文字・小文字、空白、句読点、不可視文字を無視すると同一になる 30 文字以上(漢字・かなは 2 文字として計算)の回答が 3 人以上(大きなファイルでは回答数の 0.5%)に現れた場合、そのグループの全行にフラグを付けます。いわゆる回答ファームの典型的な特徴です。無効回答は弱いシグナルで、理由は表示しますが、既定ではクリーニング済みファイルに残します。感度は低・標準・高から選べます。
ほぼ重複した回答:選んだ列のうち両方の行が回答している列だけを比較し、一致率が 95%(変更可)以上なら先の行を残して後の行にフラグを付けます。全ペアの比較を避けるためにハッシュによるグループ分けを使い、空欄は取りうるすべての値と一致するものとして扱います。比較回数の上限(200 万回)に達した場合は、見逃しの可能性があることを結果に明記します。
技術的識別子の重複:IP アドレス、デバイス ID やフィンガープリント、メールアドレス、パネル ID などの列で、2 回目以降に現れた同じ値にフラグを付けます。「N/A」「-」「unknown」「0.0.0.0」などのプレースホルダーは無視し、IP アドレスは正規化した形で比較します。オプションで同じ /24(IPv4)または /64(IPv6)ブロックも重複とみなせます。オフィスや学校、モバイル回線ではアドレスの共有がよくあるため、確認のためのシグナルとして扱ってください。
アテンションチェック:トラップ設問と想定回答(例:「『とてもそう思う』を選んでください」)を指定します。コードでも値ラベルでも指定でき、複数の正解はカンマかセミコロンで区切ります。不合格の数が指定値に達した行にフラグを付けます。スキップロジックで設問が表示されなかった可能性があるため、既定では空欄を不合格とはみなしません。
判定式
スピーダー:回答時間 < max(p × 回答時間の中央値, 最短秒数)。p の既定値は 0.33、最短秒数は任意です。
ストレートライナー:回答項目数 ≥ m かつ回答したすべての項目が同じ回答(標準偏差 0)。m の既定値は 3 です。
不完全回答:空欄のセル数 ÷ 全列数 > しきい値。しきい値の既定値は 0.50 です。
ほぼ重複:一致した回答数 ÷ 両方が回答した列数 ≥ s(既定 0.95)。両方が回答した列は選択列の半分以上(3 列以上)必要です。
平均値ではなく中央値を使う理由:回答時間は右に裾の長い分布で、調査画面を何時間も開いたままにする少数の回答者が平均値を押し上げ、普通の回答者を大量にスピーダーと誤判定してしまいます。中央値はこうした極端な値の影響を受けません。
サンプルデータでの実行例
組み込みの架空のスナックブランド・トラッキング調査は 600 行です(生成した回答者 596 人と、完全に同一の重複送信 4 件)。既定の設定で、duration_sec、8 問の brand_grid_* マトリクス設問、respondent_id を選ぶと次のようになります。
回答時間の中央値は 520 秒で、スピーダーのしきい値は 0.33 × 520 = 171.6 秒です。これを下回る行が 26 行、8 問のブランドマトリクスですべて同じ回答の行が 38 行、既出の回答者 ID と重複する行が 4 行、空欄が 50% を超える行が 0 行でした。
この 4 ルールだけで合計 54 行にフラグが付き、そのうち 14 行はスピーダーとストレートライナーの両方に該当するため、ルール別のフラグ数の合計(68)は 54 より大きくなります。クリーニング済みファイルには 546 行が残ります。
サンプルには自由回答 like_most_oe、ip_address、device_id、「5」を選ばせる attention_check も含まれています。すべてのチェックをオンにすると、低品質な自由回答が 17 行(意味のない文字列 10 件、同じ文のコピー&ペースト 7 行)で、ほかに無効回答 6 件が弱いシグナルとして一覧表示されますが、行は残ります。日本語・中国語・韓国語・ロシア語・アラビア語・スペイン語の回答はいずれもフラグが付きませんでした。ほぼ重複は 4 行(先ほどの重複送信)、既出の IP アドレス(8 件)またはデバイス ID(7 件)と重複する行が 11 行、アテンションチェック不合格が 46 行で、その多くはマトリクスの回答をそのまま繰り返したストレートライナーです。
8 つのルールで合計 80 行にフラグが付き、そのうち 47 行は 2 つ以上のルールに該当します。クリーニング済みファイルには 520 行が残り、そのうち 5 行は無効回答という弱いシグナルだけを持つ行です。「自由回答の問題が無効回答のみの行も除外する」を選ぶと、フラグは 85 行、残る行は 515 行になります。
使いどころと注意点
オンラインパネルや自記式アンケートのデータをクロス集計する前に使うのがおすすめです。こうしたデータではスピーダーやストレートライナーが最も起こりやすいからです。調査会社から納品されたファイルに重複入力やテスト回答が混ざっていないかの確認にも役立ちます。
- 自動削除の手順として使わないでください。特に 1 つのルールにだけ該当した行は、まず中身を確認しましょう。
- 設問数が少ない、事実を尋ねる設問である、回答者が本当にすべてのブランドを高く評価している、といった場合は同一回答が本物のこともあります。
- 電話調査(CATI)や訪問面接では回答時間が調査員のペースを反映するため、スピーダーのルールはそのまま当てはめられません。
- ファイル内のデータしか見えないため、調査プラットフォーム側の不正対策(CAPTCHA、デバイスフィンガープリント、パネルの本人確認)の代わりにはなりません。自然な文章の AI 生成回答も意味のない文字列とはみなされません。
- 方法の説明やクライアント向けレポートには、各ルールのしきい値と除外した件数を記載し、クリーニングがサンプル構成を変えていないか読み手が判断できるようにしましょう。
フラグの読み方
1 つのルールだけに該当した行は、人の目で確認すべきシグナルです。2 つ以上のルールに同時に該当した行は、不誠実な回答や不正回答の強い証拠であることが多いです。「フラグ列付きで全行をダウンロード」ではすべての行を残し、flag_speeder、flag_straightliner、flag_duplicate、flag_incomplete などのフラグ列と flag_rule_count(該当ルール数)、flag_reasons(理由)を追加するので、表計算ソフトで 1 行ずつ確認できます。出力ファイルの列名と理由は、ほかのツールやスクリプトとの連携のため英語のままです。
クリーニングが終わったら、ファイルを Crosstabs のワークスペースに読み込んでクロス集計を作成できます。先に値ラベルの一括変換ツールで数値コードを選択肢のラベルに変換しておくこともできます。