質的変数・量的変数と尺度水準
統計解析において、変数は大きく質的変数(qualitative variable)と量的変数(quantitative variable)に分類されます。[1]ここでいう変数(variable)は、変量(variate)と同じ意味で捉えても差し支えないでしょう。
質的変数とは、間隔と比率に意味がない変数です。さらに順序に意味がないかあるかによって、名義尺度と順序尺度に分類することができます。[2]質的変数は、カテゴリカル変数とも呼ばれます。
量的変数とは、順序と間隔に意味がある変数です。さらに比率に意味がないかあるかによって、間隔尺度と比例尺度に分類することができます。
種類 | 順序 | 間隔 | 比率 | 例 | |
---|---|---|---|---|---|
質的変数 | 名義尺度 | 意味なし | 意味なし | 意味なし | 合否 ID、氏名、性別 |
順序尺度 | 意味あり | 意味なし | 意味なし | 大中小 順位、ランク |
|
量的変数 | 間隔尺度 | 意味あり | 意味あり | 意味なし | 西暦 摂氏温度 |
比例尺度 | 意味あり | 意味あり | 意味あり | 絶対温度 長さ、重さ、時間 |
例えば順序尺度である「大中小」は、順序に意味があります。しかし「大と中の間隔」と「中と小の間隔」が必ずしも等しいわけではなく、間隔に意味はありません。[3]同様に、スターバックスのベンティ(590 ml)、グランデ(470 ml)、トール(350 ml)、ショート(240 … Continue reading
例えば間隔尺度である「摂氏温度」は、順序に意味があります。さらに「10℃と11℃の間隔」と「11℃と12℃の間隔」が等しく、間隔に意味があります。しかし「10℃と20℃の比」に意味はありません。[4]例えば、ある日の最高気温(昼の気温)が20℃、最低気温(夜の気温)が10℃だったとして、「昼は夜より2倍気温が高い」と言うことはできません。
例えば比例尺度である「長さ」は、順序に意味があります。さらに「1メートルと2メートルの間隔」と「2メートルと3メートルの間隔」が等しく、間隔に意味があります。さらに「1メートルと2メートルの比」に意味があります。[5]「2メートルは1メートルより2倍長い」と言うことができます。
「間隔に意味がある」というのは、四則演算のうち和算(足し算)と減算(引き算)ができるということを意味します。
「比率に意味がある」というのは、四則演算のうち乗算(掛け算)と除算(割り算)ができるということを意味します。
比例尺度は、すべての四則演算が可能です。[6]比例尺度は、比率尺度あるいは比尺度とも呼ばれます。
質的データと量的データ
変数(変量)のとる値がデータです。
質的変数のとる値が質的データであり、量的変数のとる値が量的データです。
質的変数をカテゴリカル変数と呼ぶのと同様に、質的データをカテゴリカルデータとも呼びます。
プログラミングにおけるデータ型との関係
質的データと量的データ、またある尺度水準のデータをプログラミングにおいてどのように扱うか、明確な指針はありません。
そもそもコンピュータ上で何らかの演算を行うためには、質的データであっても結局は量的に扱う必要があります。この操作を、数量化と呼びます。
「質的データは数量化して扱う」というのは一つの方法ですが、ある種のデータ型を使用することにより、数量化を意識せずにある程度までの統計解析が可能となります。[7]「ある程度の」というのは、ライブラリによっては対応していない場合もあるためです。
データ型にも様々な種類がありますが、ここではデータフレームの列が持つ型との対応関係を考えます。[8]Pythonは、Pandasのデータフレーム(Pandas.DataFrame)を前提とします。
種類 | R | Python | |
---|---|---|---|
質的変数 | 名義尺度 | character型 | object型 (str型) |
factor型 (ordered = FALSE) |
category型 (ordered = False) |
||
順序尺度 | factor型 (ordered = TRUE) |
category型 (ordered = True) |
|
量的変数 | 間隔尺度 | ||
比例尺度 | numeric型 integer型 |
float型 int型 |
まず名義尺度のデータですが、Rでは大きく分けてcharacter型を使用する流儀と、factor型を使用する流儀の両方が存在します。Pythonでも同様に、object型 (str型)を使用する流儀と、category型を使用する流儀の両方が存在します。
次に順序尺度のデータですが、Rではfacor型を使用し、Pythonではcategory型を使用します。名義尺度か順序尺度かは、関数やメソッドの引数orderedで指定します。
間隔尺度のデータに対応する型は、おそらくありません。「数値型」を使用しながら、乗算(掛け算)と除算(割り算)を行わないよう注意するか、厳密性を無視して比例尺度と同じように扱うかのどちらかです。[9] … Continue reading
比例尺度のデータについては、RもPythonも一般に「数値型」と呼ばれる型を使用します。実数か整数かによって、Rであればnumeric型かinteger型を、Pythonであればfloat型とint型を使い分けます。
Rのfactor型やPythonのcategory型は、質的変数を意識したものといえます。一方、所謂「文字列型」や「数値型」は、名義尺度や比例尺度とまったく同じ概念というわけではありません。あくまで便宜上、それらの型を使用していると考えるがよいでしょう。
脚注
1 | ここでいう変数(variable)は、変量(variate)と同じ意味で捉えても差し支えないでしょう。 |
---|---|
2 | 質的変数は、カテゴリカル変数とも呼ばれます。 |
3 | 同様に、スターバックスのベンティ(590 ml)、グランデ(470 ml)、トール(350 ml)、ショート(240 ml)も順序に意味はありますが、間隔に意味はありません。 |
4 | 例えば、ある日の最高気温(昼の気温)が20℃、最低気温(夜の気温)が10℃だったとして、「昼は夜より2倍気温が高い」と言うことはできません。 |
5 | 「2メートルは1メートルより2倍長い」と言うことができます。 |
6 | 比例尺度は、比率尺度あるいは比尺度とも呼ばれます。 |
7 | 「ある程度の」というのは、ライブラリによっては対応していない場合もあるためです。 |
8 | Pythonは、Pandasのデータフレーム(Pandas.DataFrame)を前提とします。 |
9 | 西暦であれば時系列データとして扱う方法もあるのと、摂氏温度(℃)であれば273.152519を足すことにより、絶対温度(K)に変換することも可能です。 |