車を所有するときに気になることの一つに燃費があると思います。急加速/急減速は燃費に悪い、ふんわりアクセルエコドライブがいい、とか。実際どの程度影響があるのか、トヨタ ノア ハイブリッド(ZWR90W、R5年製)の普段使いでの走行データを統計的分析手法の一つである主成分分析で調べてみました。

燃費に影響のある要因として、走行距離、加減の程度、アクセルペダルの操作量(アクセル操作)、エンジンの吸入空気量をコントロールするスロットルバルブの開度(スロットル開度)、エンジン回転、平均スピード、始動時のエンジン水温、気温を挙げ、ガソリン消費量を目的変数として主成分分析してみると、走行距離、エンジン回転等の走行に必要なエネルギー系が第1主成分で約47%、始動時のエンジン水温等の温度に関係する条件が第2主成分で約27%の寄与率になり、合わせて約75%くらいは説明できそうです。以下、詳細です。

    車両情報


    ガソリン消費量に対する影響を調査

     燃費に影響のある条件として、夏は燃費が悪い、とか、急加速/急減速すると燃費が悪化すると言われていますので、気温や運転の仕方が思い浮かびます。また、実体験として高速道路を使った遠出は燃費がいいけど、日常づかいでは燃費が悪かった経験のある方も多いと思います。そこで、燃費のいい走行を考えたいので、燃費に影響ある条件を主成分分析で明らかにしたいと思います。

     実際に燃費データを取得してみると、エンジンの暖機状態(=エンジン冷却水の温度)、加減速の程度、走行距離と燃費の関係を調べてみると、これらの条件と燃費は直線的ではなく、無関係に見えたり反比例に見えたり、ある程度のところで一定、つまり関係がなくなっているように見える、ということが分かります(1)(2)。まずは取得したデータの相関係数を確認してみました。

    図1.相関係数マップ

    やはり、1番上の行の「燃費」に対して相関係数が0.7を超えるものはなく、ガソリン消費量は走行距離、スロットル開度、エンジン回転数と相関が高いことが分かります。念のため、散布図行列も確認しておきます。

    図2.散布図行列

    1番上の行の燃費は、点の分布が横になってしまっていてあまり相関がみられないですが、ガソリン消費量は走行距離、スロットル開度、エンジン回転数とは何となく右肩上がりの関係が見えますね。

    ここで横軸の変数の意味を整理しておきますと、

    • 走行距離
      • 1回の走行距離です。
    • 加速の程度
      • 車の加速度の2乗を時間積分した値で、加減速が大きい走行だと大きくなるように考えた値です(2)。 
    • スロットル開度、アクセル開度
      • 共にOBD2アダプターを使って車の故障診断コネクターから取得したデータを時間積分したものです。
    • エンジン回転
      • エンジン回転数は、タコメーター(回転数計)でおなじみです。よく、2,000回転までエンジンが回っている、などと言いますが、このとき、この回転の単位はメーターをよく見ると「rev/m」、「rpm」等となっていて、毎分の回転数です。これを時間で積分すると、その走行でエンジンが何回転したのか(何周したのか)が分かります。ここでは、$エンジン回転 = \sum (エンジン回転数 \cdot \Delta t) $ としています。4ストロークのエンジンだと、2回転に1回、ガソリンが噴射され、爆発して回転力に変換されます。4気筒だとそれが4つあるのでエンジンが1回転している間にどれか2つの気筒にガソリンが噴射されています。ということでガソリン消費量とエンジン回転は何らかの関係があると思われます。
    • 平均スピード
      • 1回の走行距離を走行時間で割ったもので、単位がスピードと同じkm/hになります。
    • 始動時エンジン水温
      • 走行開始時(スタートボタンを押したとき)のエンジン冷却水の温度です。エンジン水温が低い時はエンジンの効率が悪かったり、ハイブリッド車の場合はエンジンの間欠運転に移行しなかったりするので燃費悪化の要因の一つと思います。
    • エンジン水温(最大)
      • 走行中のエンジン冷却水の温度の最大値です。走行距離が短かったりした場合に、エンジン水温があまり上がらないことで燃費が悪いのかどうか、調べられと思い、追加しています。
    • 外気温(最小)、(最大)
      • 夏の暑い時期、冬の寒い時期との関係が分かるかもと思って追加しています。走行中の最小と最大を選択しています。

    今回は目的変数を燃費ではなく、まずはガソリン消費量にし、各条件に対するガソリン消費量への影響が分かったところで、走行距離を加味して燃費の影響を考える、というようにしたいと思います。

    寄与率

     早速ですが、Pythonのscikit-learnというライブラリを使い、"PCA"をインポートして計算させてみました(3)(4)。燃費とガソリン消費量を除いて主成分分析してみると、第1主成分で約47%、第2主成分が約27%の寄与率になりました。第4主成分までの寄与率と累積をグラフにしたものが図3です。

    図3.主成分寄与率(第4主成分まで)

    固有ベクトル

     "固有ベクトル"を見ると、各主成分が元のデータをどの程度反映しているか分かるようです。図1では、第1主成分がガソリン消費量の約47%を占めていますが、その第1主成分は以下の表(表1)によると、走行距離、スロットル開度、エンジン回転がほぼ、同程度反映されているようです。第2主成分は始動時のエンジン水温、外気温の影響が大きいようです。

    表1.固有ベクトル
    要因第1主成分 第2主成分 第3主成分 第4主成分
    走行距離 0.432 -0.057 -0.245 0.137
    加速の程度 0.361 -0.072 0.343 -0.548
    スロットル開度 0.441 -0.055 0.044 -0.003
    エンジン回転 0.428 -0.105 -0.220 0.107
    アクセル開度 0.274 -0.066 0.761 0.484
    平均スピード 0.392 0.055 -0.395 0.038
    始動時エンジン水温 0.026 0.498 -0.140 -0.189
    エンジン水温 0.265 0.351 -0.013 -0.189
    外気温(最小) 0.025 0.537 0.048 -0.199
    外気温(最大) 0.072 0.558 0.119 -0.176

    第1主成分と第2主成分における各要因の寄与度

     第1主成分、第2主成分を$x$軸、$y$軸にとって、元の要因をグラフ化すると、第1主成分、第2主成分が何を代表しているか見ることができるそうなので、やってみます。

    図4.第1主成分、第2主成分のプロット


    • 第1主成分は走行距離、加速の程度、スロットル開度、エンジン回転、アクセル開度がひとまとまりになっている
    • 第2主成分は外気温(最小)、外気温(最大)、始動時エンジン水温がひとまとまりになっている
    • エンジン水温はどちらにもある程度の相関がある

    ということが言えそうです。第1主成分は走行に必要なエネルギー、第2主成分は温度系を代表していそうです。

    燃費に影響を与えると思って追加した、スロットル開度の積算やエンジン回転がほぼ、ガソリン消費量と相関が1に近く、あまり意味がなかったかもしれません。今回のデータではスロットルが開く→エンジン回転が上昇→ガソリンを消費→走行距離が延びるという関係がありそうで、走行距離が同じでスロットル操作だけが違うという様に一つを固定して他を変化させて影響を見るにはふさわしくなさそうです。急加速するとその分、スピードが上がり、速く走れるので短い時間でスロットルが閉じる、ゆっくり走った場合はスロットルの開度は小さくても時間がかかり、スロットル開度×時間はあまり変わらない、ということなのかもしれません。

    温度系もいくつか影響ありそうな条件を選んでみましたが、一番相関がありそうな「外気温(最大)」を見ておけばよさそうです。

    影響の大きい要因が見つかったので、次はこれらに注目して重回帰分析をしてみます。

    関連記事


    参考文献