データの属性を合わせる
たとえば、こんなデータセットがあるとする。\[ 139.8 ,145.6, 142.3, 150.2, 141.7, 136.5, 147.9, 143.1, 144.4, 138.7 \] これは、ある小学校5年生のクラスから男子10人分を抜き出して、その身長を並べたものだ。
これらのデータの尺度は、量的データのうちの比例尺度をもつ。つまり、0が原点であり、間隔と比率に意味をもつ。そして、すべてのデータの単位はセンチメートルに統一されている。また、有効数字は小数第1位だ。
このデータセットに体重が混じっていたら、クラスの男子の平均身長を計算できなくなってしまう。また、有効数字がバラバラだと、平均値を小数以下第何位で丸めればよいのか分からなくなってしまう――この場合、有効数字の桁数が一番大きいものに合わせることになりますが、それより小さいデータは計測値としては〈細かすぎる〉ということになる。

個々のデータは有限小数で、正の数だ。
ただし、注意すべきことがある。それは、欠席して身体検査を受けられなかった児童のデータをどう扱うかだ。データが無いからといって \( 0.0 \) にしてしまうと、クラスの身長の平均値が間違った値になってしまう。
NULLや nil として扱うべきだが、配列やリストにNULL値を入れると、正しく統計計算できない処理系(例:Python)があるので工夫しよう。
これらのデータの尺度は、量的データのうちの比例尺度をもつ。つまり、0が原点であり、間隔と比率に意味をもつ。そして、すべてのデータの単位はセンチメートルに統一されている。また、有効数字は小数第1位だ。
このデータセットに体重が混じっていたら、クラスの男子の平均身長を計算できなくなってしまう。また、有効数字がバラバラだと、平均値を小数以下第何位で丸めればよいのか分からなくなってしまう――この場合、有効数字の桁数が一番大きいものに合わせることになりますが、それより小さいデータは計測値としては〈細かすぎる〉ということになる。
個々のデータは有限小数で、正の数だ。
ただし、注意すべきことがある。それは、欠席して身体検査を受けられなかった児童のデータをどう扱うかだ。データが無いからといって \( 0.0 \) にしてしまうと、クラスの身長の平均値が間違った値になってしまう。
NULLや nil として扱うべきだが、配列やリストにNULL値を入れると、正しく統計計算できない処理系(例:Python)があるので工夫しよう。
データの尺度
比例尺度以外の尺度を一覧にした。
| 尺度名 | ゼロの意味 | 順序 | 差 | 比 |
|---|---|---|---|---|
| 名義尺度 | なし | × | × | × |
| 順序尺度 | なし | ○ | × | × |
| 間隔尺度 | 便宜的 | ○ | ○ | × |
| 比例尺度 | 絶対的 | ○ | ○ | ○ |
たとえば、社員番号は名義尺度である。便宜上、社員番号順に並べることはあっても、それが社員の序列を示すわけではない。社員番号の差や比には意味がない。かつて、スティーブ・ジョブズはAppleの社員番号「ゼロ」だったことがあるが、これも大して意味はない。
順序尺度は、たとえば「初めて買ったデジカメで新宿夜景を撮る」に掲載している新宿西口の超高層ビルの高さ順一覧がそれである。順位が「ゼロ」になることはないし、差や比には意味がない。
摂氏(℃)は、意外に思われるかもしれないが、間隔尺度である。水の氷点を0℃、沸点を100℃と定義した人工的な温度スケールです。10℃より20℃のほうが高いので順序はあるし、差にも意味があります。しかし、20℃は10℃の2倍暖かいとは言えませんし、0℃は温度が無いと言うわけではありません。
順序尺度は、たとえば「初めて買ったデジカメで新宿夜景を撮る」に掲載している新宿西口の超高層ビルの高さ順一覧がそれである。順位が「ゼロ」になることはないし、差や比には意味がない。
摂氏(℃)は、意外に思われるかもしれないが、間隔尺度である。水の氷点を0℃、沸点を100℃と定義した人工的な温度スケールです。10℃より20℃のほうが高いので順序はあるし、差にも意味があります。しかし、20℃は10℃の2倍暖かいとは言えませんし、0℃は温度が無いと言うわけではありません。
データの次元
たとえば、こんな健診データがあったとする。
| 社員番号 | 性別 | 年齢 | 身長 | 体重 | 最大血圧 | 最小血圧 |
|---|---|---|---|---|---|---|
| 1001 | 男 | 45 | 172 | 68 | 135 | 85 |
| 1002 | 女 | 32 | 158 | 52 | 122 | 76 |
| 1003 | 男 | 39 | 180 | 75 | 140 | 90 |
| 1004 | 女 | 28 | 165 | 60 | 125 | 80 |
| 1005 | 男 | 50 | 175 | 82 | 145 | 92 |
| 1006 | 女 | 41 | 160 | 55 | 130 | 84 |
| 1007 | 男 | 36 | 178 | 77 | 138 | 88 |
| 1008 | 女 | 30 | 162 | 59 | 126 | 78 |
| 1009 | 男 | 29 | 170 | 70 | 128 | 82 |
| 1010 | 女 | 35 | 159 | 54 | 120 | 75 |
横方向(行方向)にデータを見た場合、社員1人当たり7つのデータがある。これを 7次元のデータと呼ぶ。数学や物理学で学んだ空間が3次元という意味とは異なり、異なる属性をもったデータのかたまりを次元と呼ぶ。
次に、縦方向(列方向)にデータを見ていくと、各々の行のデータの属性は一致している。身長(単位:cm)に体重(単位:kg)が混じることはない。

このように、次元をもっており、個々の次元のデータの属性が合っているデータセットのことをデータ表、またはテーブルと呼ぶ。これは Excelのシートに似ており、また、データベースのテーブルも同じ構造になっている。
次に、縦方向(列方向)にデータを見ていくと、各々の行のデータの属性は一致している。身長(単位:cm)に体重(単位:kg)が混じることはない。
このように、次元をもっており、個々の次元のデータの属性が合っているデータセットのことをデータ表、またはテーブルと呼ぶ。これは Excelのシートに似ており、また、データベースのテーブルも同じ構造になっている。
データ構造と NULL
前述のように Excelでもデータセットを扱うことができるのだが、このとき注意することがある。それは、空行や空列、セル結合を用いないことである。つまり、Excelのシートをテーブル化できるようなデータ構造に保つ必要がある。そうしないと、データベースやデータウェアハウスに投入したり、BI(Business Intelligence)や BA(Business Analytics)で2次利用することができなくなる。Microsoft Copilotを使った分析もできない。
つまり、他人に見せるための見栄えではなく、データ構造を正しく保つことが肝要である。

ここで問題になるのが、データセットの一部が欠けている場合だ。
たとえば、上述の健診データの場合、何かの都合で血圧を計測できなかった社員がいたとする。それをどう表現するかという問題である。
Excelであれば空セルにするのが常道だが、データとしては「ゼロ」「空文字」「undefined」ではない。欠損値を表す NULL が妥当だろうが、プログラミング言語によっては None や NaN、nil と表記することがあるので注意が必要だ。
つまり、他人に見せるための見栄えではなく、データ構造を正しく保つことが肝要である。
ここで問題になるのが、データセットの一部が欠けている場合だ。
たとえば、上述の健診データの場合、何かの都合で血圧を計測できなかった社員がいたとする。それをどう表現するかという問題である。
Excelであれば空セルにするのが常道だが、データとしては「ゼロ」「空文字」「undefined」ではない。欠損値を表す NULL が妥当だろうが、プログラミング言語によっては None や NaN、nil と表記することがあるので注意が必要だ。
(この項おわり)

コンピュータはかつて電子計算機と呼ばれたように、データセットを扱う機会がとても多い。プログラム開発に追われて忘れしまいがちだが、そのプログラムが扱うデータセットが「ある一定の形式や構造」に整えられていないと、実行時エラーが発生してしまう。
そこで今回は、データセットの「ある一定の形式や構造」について振り返っておこう。