Skill 寫法圖鑑

algo-price-conjoint

asgard-ai-platform | 商業與營運 | 原文 | MIT

用聯合分析量化各產品屬性的偏好和願付價格

中文翻譯

---
name: "algo-price-conjoint"
description: "執行聯合分析(conjoint analysis),衡量產品屬性如何影響消費者偏好與願付價格。當使用者需要量化功能取捨的價值、估算特定功能的願付價格、或最佳化產品配置時使用,即使他們說的是「客戶最重視哪些功能」、「功能 X 的願付價格」或「產品屬性的取捨」也一樣。"
metadata:
  category: "WP-39 定價演算法"
  tags: ["pricing", "conjoint-analysis", "market-research", "preference"]
---

# 聯合分析(Conjoint Analysis)

## 概述

聯合分析透過分析消費者在多個假設產品組合之間的選擇,估算他們對各項產品屬性的相對重視程度。選擇式聯合分析(Choice-Based Conjoint,CBC)是最常見的變體。產出每個屬性水準的部分效用值(part-worth utilities),以及推導出來的願付價格(WTP)估計。

## 何時使用

**觸發條件:**
- 要找出哪些功能驅動購買決策,以及它們值多少錢
- 要估算特定產品功能的願付價格
- 要針對目標客群最佳化產品配置

**何時不要用:**
- 只需要一個可接受的價格區間時(用 Van Westendorp,比較簡單)
- 屬性無法獨立變動時(有天然限制)

## 演算法

```
鐵律:聯合分析的結果只在測試過的屬性水準內有效。超出測試範圍去外推不可靠。如果你測的價格是 $10-$50,就不能預測 $100 時的偏好。效用函數只在實驗設計的空間內有定義。
```

### 階段 1:輸入驗證
定義:屬性(3-7 個)、每個屬性的水準數(各 2-5 個)、設計類型(小規模用完全因子設計,大規模用部分因子/D-optimal)。至少調查 200 位以上受訪者。
**關卡:** 屬性彼此獨立、水準符合現實、樣本數足夠。

### 階段 2:核心演算法
1. 用實驗設計(D-optimal 或平衡重疊)產生選擇集
2. 給受訪者 3-4 個產品組合一組,請他們選出偏好的
3. 用多項羅吉特(MNL)或階層貝氏(HB)估計部分效用值
4. 計算:屬性重要性 = 該屬性內部分效用值的範圍 / 所有屬性範圍的總和
5. 推導 WTP:用價格屬性的係數把效用換算成價格

### 階段 3:驗證
檢查:holdout 任務的預測準確度(命中率 > 60%)、部分效用值的正負號合乎邏輯(價格越高 → 效用越低)。
**關卡:** holdout 命中率可接受、效用方向正確。

### 階段 4:輸出
回傳部分效用值、屬性重要性和 WTP 估計。

## 輸出格式

```json
{
  "attribute_importance": [{"attribute": "price", "importance_pct": 35}, {"attribute": "brand", "importance_pct": 28}],
  "part_worths": {"price": {"$10": 2.1, "$30": 0.5, "$50": -1.8}},
  "wtp": {"feature_x": 12.50, "brand_premium": 8.00},
  "metadata": {"respondents": 300, "model": "hierarchical_bayes", "holdout_hit_rate": 0.72}
}
```

## 範例

### 輸入輸出範例
**輸入:** 筆電,屬性有:品牌(Apple/Dell/Lenovo)、RAM(8/16/32GB)、價格($800/$1200/$1600)
**預期:** Apple 的品牌效用最高、偏好 32GB RAM、價格是負效用。Apple 品牌溢價的 WTP 約 $200。

### 邊界情況
| 輸入 | 預期 | 原因 |
|-------|----------|-----|
| 所有屬性一樣重要 | 沒有明顯的驅動因素 | 產品接近大宗商品 |
| 價格佔主導(>60%) | 市場對價格高度敏感 | 功能的差異化不夠 |
| 某個水準從來沒被選過 | 極端負效用 | 那個水準是致命缺點 |

## 常見陷阱

- **假設性偏誤**:受訪者做的是假設性選擇,可能不等於真實購買行為。誘因相容的設計(真實選擇)比較好,但很貴。
- **屬性數量**:超過 6-7 個屬性會讓受訪者應付不來,開始用簡化策略(忽略某些屬性)。設計要控制在可管理的範圍。
- **交互作用**:標準分析假設屬性彼此獨立。如果品牌會影響價格敏感度(品牌×價格的交互作用),就需要加交互項。
- **客群異質性**:平均的部分效用值會掩蓋偏好相反的客群。用潛在類別(latent class)或 HB 模型找出客群。
- **設計效率**:設計不良的實驗(不平衡、屬性相關)會讓估計不精確。要用專業的設計軟體。

## 參考資料

- 實驗設計的產生方式,見 `references/experimental-design.md`
- 階層貝氏估計,見 `references/hb-estimation.md`

英文原文

---
name: "algo-price-conjoint"
description: "Run conjoint analysis to measure how product attributes drive consumer preferences and willingness to pay. Use this skill when the user needs to quantify feature value trade-offs, estimate willingness to pay for specific features, or optimize product configuration — even if they say 'which features do customers value most', 'willingness to pay for feature X', or 'product attribute trade-offs'."
metadata:
  category: "WP-39 定價演算法"
  tags: ["pricing", "conjoint-analysis", "market-research", "preference"]
---

# Conjoint Analysis

## Overview

Conjoint analysis estimates the relative value consumers place on product attributes by analyzing their choices among hypothetical product profiles. Choice-Based Conjoint (CBC) is the most common variant. Produces part-worth utilities per attribute level and derived willingness-to-pay estimates.

## When to Use

**Trigger conditions:**
- Determining which features drive purchase decisions and how much they're worth
- Estimating willingness to pay for specific product features
- Optimizing product configuration for a target segment

**When NOT to use:**
- When you only need an acceptable price range (use Van Westendorp — simpler)
- When attributes can't be varied independently (natural constraints)

## Algorithm

```
IRON LAW: Conjoint Results Are Valid ONLY for Tested Attribute Levels
Extrapolating beyond tested ranges is unreliable. If you tested
prices $10-$50, you cannot predict preference at $100. The utility
function is only defined within the experimental design space.
```

### Phase 1: Input Validation
Define: attributes (3-7), levels per attribute (2-5 each), design type (full factorial if small, fractional/D-optimal if large). Survey 200+ respondents minimum.
**Gate:** Attributes independent, levels realistic, sample size sufficient.

### Phase 2: Core Algorithm
1. Generate choice sets using experimental design (D-optimal or balanced overlap)
2. Present respondents with sets of 3-4 product profiles, ask to choose preferred
3. Estimate part-worth utilities using multinomial logit (MNL) or hierarchical Bayes (HB)
4. Compute: attribute importance = range of part-worths within attribute / sum of all ranges
5. Derive WTP: utility-to-price conversion using the price attribute coefficient

### Phase 3: Verification
Check: holdout task prediction accuracy (hit rate > 60%), signs of part-worths are logical (higher price → lower utility).
**Gate:** Holdout hit rate acceptable, utilities directionally correct.

### Phase 4: Output
Return part-worth utilities, attribute importance, and WTP estimates.

## Output Format

```json
{
  "attribute_importance": [{"attribute": "price", "importance_pct": 35}, {"attribute": "brand", "importance_pct": 28}],
  "part_worths": {"price": {"$10": 2.1, "$30": 0.5, "$50": -1.8}},
  "wtp": {"feature_x": 12.50, "brand_premium": 8.00},
  "metadata": {"respondents": 300, "model": "hierarchical_bayes", "holdout_hit_rate": 0.72}
}
```

## Examples

### Sample I/O
**Input:** Laptop with attributes: Brand(Apple/Dell/Lenovo), RAM(8/16/32GB), Price($800/$1200/$1600)
**Expected:** Apple has highest brand utility, 32GB RAM preferred, price negative utility. WTP for Apple brand premium ≈ $200.

### Edge Cases
| Input | Expected | Why |
|-------|----------|-----|
| All attributes equally important | No clear driver | Product is commodity-like |
| Price dominates (>60%) | Highly price-sensitive market | Features don't differentiate enough |
| One level never chosen | Extreme negative utility | That level is a deal-breaker |

## Gotchas

- **Hypothetical bias**: Respondents making hypothetical choices may not reflect real purchase behavior. Incentive-compatible designs (real choices) are better but expensive.
- **Number of attributes**: More than 6-7 attributes overwhelms respondents, leading to simplification strategies (ignore some attributes). Keep designs manageable.
- **Interaction effects**: Standard analysis assumes attributes are independent. If brand affects price sensitivity (brand×price interaction), you need interaction terms.
- **Segment heterogeneity**: Average part-worths mask segments with opposite preferences. Use latent class or HB models to uncover segments.
- **Design efficiency**: Poor experimental designs (unbalanced, correlated attributes) produce imprecise estimates. Use proper design software.

## References

- For experimental design generation, see `references/experimental-design.md`
- For hierarchical Bayes estimation, see `references/hb-estimation.md`