データの図示(1)

データを扱って解析を行う際に、必ずやっておくことが図示です。データを図示することで、全体の様子を概観することができ、入力データの特徴や間違いに気づくことができます。

下記内容について、データはすでに読み込んでいるという前提でコードを書いておりますので、リンク先等を参考に先に読み込んでおいてください。

作図の関数

作図で基本となる関数はplot()関数です。扱う変数の特徴に合わせて、グラフの形をある程度自動で選んでくれます。

こちらで意図的に図を選択する場合は、下記のような関数を利用します。

棒グラフ
barplot()関数
積み上げ棒グラフや帯グラフもこの関数を利用して作成します。
ヒストグラム
hist()関数
箱ひげ図
boxplot()関数
モザイクプロット
mosaicplot()関数
散布図
plot()関数

作図を行う関数の中で、枠の作成から図の描画まですべてやってくれる関数を高水準関数と呼び、一つ一つを個別にやっていくための関数を低水準関数と呼びます。

単変量の図示

一つ一つの変数について、それぞれ図示することを考えていきます。

カテゴリカル変数の図示

カテゴリカル変数の図示は、棒グラフなどを使います。棒グラフはbarplot()関数で描画しますが、plot()関数が与えられた引数に応じて勝手に棒グラフを作成してくれます。

## カテゴリカル変数の図示

カテゴリカル変数は、棒グラフなどで図示します。

```{r barplot}

## 名前を指定しながら

# village

plot(dat$village)

## 列番号で指定しながら

plot(dat[, 5]) # sex

```

barplot()関数では、引数としてベクトルか行列が必要ですので、barplot(dat$village)としてもうまくいきません。

連続変数の図示

連続変数の図示であれば、ヒストグラム(hist()関数)や箱ひげ図(boxplot()関数)を用いて、分布の様子を確認します。

## 連続変数の図示

連続変数は、ヒストグラムや箱ひげ図を用いて図示します。

```{r num}

## 名前を指定しながら

# income

hist(dat$income)

boxplot(dat$income)

## 列番号で指定しながら

hist(dat[, 2]) # age

boxplot(dat[, 2]) # age

```

2変量の図示

2変量の図示では、その変数同士の関連に注目できる方法を用います。

また、以下のスクリプトには、「モデル式」と呼ばれる「~」の左辺を右辺の式で説明するモデルを作成するオブジェクトがよく使われます。プログラミングして、自動的に複数の変数同士の関連を図示するのでなければ、モデル式の利用をお勧めします。

カテゴリカル変数とカテゴリカル変数

plot()関数mosaicplot()関数を用いて、モザイクプロットをします。

## カテゴリカル変数同士の図示

plot()関数mosaicplot()関数を用いて、モザイクプロットをします。下図は、モデル式を使ったバージョンです。

```{r mos}

plot(~ village + sex, data = dat)

mosaicplot(~ village + sex, data = dat)

# モデル式を使わない場合

plot(dat$village, dat$sex)

plot(dat[, 6], dat[, 5]) # village: 6列目、sex: 5列目

```

今回のモデル式「~ village + sex」のように左辺が空白の場合、「データの度数=条件に当てはまるデータ行の数」として集計されるらしい。(Rにおける分割表の基本的な扱い方

カテゴリカル変数と連続変数

plot()関数boxplot()関数を用いて、箱ひげ図を図示します。このとき、関数内のモデル式の左辺に連続変数を持ってきます。

## カテゴリカル変数と連続変数

plot()関数boxplot()関数を用いて、箱ひげ図を図示します。下図は、モデル式を使ったバージョンです。

```{r box}

plot(income ~ village, data = dat)

boxplot(income ~ village, data = dat)

# モデル式を使わない場合

plot(dat$village, dat$income)

plot(dat[, 6], dat[, 7]) # village: 6列目、income: 7列目

```

連続変数と連続変数

plot()関数を用いて、散布図を作図します。下図は、モデル式を使ったバージョンです。

## 連続変数同士の図示

plot()関数を用いて、散布図を作図します。

```{r sca}

plot(weight ~ height, data = dat)

# モデル式を使わない場合

plot(dat$height, dat$weight)

plot(dat[, 3], dat[, 4]) # height: 3列目、weight: 4列目

```

図の装飾

必要に応じて、図のタイトルなどを指定する方法についてのメモです。

タイトル
main = "図のタイトル"
軸の名前
xlab = "X軸の名前"
ylab = "Y軸の名前"
軸の範囲
xlim = c(min, max)
ylim = c(min, max)
col = "色の名前で指定"
col = 数字
col = オブジェクト
点や線の指定
点:type = "p"
線:type = "l"
両方:type = "b"
描画なし:type = "n"
点の種類
pch = 数字
線の種類
lty = 数字
線の太さ
lwd = 数字