StaatAppを用いたデータクレンジング・操作方法について紹介します.
紹介する機能
本ページではデータクレンジング・操作に用いる以下の機能を紹介します.
・ソート
・置換
・行削除
・欠測値の処理
・ダミー変数作成
・データ型の変換(応用)
StaatAppの基本機能の紹介は以下のページで解説しています.
動画で見る
本ページと同様の内容をYoutube動画で紹介しています.
対象のデータ
以下のサンプルデータを対象に操作方法を紹介します.
No. | 副業有無 | 収入 | 性別 | 年齢 | 身長 | 体重 | 睡眠時間 |
1 | 有 | 580 | 男性 | 32 | 170 | 60 | 420 |
2 | 無 | 430 | 女性 | 28 | 156 | 43 | 480 |
3 | 有 | 800 | 男性 | 45 | 163 | 57 | 350 |
4 | 有 | 780 | 女 | 36 | 161 | 48 | 330 |
5 | 有 | 690 | 女性 | 42 | 158 | 49 | 350 |
6 | |||||||
7 | 無 | 12000 | 女性 | 32 | 165 | 54 | 350 |
8 | 無 | 350 | 女性 | 23 | 161 | 45 | 440 |
9 | 有 | 620 | 男性 | 29 | 180 | 78 | 450 |
10 | 無 | 500 | 女性 | 150 | 42 | 380 | |
11 | 無 | 430 | 男 | 33 | 168 | 69 | 430 |
12 | 有 | 590 | 女性 | 36 | 159 | 47 | 370 |
13 | 有 | 1200 | 男性 | 51 | 169 | 65 | 330 |
14 | 無 | 810 | 男性 | 53 | 174 | 70 | 340 |
15 | 無 | 620 | 女性 | 380 | |||
16 | 無 | 430 | 女性 | 31 | 156 | 45 | 400 |
17 | 有 | 570 | 女性 | 39 | 164 | 52 | 350 |
18 | 無 | 460 | 男 | 28 | 170 | 59 | 430 |
19 | 有 | 620 | 男性 | 30 | 178 | 71 | 340 |
20 | 無 | 320 | 男性 | 25 | 167 | 62 | 410 |
21 | 無 | 430 | 女性 | 41 | 166 | 58 | 400 |
22 | 有 | 570 | 女性 | 39 | 164 | 52 | 350 |
上記と同様のExcelデータは以下からダウンロード可能です.
複数列を対象にしたソート
データ表示領域の列名部分をクリックすることでソート(並び替え)することも可能ですが,数値データや複数列を基準として並び替えたい場合は「ソート」機能を用います.

ダイアログから,並び替えの基準とする変数(列名)を選択します.上位の選択された変数ほど優先度が高くなります.例では年齢で並び替えたあとに性別で並び替えを行います.

以下のようにデータが並び替えられました.”性別”の列を見ると表記ゆれがあることがわかります.ソート機能では表記ゆれを簡単に発見できることも大きなメリットです.

置換(表記ゆれの処理)
特定の文字列から特定の文字列に値を変換したい場合は,「置換」機能を用います.

置換用ダイアログから置換前後の文字列を入力します.オプションの「完全に一致」ではセル内の文字列が完全に一致した場合のみ置換します.「半角英数字に変換」では全角英数字を自動で半角英数字に変換します.
例では”性別”列の表記ゆれを修正するために,”女”→”女性”に置換します.


今回のように対象のセルが少ない場合は,セルに直接入力して修正した方が早い場合もあります.同様に”男”→”男性”に置換を行います.
特定の行の削除(外れ値の処理)
特定の行を削除する場合は「行の削除」機能を用います.

表示されたダイアログから削除したい行番号を「行番号(上限)」に入力します.「行番号(下限)」は「行番号(上限)」の値に合わせて自動で更新されます.複数の行を一括で削除したい場合は,「行番号(上限)」に上側の行番号を,「行番号(下限)」に下側の行番号を入力します.
例では”収入”が明らかに大きい(外れ値)5行目のデータを削除します.

No7のデータが削除されました.「行の削除」機能は外れ値以外にも読み込ませたデータに不要行がある場合の処理に用いることができます.

欠測値の処理
StaatAppでは空白データなどの欠測値を読み込ませた場合は,”nan”と表示されます.一括して”nan”の処理を行う場合は「欠測値の処理」機能を用います.

表示されたダイアログでは,画面左側で変数ごとの欠測値の数を確認することができます.

”年齢”列では欠測値が3つあることがわかります.欠測値の処理方法として以下の3つの方法が可能です.
・リストワイズ除去
・ペアワイズ除去
・補完
例では各変数の平均値で補完を行います.

欠測値が平均値で補完されています.数値データでない”副業有無”や”性別”列は平均値を求めることができないため,”nan”のままとなります.
カテゴリーデータの欠測値に対しては,直接入力して値を変更もしくは除去することで対応します.今回はリストワイズ除去で欠測値がある行を削除します.

ここまでがデータクレンジングに関係するデータの加工方法になります.ここまで行うことで全ての統計解析を実行することが可能となります.
ダミー変数への変換
カテゴリーデータをダミー変数に変換する場合は,「ダミー変数に変換」機能を用います.

ダイアログから,ダミー変数に変換する変数を選択します.

選択された変数がダミー変数となりデータの最終列に追加されます.

応用 データ型の変換
StaatApp(Python)では”データ型”という考え方があります.データ型とは各セルに入力された値がどのような値かを分類するものです.Excelでもデータ型の考え方はあり,自動で設定されますが以下のように各セルに明示的に設定することができます.

StaatAppでは「数値型」「文字列型」の2つのデータ型が存在します.
数値型:半角数字で入力された値.演算など順序尺度以上の統計解析が可能.
文字列型:半角英字・全角文字で入力された値.クロス集計表などのカテゴリー変数に対する統計解析が可能.
データ表示部分で値が左寄せされている列のデータ型は「文字列型」になります.逆に値が右寄せされている列は「数値型」になります.StaatAppではデータが読み込まれた時点で自動で判定されます.

「数値型」から「文字列型」もしくは,半角数字だけが入力されている列を「文字列型」から「数値型」に変換することは可能です.
ツールバーの「データ型の変換」機能を用います.

以下の例は”年齢”の列を「数値型」→「文字列型」に変換する例です.

設定が完了したら「実行」ボタンをクリックすると以下のように変換されます.

統計解析が上手く実行できない場合や,置換機能で半角英数字に変換した場合は意図したデータ型になっているか確認してください.
補足 データクレンジングとは
データクレンジングとはデータ分析を行いやすくする,正しい分析結果を得るためにデータをきれいにする(クレンジング)ことです.
既存データに対してデータクレンジングを行わないまま分析を行った場合,誤った分析結果になる可能性があります.
例えば以下のように,入力規則・表記方法がばらばらのデータがあるとします.データクレンジングを行わないまま分析を行った場合,3人の被験者は同じ回答内容であるはずなのに異なる結果として分析される,もしくは計算自体が上手くできないといった問題が発生します.

データクレンジングでは具体的に,データの削除や置換といった作業を行います.先程のデータ(ダーティデータ)を置換することで,正しい分析が可能なデータを得ることができます.
