Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

UCI Machine Learning Repository の Wine Quality のデータの分析2 - データの前処理と箱ひげ図とヒストグラム

www.crosshyou.info

の続きです。データ分析をしやすいように、いくつかデータフレームに手を加えます。

はじめに、colorをファクター型にします。

白ワインのほうが多い事がわかります。

次に各変数の数値範囲を統一したいと思うので、自作の関数を作ります。

0から1にしなかったのは、あとで対数変換するかもしれないからです。

この自作関数、rescale12()をcolorとquality以外の変数に適用します。

across()関数を使います。

こうしたら、各変数の箱ひげ図をみてみましょう。

どの変数も外れ値がたくさんありますね。

ヒストグラムも作成してみます。

residual_sugar, chlorides, free_sulfer_dioxideの3つは、一番左の棒が一番高いので、対数変換したほうがよいように思います。

もう一度ヒストグラムを描いてみます。

こんな感じになりました。

とりあえず、こんな感じでデータの前処理は終わります。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

はじめから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# colorをファクター型にする
df <- df_raw |> 
  mutate(color = as.factor(color))
summary(df$color)
#
# 変数を1~2の範囲に変換する関数
rescale12 <- function(x) {
  (x - min(x)) / (max(x) - min(x)) + 1
}
#
# rescale12()のテスト
rescale12(1:10)
rescale12(3:8)
#
# rescale12()を使う
df <- df |> 
  mutate(across(fixed_acidity:alcohol, rescale12))
summary(df)
#
# 各変数の箱ひげ図
par(mfrow = c(3, 4))
for (i in 2:12) {
  boxplot(df[ , i], main = colnames(df)[i])
}
par(mfrow = c(1, 1))
#
# 各変数のヒストグラム
par(mfrow = c(3, 4))
for (j in 2:12) {
  hist(dfj, main = colnames(df)[j],
       xlab = "")
}
par(mfrow = c(1, 1))
#
# residual_sugar, chlorides, free_sulfur_dioxideを対数変換
df <- df |> 
  mutate(across(residual_sugar:free_sulfur_dioxide, log)) |> 
  mutate(across(residual_sugar:free_sulfur_dioxide, rescale12))
#
# ヒストグラム
par(mfrow = c(3, 1))
hist(df$residual_sugar,breaks = 100)
hist(df$chlorides, breaks = 100)
hist(df$free_sulfur_dioxide, breaks = 100)
par(mfrow = c(1, 1))
#

 

(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは Close up of yellow Adonis ramosa flowers, flowering on the snow land, under the blue sky. photo です。)