データのお砂場(188) R言語、Cars93、1993年の乗用車のスペック {MASS}

Joseph Halfmoon

MASSパッケージのサンプルデータセットを経めぐってます。大文字優先のABC順。前回Bostonの後の今回はCars93です。忘却力の老人には、過去回で「Cars」的なお名前のサンプルデータベースを触った遠い記憶あり。調べてみたら2つもありました。どれも自動車のデータベース、しかし今回のものは以前のとは異なります。

※「データのお砂場」投稿順Indexはこちら

過去回での「自動車」のサンプルデータベース

シンプルな「cars」という御名前のサンプル・データベースを扱った過去回が以下に。

データのお砂場(47) R言語、cars、自動車の制動距離?いや停止距離とな

上記のデータベースは「自動車の停止距離」を扱ったもので、取得された時代は1920年代という古いものです。しかし物理現象、100年たっても本質は変わらず。

一方、今回のデータベースは自動車の車種ごとのカタログ・スペック的なものです。明らかに上記とは毛色がちがいます。似たものを扱った過去回が以下に。

データのお砂場(65) R言語、mtcars、50年前の自動車「ロードテスト」の結果

上記は1973~1974年モデルの32車種に関する「ロードテスト」の結果です。どれが燃費がいいとか、悪いとかを11変数にまとめてます。

Cars93

今回のCars93は、1993年の93車種に関する「カタログ・スペック」的なものを27変数にまとめたものです。1993年というと昭和の老人にはつい最近に思えますが、30年前、ハイブリッドもEVもない時代っす。内燃機関車サイコー。解説ページのURLが以下に。

Data from 93 Cars on Sale in the USA in 1993

ソース的には、”the Consumer Reports”誌と”the PACE Buying Guide”誌という2つの雑誌から「ランダム」に選んだ93車種みたいです。なお、米国では人気もののPickup trucksと、当時から台頭してきていたらしい Sport/Utility vehicles は除外されているみたいです。この2車種についてはどういうわけか、掲載誌の情報が不完全だったらしいデス。よくわからんけど。

また、車種名は別でも実体は同じ車(重複モデル)は1つにまとめられているみたい。その昔、米国で「シボレー・ノバ」という車に半年くらい乗っていたけど、中身は「トヨタ・カローラ」であったことを思い出しました(信頼性はバッチリよ。個人の感想デス。)

先ずは生データから

MASSパッケージ内のサンプルデータセットなので、MASSパッケージのロードから。RawdataCars93

 

シンプルなデータ・フレームですが、27変数もあって目が回ります。いろいろ面白そうなフィールドもあるけれど、ちょっと一度にやるには多過ぎ。

まずは値段じゃ、ということでPriceのヒストグラムをとってみました。

hist(Cars93$Price)

結果はこんな感じ。histPrice

価格の単位は1000ドルです。そして1990年代は、今に比べたら円高基調。1ドル=約110円くらいみたいなので、現在の車両価格に比べると相当お安いじゃないかと思います。

車のType別にプロットしてみたのが以下です。

library(ggplot2)
g0 <- ggplot(Cars93, aes(x = Price))
g0 + geom_histogram(binwidth = 5) + facet_wrap(~Type) + labs(title="Cars93$Price by Type")

結果が以下に。histPriceByType

まあ、smallが安めなのはいいとして、LargeよりもMidsizeの方が値段のバラツキが大きいです。高級車はここにいるの?

一部の列のみ取り出す

しかし、27列もあると扱いがメンドイです。そこで、お惚け老人の主観で以下のフィールドを取り出すことにいたしました。selectCOLs

取り出し操作手順が以下に。

colnames(Cars93)
Cars93.sub <- Cars93[,c(2,3,5,11,12,13,25)]
summary(Cars93.sub)

そして変数を絞ったサマリが以下に。summarySUB

なお、エンジンサイズについての単位はリッターです。ここだけSIなのね。

pairs(Cars93.sub, main = "Cars93.sub")

上記で、pairsとった結果が以下に。pairsSUB

これを見ると、EngineSize、Horsepower、Weightというのは、ほぼほぼ「似たようなもん」じゃないかということがうかがえます。

そこでお値段とWeight(ポンド単位)について、回帰分析してみました。

plot(Cars93$Price ~ Cars93$Weight, main="Cars93", ylab="Price[$1000]", xlab="Weight[pounds]")
lm.weight<-lm(Cars93$Price ~ Cars93$Weight)
abline(lm.weight, col="red")

上記のプロットが以下に。LMweightPlot

そして単回帰分析の結果が以下に。lmWeight

アメ車とアメ車以外で「分類」してみると面白そうではあるけれども、ま、今回はここまで。

データのお砂場(187) R言語、Boston、郊外の住宅価格 {MASS} へ戻る