分布の視覚化
少数の高額な注文が平均を押し上げ、多くの顧客の購入額を上回ることがあります。購入額をパーセンタイル別に描画し、中央値、ばらつき、最大の注文を確認します。
パーセンタイル曲線は、購入額が加速する場所とロングテールがどこまで伸びるかを示します。
何を構築するか
個々の購入金額を記録し、パーセンタイルごとに値をクエリし、結果をグラフ化します。平均とは異なり、この曲線は次のような質問に答えます。
- 一般的な顧客は何を費やしますか? P50 (中央値) 付近を見てください。
- 価値の高い顧客はどこから始めますか? P75、P90、P95を比較してください。
- ロングテールはどのくらい極端ですか? P99 を中央値と比較します。
パーセンタイルはしきい値であり、収益の割合ではありません。 90 ペソが 148 ドルの場合、購入の 90% は 148 ドル以下で、10% はそれ以上です。
前提条件
- Telemetry の有効な API キー
- JavaScript および Node.js の基本的な理解
- 電子商取引プラットフォームまたは顧客の購入を追跡するシステム
1. Telemetry SDK をインストールします。
まず、Telemetry SDK をプロジェクトにインストールする必要があります。まだ実行していない場合は、次のコマンドを実行します。
npm install telemetry-sh
2. Telemetryの初期化
SDK をインストールした後、プロジェクトに Telemetry をインポートして初期化します。交換する YOUR_API_KEY 実際の Telemetry API キーを使用します。
import telemetry from "telemetry-sh";
telemetry.init("YOUR_API_KEY");
3. 購入金額を記録する
顧客の購入金額の分布を可視化するには、購入のたびに金額を記録する必要があります.このデータをログに記録する関数の例を次に示します。
const logPurchaseAmount = (customerId, purchaseAmount) => {
telemetry.log("customer_purchases", {
customer_id: customerId, // The ID of the customer
purchase_amount: purchaseAmount, // The purchase amount in dollars
currency: "USD",
status: "completed"
});
};
// Example usage
logPurchaseAmount("customer_123", 49.99); // Log a purchase amount for a customer
logPurchaseAmount("customer_456", 120.50); // Log another purchase amount for a different customer
4. 楽器の購入が完了しました
取引が完了するたびに購入金額を自動的に記録するようにシステムを設定する必要があります。これは、ログ機能をチェックアウトまたは支払い処理システムに統合することで実現できます。簡略化した例を次に示します。
const processPurchase = (customerId, amount) => {
// Additional logic for processing the purchase
// Log the purchase amount
logPurchaseAmount(customerId, amount);
};
// Example transactions
processPurchase("customer_123", 75.00); // Log a purchase of $75
processPurchase("customer_789", 300.00); // Log a purchase of $300
5. 分布を問い合わせる
十分なデータを記録したら、Telemetry の UI を使用して、パーセンタイル間の購入金額の分布を視覚化できます。
- パーセンタイルクエリを作成する:
-
Telemetry UI で、クエリ セクションに移動します。
-
次の SQL のようなクエリを使用して、パーセンタイル データを生成します。
WITH purchases AS ( SELECT purchase_amount FROM customer_purchases WHERE timestamp_utc >= now() - INTERVAL '90 days' AND currency = 'USD' AND status = 'completed' ) SELECT 50 AS percentile, approx_percentile_cont(purchase_amount, 0.50) AS purchase_amount FROM purchases UNION ALL SELECT 75, approx_percentile_cont(purchase_amount, 0.75) FROM purchases UNION ALL SELECT 90, approx_percentile_cont(purchase_amount, 0.90) FROM purchases UNION ALL SELECT 95, approx_percentile_cont(purchase_amount, 0.95) FROM purchases UNION ALL SELECT 99, approx_percentile_cont(purchase_amount, 0.99) FROM purchases ORDER BY percentile; -
このクエリは、ほとんどのチームが使用するパーセンタイルでコンパクトな曲線を生成します。より滑らかな曲線によって決定が大きく変わる場合は、固定パーセンタイル行をさらに追加します。
-
- データを視覚化する:
- UI で、次の折れ線グラフを作成します。
percentileX 軸上とpurchase_amountY 軸上。 - これにより、さまざまな顧客パーセンタイル間で購入金額がどのように変化するかを示す分布曲線が得られ、顧客ベース内の支出パターンを特定するのに役立ちます。
- UI で、次の折れ線グラフを作成します。
曲線を解釈する
一般的な購入額を理解するには、50 ペソから始めて、90 ペソと 99 ペソと比較します。右端付近の急激な上昇は、支出の多いセグメントが小規模であることを示しています。曲線が平坦であれば、支出がより均等に分散されていることを示します。結果に基づいて行動する前に、返金をフィルタリングしてトランザクションをテストし、通貨単位の一貫性を保ち、セグメント間で同じ時間枠を比較します。