データのお砂場(124) R言語、motor、バイク事故シミュレーションデータ、{boot}

Joseph Halfmoon

Rのパッケージ「Boot」に含まれるサンプルデータセットをabc順に経めぐってます。今回のデータセットは人工的なものみたいです。バイク事故を想定した「シミュレーションデータ」みたい。頭にかかる加速度データらしいです。ちょっと恐ろしいデータね。でも説明読んでも具体的な測定方法は書いてないし。なんじゃこれ。

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

motor、サンプルデータセット

サンプルデータセットの解説ページが以下に。

Data from a Simulated Motorcycle Accident

もとはmcycleという(MASSパッケージにあるみたい)データセットからの抽出(サブセット)データだそうです。以下の4列あり。

    • times、衝突からのミリ秒
    • accel、記録された「頭部」加速度、g
    • strata、1、2、3の3種に層別
    • v、残差の分散の推定値?上記の3種の層と対応、「1」のとき3.7、「2」tのとき607.0、「3」のとき138.0

大体、3つに分類しているのは何なんだ? 元になったmcycleデータセットを覗いてみたら、テスト用のヘルメットがあってそれを使って得たデータみたい。ということは計算機上でのシミュレーションではなくてダミー人形でも使った実験データなのか?測定方法など教えてもらいたいもんだが。だいたい「残差」いうのだから何等かのモデルがあるのだろうし。。。分からんのう。

まずは生データ

先ずは生データをロード。形式はフツーのデータ・フレームでした。4列の数字が詰まっているだけ。motorRawData

 

層別してみる

strataなる列があり、3種に層別できるようなので、まずはaggregate関数使ってそれぞれの「層」毎にaccelの平均など求めてみます。処理は以下で。

motor.accel <- aggregate(motor$accel, by = list(strata=motor$strata), mean)

その結果が以下に。「1」は微妙なマイナス方向(でも重力加速度の2倍あるけど)、「2」は大きくマイナス方向、そして「3」はプラス方向。motorACCEL

こんだけでは何やら分からんよな。そこで以下のパッケージを導入。

dplyr

とりあえず層別してヒストグラムを描いてみることに。まずはaccelデータのヒストグラム。処理が以下に。

strata_1 <- motor %>% filter(strata==1) %>% select(accel)
strata_2 <- motor %>% filter(strata==2) %>% select(accel)
strata_3 <- motor %>% filter(strata==3) %>% select(accel)
boxplot(c(strata_1, stratal_2, strata_3), names=c("strata_1", "stratal_2", "strata_3"), ylab="accel[g]", main="Data from a Simulated Motorcycle Accident")

グラフが以下に。histACC

「2」がプラスマイナスの振れ幅がデカいことが分かりますが、なんじゃらほい。

times列についても箱ひげ図を描いてみます。

times_1 <- motor %>% filter(strata==1) %>% select(times)
times_2 <- motor %>% filter(strata==2) %>% select(times)
times_3 <- motor %>% filter(strata==3) %>% select(times)
boxplot(c(times_1, times_2, times_3), names=c("times_1", "times_2", "times_3"), ylab="times[ms]", main="Data from a Simulated Motorcycle Accident")

結果がこれ。なんだ、「1」「2」「3」って順番に並んでいるだけ?histTIMES

 

accel~timesで散布図

久しぶりにggplot2を導入して、x軸にtimes、y軸にaccelをおいた散布図を描いてみることにいたました。

library(ggplot2)
p0 <- ggplot(data = motor, aes(x = times, y = accel, color = factor(strata))) + geom_point()
p1 <- p0 + xlab("times[ms]") + ylab("accel[g]") + labs(title="Data from a Simulated Motorcycle Accident")
p1

結果はこんな感じ。motorPLOT

「1」の部分はインパクトの瞬間から10msくらいまで、「微妙な」負の方向の加速度。衝突して後ろ向きの加速度がかかり始めているけれどもまださほど大きくないところ?そして「2」、20ms付近を絶対値のピークとして負の(多分減速方向)加速度がガツンとかかり、その反動からか30msあたりに正のピークが現れて、その後「3」のいかにも振動が続いている部分に達する、と。

上記は勝手な想像だけれども、時間経過とそのときの加速度を素直にプロットしたもんだと思うと、腑に落ちるデータよな。

データのお砂場(123) R言語、melanoma、悪性黒色腫の生存データ、{boot}へ戻る

データのお砂場(125) R言語、neuro、刺激とニューロンの発火時刻、{boot} へ進む