とあるお兄さんの雑記

基本的に技術系の内容を書きますが、何を書くかは私の気分です。

統計学における基礎的な用語集vol.1~文字データの名称とデータ分析する際の文字情報の取り扱い~

データ分析をやるうえで避けて通れない統計学の知識を書いていきます。

こちらの記事は統計Webと呼ばれる記事を参考にしています。

データ一覧表

下に一覧表を示します。忙しい方は参考にどうぞ。説明は下に続きます。

質的or量的 データ名
質的データ 名義尺度 男女、血液型など
質的データ 順序尺度 級位、アンケート項目など
・・・・・ ・・・・ ・・・・・・・・・・・・
量的データ 間隔尺度 温度、テストの点数など
量的データ 比例尺度 身長、体重など

質的データと量的データ

我々が扱うデータには大きく2つに分けられます。それが質的データ量的データです。 質的データは数値では扱えないデータです。反対に量的データは数値データです。質的データには、名義尺度順序尺度が、量的データには、間隔尺度比例尺度がそれぞれあります。

質的データ~名義尺度~

他と区別し分類するための名称のようなデータ。名義尺度は順序や大小に関係がなく、順番を入れ替えても成り立ちます。

例:男女、血液型、所属学部など

質的データ~順序尺度~

意味や大小に関係があるが、間隔には意味がないデータ。一見すると数値が入ることもありますが、順番を入れ替えると成り立ちません。

例:統計検定の級位(1級、2級、・・・)
  アンケートなど(あなたは優柔不断か?1.おおいにあてはまる、2.ややあてはまる、3.ふつう、4.ややあてはまらない、5.あてはまらない)

量的データ~間隔尺度~

目盛りが等間隔になっているデータ。その意味があるデータのこと。負の値を取る可能性がある。

例:温度、テストの点数、西暦など

量的データ~比例尺度~

0を原点とし、間隔と比率に意味があるデータ。負の値を取ることは、原則ありません(多分)。

例:身長、速度、睡眠時間、値段など

間隔尺度と比例尺度の違いは?

間隔尺度と比例尺度はどちらも量的データであるため、一見すると見分けづらいです。統計Webでは、「0という値に意味があるもの」を間隔尺度、「0という値に意味がないもの(もしくは全く「無い」という意味を示すもの)」を比例尺度として見分けています。


間隔尺度のデータが0の場合、温度が0であったとしてもちゃんと0度という意味を持ちます。一方、比例尺度は睡眠時間が0の場合、0時間寝たということになります。つまり、一切寝ていないため、睡眠時間は「無い」という意味になります。

データ分析における質的データ(文字情報)の扱い

データ分析をする際、問題となってくるのが質的データ(文字情報)をどう扱うかです。例えば、KaggleのHouse Priceという様々なデータから家の価格を予測する練習問題では、80程度のデータのうちかなりのデータが文字情報となっています。

以下は一例です。右側にobjectと書いてあるものが文字情報です。

f:id:kurasher:20200517003644p:plain

このうち、上から三つ目のMSZoningの要素を見てみると、

f:id:kurasher:20200517003923p:plain

となっています。このままの状態では家の価格を予測することが出来ないため、いったん数値に直す必要があります。


そこで、文字情報を数値に変換するLabel Encoderを使用します(Label Encoderを使用するにはscikit-learnのインストールが必要です)。

#Label Encoder 使用例
from sklearn.preprocessing import LabelEncoder
lbl = LabelEncoder()
#変換したいデータの選択
lbl.fit(list(train['MSZoning'].unique()))

#数値に変換
dummy = lbl.transform(train['MSZoning'])

変換前
f:id:kurasher:20200517003926p:plain

変換後
f:id:kurasher:20200517003934p:plain

無事変換されましたね!

ちなみに、こちらの記事では、object型のデータに対してまとめて変換を行っており、最終的にはKaggleに提出するところまで行なっています。ぜひ読んでみて下さい。