【ウーバーイーツ】チップ発生とマハラノビス距離による判別分析【沖縄市】

ウーバーイーツ×沖縄市

ウーバーイーツチップ発生とマハラノビス距離による判別分析【沖縄市

前回と前々回の記事より、ベース料金と外国人への配達か否かがチップ発生確率に関わりがあると分かった。

【ウーバーイーツ】チップ発生確率とロジスティック回帰【沖縄市】
【ウーバーイーツ】チップ発生確率とロジスティック回帰【沖縄市】 ロジスティック回帰を用いて、チップ発生に関わる要因を探してみる。 参考書籍・資料 主な参考箇所 第10章 二項選択モデル Rでロジスティック回帰分析...
【ウーバーイーツ】チップ発生確率のロジスティックモデルとマルチコ【沖縄市】
【ウーバーイーツ】チップ発生確率のロジスティックモデルとマルチコ【沖縄市】 前回、チップ発生確率をロジスティックモデルで表してみた。 今回は、このモデルに問題がないか確認してみる。 参考書籍・資料 主な参...

 

今回は、「ベース料金」と「外国人への配達」この2つの変数のみを見て、チップが発生した配達か否かを予想してみる。

 

参考書籍・資料

Rによるデータサイエンス(第2版):データ解析の基礎から最新手法まで | 金 明哲 |本 | 通販 - Amazon.co.jp
Amazonで金 明哲のRによるデータサイエンス(第2版):データ解析の基礎から最新手法まで。アマゾンならポイント還元本が多数。金 明哲作品ほか、お急ぎ便対象商品は当日お届けも可能。またRによるデータサイエンス(第2版):データ解析の基礎から最新手法までもアマゾン配送商品なら通常配送無料。

主な参考箇所 13 線形判別分析 14 非線形判別分析

概要

判別分析について調べる

マハラノビス距離を求める

各データと比較

テスト

使用するデータ

使用するデータは、私の配達データ。

期間は、2021年7月1日~9月30日。

上記期間の総配達件数は、855件。※ ダブルピックも1件とカウント。

判別分析について

2つの変数のみでチップの発生を見極める方法を探していたところ、以下の文章を見つけた。

判別分析は、個体(あるいは対象)がどのグループに属するかが明確である学習データを用いて判別モデルを構築し、そのモデルを用いて所属不明の個体(テスト用のデータ)がどのグループに帰属するかを判別する方法である。

Rによるデータサイエンス(第2版)

今回の場合で考えると、チップが発生した配達とそうでない配達で明確に分けられる。また、配達データは豊富にあるため、学習データも十分にある。

 

さらに、以下の文章を見つけた。

2値の目的変数に対してロジスティック回帰分析の方法を用いる2群判別分析も、非線形判別分析の一種である次節ではこれを取り上げる。
14.2 距離による判別分析
………

Rによるデータサイエンス(第2版)

今回の目的変数はチップの有無のため、2値の目的変数となる。上記書籍14節の判別分析のやり方でチップの有無を予想できるかもしれない。

マハラノビス距離を求める

さっそく、「14.2 距離による判別分析」をマネて、判別分析を行ってみる。

ざっと読み流したところ、マハラノビス距離が重要らしい。

距離による判別分析には、データの分散の情報を用いたマハラノビス(Mahalanobis)距離が多く用いられている。

………

Rにはマハラノビス距離を求める関数mahalanobisがある。その書式を次に示す。

mahalanobis(x, center, cov,...)

引数のxはデータ、centerは中心ベクトル、covは分散共分散行列である。

Rによるデータサイエンス(第2版)

マハラノビス距離を求めるため、中心ベクトルと分散共分散行列を求める。結果を表にまとめる。

2021年7月1日~8月31日の配達データを用いた。

中心ベクトル↓

base_feeforeigner
chipあるグループ173.2370690.4525862069
chipなしグループ159.60344830.1379310345

※foreignerをfactor型のまま計算できなかった。そのため、0と1の数値(numeric)として計算している。

分散共分散行列↓

chipありグループbase_feeforeigner
base_fee2145.3418231.67287827
foreigner1.672878270.2488244514
chipなしグループbase_feeforeigner
base_fee1458.5166451.19837495
foreigner1.198374950.119248733

上記の結果を用いて、マハラビノス距離を求める。

> C <- mahalanobis(data[-1],chip_mean,chip_var)  #チップありグループ
> not_C <- mahalanobis(data[-1],no_chip_mean,no_chip_var) #チップなしグループ

各データと比較

各データとグループまでの距離をそれぞれ見てみる。

> round(cbind(C,not_C),2)
NoCnot_C
10.960.73
21.250.39
31.226.36
41.170.32
51.56.41

距離が短い方のグループに所属するため、No1はnot_Cに所属することになる。つまり、チップが発生しない方のグループに所属となる。

実際のチップの有無と判別結果を表に追加してみる。

NoCnot_C判別結果実際のチップの有無
10.960.73
21.250.39
31.226.36
41.170.32
51.56.41

No5までの結果を見ると、正しく判別できたものが2つのみだった。

全データでの結果を表にまとめる。

正解40169.14%
不正解17930.86%

正解の数が401個、約70%の確率で正しく判別できたことが分かる。

チップの有りと無し、どちらの予想をしたときに正解率が高かったか見てみる。

判別結果
実際の結果
132100232
79269348
211369580
判別結果
実際の結果
62.56%27.10%
37.44%72.90%

チップ有りと予想した場合は、約63%の確率で正解。チップ無しと予想した場合は、約73%の確率で正解することが分かった。

テスト

テスト用のデータ(9月の配達データ)を用いて、上記と同じように分析してみる。

正解17369.48%
不正解7530.12%

正解の数が173個、約70%の確率で正しく判別できたことが分かる。この数値は、学習用のデータ(7~8月の配達データ)と比べて、大きな差はない。

判別結果
実際の結果
315182
24142166
55193248
判別結果
実際の結果
56.36%26.42%
43.64%73.58%

チップ有りと予想した場合は、約56%の確率で正解。チップ無しと予想した場合は、約74%の確率で正解することが分かった。

 

テストデータを用いて、判別分析を行った結果の感想を述べると、

判別結果がチップ有りの場合の正解率が約50%で、あまり役に立たないように思える。一方、判別結果がチップ無しの場合の正解率は約75%のため、ある程度は信頼できる。

まとめ

今回は、マハラビノス距離を用いて、チップ発生の判別分析を行ってみた。

結果、分かったことは下記の2つ。

今回の判別分析を用いて、チップの有無を予想した場合
・チップ有り予想は約50%の確率で正解
・チップ無し予想は約75%の確率で正解

 

コメント

タイトルとURLをコピーしました