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

Joseph Halfmoon

R言語所蔵のサンプルデータセットを、ABC順(大文字先)で端から眺めております。今回はcars、自動車の停止距離の測定データです。ただし約100年前、1920年代に測定されたデータみたいです。最近の自動車は性能上がっているからな~などと思いつつ、物理現象でした。100年前も今も実は計算式は変わっていないっと。

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

今回のデータセットの解説ページが以下です。

Speed and Stopping Distances of Cars

前述のように約百年前のデータです。流石アメリカ、T型フォードの発表が1908年、百年前にモータリゼーションの波がやってきてこういうデータがとられていたと。さて、データには2つの変数しかありません。

    • 速度 (mph)
    • Stopping distance (ft)

Stopping distanceあるいはthe distances taken to stopと表現されている距離は、一瞬「制動距離」とも早合点しかけたのですが、ここは「停止距離」ですよね。停止距離、制動距離については、チューリッヒ保険会社の以下のページが分かり易かったです。

制動距離と空走距離とは。停止距離の計算方法

上記によれば「車の停止距離とは空走距離と制動距離を合計した距離」であります。上記にも速度と距離の実例(グラフ)が上がっているのですが、実際に計算できる素晴らしいページを見つけました。弁護士河原崎弘 様の以下のページです。

車の停止/制動距離計算機

「実用上の需要」があるせいか、保険会社や弁護士さんがこの問題に詳しいみたいです。そしておおよその目安は決まっておるのですなあ。上記の計算機の下の方には「判例に現れた空走時間」なる表も乗っております。

空走距離を決める空走時間は人間の反応時間なので、多分100年前も今も変化しているとは思えませぬ。また、制動距離は速度の二乗に比例し摩擦係数に半比例すると。ここは物理現象、逃げも隠れもできませぬ。100年前も今も同じだと。ただタイヤ性能など摩擦係数の部分が技術で出し入れできる部分だと(自動運転技術、AI使えば空走時間を短くすることはできるのでメリットありかと。)

実際、上記の計算機で計算してみました。25mph(約40km/h)で、乾いたアスファルト道路、普通タイヤで摩擦係数0.7の場合、

停止距離 17 m (56 feet)

とな。これが濡れたアスファルトでは 20m となり、氷だと 98m にもなります。なお、空走時間は一律0.75秒という仮定みたいです。

まずは生データ

まずは生データをロードして確認してみました。サンプルデータの形式は単純なデータフレームです。変数はspeedとdistの2つだけ。cars

上記のサマリを見れば、速度は4mphから25mphまで、距離は2フィートから120フィートまでバラついてます。

素のままのプロットを実行させてみました。

plot(cars)

こんな感じ。plot

既に、停止距離=空走距離+制動距離、制動距離は速度の二乗に比例するということを「知っている」ので、上記のような素のプロットであると「非線形」な傾向が見てとれる筈。そう思って見ていると「2次」のグラフが見えるような、見えないような。。。ただし、今回データには路面とかタイヤの状況が無く、結構バラついているような気がいたします。

解説ページの処理例

今回の解説ページには処理例が載っておりますので、そのままやってみます。まずはプロットのやり直し。停止距離は速度の二乗に比例する制動距離と、速度に比例する空走距離(反応時間一定を仮定)なので、両対数グラフで描くのがよろしいようです。

回帰曲線的なものを引きたいみたいです。その辺についての解説はいつもお世話になっております。

Rと非線形回帰分析

ここで使われているのが「lowess平滑化曲線」というものみたい。Scatter Plot Smoothing, locally-weighted polynomial regressionとな。plotLog

当然対数グラフ上は線形になるだろ~という予想通りです。さらに処理例では解析を続けてます。plotLogfm1Opr

例によって解析結果が出てますが、空走時間や摩擦係数などの条件を揃えないまま、算術していくのはどうよ、という気がしないでもないです。まあ、処理の練習だからいいか。plotLogfm1

 

 

多項式回帰

処理例ではさらに多項式回帰までやってました。以下のページが分かり易かったです。

Rを使ったPolynomial Regressionの実施方法

処理例どおりに処理してみたものが以下に。

polyOpr

グラフが以下に。1次から4次まで多項式回帰してます。まあ2次が一番それっぽいけれども(Pr小さ目。)当然か。polyPlot

でもま、このデータで上記みたいなフィットをするのはどうよ、その前にもっと調べること有るだろ~という気がしないでもないデス。

データのお砂場(46) R言語、beavers、ビーバー2匹の体温の測定とな へ戻る

データのお砂場(48) R言語、chickwts、ニワトリさんの体重、「再び」とな へ進む