# SGHC行动研究数据字典
## Data Dictionary for SGHC Action Research

---

## 问卷数据字典

### 周期一：客户信任与互动质量问卷

| 变量名 | 变量标签 | 数据类型 | 取值范围 | 说明 | 缺失值处理 |
|--------|---------|---------|---------|------|-----------|
| respondent_id | 受访者ID | 文本 | R001-R999 | 自动生成 | 无缺失 |
| response_date | 填答日期 | 日期 | YYYY-MM-DD | 自动记录 | 无缺失 |
| response_time | 答题时长(秒) | 数值 | 60-3600 | 自动记录 | 无缺失 |
| gender | 性别 | 分类 | 1=男, 2=女 | 单选 | 删除缺失 |
| age_group | 年龄段 | 分类 | 1=<25, 2=25-34, 3=35-44, 4=45-54, 5=55+ | 单选 | 删除缺失 |
| purchase_count | 购买次数 | 分类 | 1=1次, 2=2-4次, 3=5次+ | 单选 | 删除缺失 |
| member_duration | 入群时长 | 分类 | 1=<1月, 2=1-3月, 3=3-6月, 4=6月+ | 单选 | 删除缺失 |
| | | | | | |
| **人格信任量表** | | | | | |
| PT1 | 相信石头推荐的产品真实有效 | 数值 | 1-5 (Likert) | 1=非常不同意, 5=非常同意 | 均值插补 |
| PT2 | 石头在健康领域有专业知识 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| PT3 | 石头为客户最佳利益着想 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| PT4 | 相信石头不会推荐劣质产品 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| PT5 | 石头对健康问题真诚关心 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| PT6 | 石头是值得信赖的健康顾问 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| PT_Score | 人格信任得分 | 数值 | 1-5 | (PT1+PT2+...+PT6)/6 | 计算得出 |
| | | | | | |
| **品牌信任量表** | | | | | |
| BT1 | 相信SGHC团队提供高质量服务 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| BT2 | SGHC是值得信赖的品牌 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| BT3 | SGHC会信守对客户的承诺 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| BT4 | 即使石头不在也相信SGHC团队 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| BT_Score | 品牌信任得分 | 数值 | 1-5 | (BT1+BT2+BT3+BT4)/4 | 计算得出 |
| | | | | | |
| **互动质量量表** | | | | | |
| IQ1 | SGHC客服响应及时 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| IQ2 | SGHC健康信息有帮助 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| IQ3 | SGHC沟通方式舒适 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| IQ4 | SGHC能理解健康需求 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| IQ5 | SGHC互动持续稳定 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| IQ_Score | 互动质量得分 | 数值 | 1-5 | (IQ1+IQ2+...+IQ5)/5 | 计算得出 |
| | | | | | |
| **开放性问题** | | | | | |
| Q_reason | 选择SGHC的主要原因 | 文本 | 自由文本 | 定性编码 | 允许缺失 |
| Q_suggestion | 服务建议或期望 | 文本 | 自由文本 | 定性编码 | 允许缺失 |
| Q_repurchase | 是否愿意继续购买 | 分类 | 1=一定会, 2=可能会, 3=不确定, 4=可能不会, 5=不会 | 单选 | 删除缺失 |

---

### 周期二：客户承诺与忠诚问卷

| 变量名 | 变量标签 | 数据类型 | 取值范围 | 说明 | 缺失值处理 |
|--------|---------|---------|---------|------|-----------|
| respondent_id | 受访者ID | 文本 | R001-R999 | 自动生成 | 无缺失 |
| customer_id | 客户CRM编号 | 文本 | C00001-C18000 | 关联CRM系统 | 无缺失 |
| activity_participation | 是否参加21天挑战 | 分类 | 0=否, 1=是但未完成, 2=完成 | 单选 | 删除缺失 |
| member_level | 会员等级 | 分类 | 0=非会员, 1=银卡, 2=金卡 | 单选 | 填0 |
| last_purchase | 最近购买时间 | 分类 | 1=1周内, 2=1-4周, 3=1-3月, 4=3月+ | 单选 | 删除缺失 |
| | | | | | |
| **情感承诺量表** | | | | | |
| AC1 | 对SGHC有归属感 | 数值 | 1-5 (Likert) | 1=非常不同意, 5=非常同意 | 均值插补 |
| AC2 | SGHC价值观与我契合 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| AC3 | 喜欢作为SGHC社群一员 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| AC4 | 会向朋友推荐SGHC | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| AC_Score | 情感承诺得分 | 数值 | 1-5 | (AC1+AC2+AC3+AC4)/4 | 计算得出 |
| | | | | | |
| **持续承诺量表** | | | | | |
| CC1 | 离开会失去积分和权益 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| CC2 | 已投入时间和精力 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| CC3 | 切换成本高 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| CC_Score | 持续承诺得分 | 数值 | 1-5 | (CC1+CC2+CC3)/3 | 计算得出 |
| | | | | | |
| **忠诚意向量表** | | | | | |
| LI1 | 打算未来继续购买 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| LI2 | 优先选择SGHC | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| LI3 | 会参加未来活动 | 数值 | 1-5 (Likert) | 同上 | 均值插补 |
| LI_Score | 忠诚意向得分 | 数值 | 1-5 | (LI1+LI2+LI3)/3 | 计算得出 |
| | | | | | |
| **净推荐值** | | | | | |
| NPS | 推荐可能性评分 | 数值 | 0-10 | 0=不太可能, 10=非常可能 | 删除缺失 |
| NPS_Category | NPS分类 | 分类 | 1=贬损者(0-6), 2=被动者(7-8), 3=推荐者(9-10) | 基于NPS计算 | 计算得出 |

---

## e-CRM系统数据字典

### 客户基本信息表 (customer_data)

| 字段名 | 字段说明 | 数据类型 | 示例 | 备注 |
|--------|---------|---------|------|------|
| customer_id | 客户唯一ID | VARCHAR(20) | C00001 | 主键 |
| nickname | 昵称 | VARCHAR(50) | 健康达人 | 脱敏 |
| gender | 性别 | ENUM | 男/女 | |
| age | 年龄 | INT | 42 | |
| province | 省份 | VARCHAR(20) | 河北 | |
| city | 城市 | VARCHAR(20) | 石家庄 | |
| signup_date | 注册日期 | DATE | 2023-05-15 | |
| signup_source | 注册来源 | VARCHAR(50) | 朋友推荐/社交媒体/搜索 | |
| customer_type | 客户类型 | ENUM | 核心/潜力/沉默 | 动态更新 |
| member_level | 会员等级 | ENUM | 非会员/银卡/金卡 | 动态更新 |
| total_points | 总积分 | INT | 850 | 实时更新 |
| available_points | 可用积分 | INT | 350 | 实时更新 |
| wechat_id | 微信号 | VARCHAR(50) | wx_*** | 加密存储 |
| created_at | 创建时间 | DATETIME | 2023-05-15 10:30:00 | |
| updated_at | 更新时间 | DATETIME | 2024-06-20 15:20:00 | |

### 交易记录表 (transaction_data)

| 字段名 | 字段说明 | 数据类型 | 示例 | 备注 |
|--------|---------|---------|------|------|
| order_id | 订单ID | VARCHAR(30) | ORD20240601001 | 主键 |
| customer_id | 客户ID | VARCHAR(20) | C00001 | 外键 |
| order_date | 订单日期 | DATE | 2024-06-01 | |
| order_time | 订单时间 | TIME | 14:30:00 | |
| order_amount | 订单金额 | DECIMAL(10,2) | 285.50 | 单位：元 |
| product_category | 产品类别 | VARCHAR(50) | 维生素/保健品/日用品 | |
| product_count | 产品数量 | INT | 3 | |
| order_status | 订单状态 | ENUM | 待付款/已付款/已发货/已完成/已退款 | |
| payment_method | 支付方式 | VARCHAR(20) | 微信支付/支付宝 | |
| is_first_purchase | 是否首次购买 | BOOLEAN | TRUE/FALSE | |
| points_earned | 获得积分 | INT | 285 | =订单金额（整数） |
| created_at | 创建时间 | DATETIME | 2024-06-01 14:30:00 | |

### 互动记录表 (interaction_data)

| 字段名 | 字段说明 | 数据类型 | 示例 | 备注 |
|--------|---------|---------|------|------|
| interaction_id | 互动ID | VARCHAR(30) | INT20240601001 | 主键 |
| customer_id | 客户ID | VARCHAR(20) | C00001 | 外键 |
| interaction_date | 互动日期 | DATE | 2024-06-01 | |
| interaction_time | 互动时间 | TIME | 09:15:00 | |
| interaction_type | 互动类型 | VARCHAR(50) | 阅读/点赞/评论/转发/发言 | |
| content_type | 内容类型 | VARCHAR(50) | 产品/知识/活动/闲聊 | |
| channel | 渠道 | VARCHAR(20) | 社群/公众号/小程序 | |
| content_id | 内容ID | VARCHAR(30) | CNT001 | 关联内容表 |
| interaction_text | 互动文本 | TEXT | 评论或发言内容 | 可为空 |
| points_earned | 获得积分 | INT | 5 | 评论=5, 转发=20 |
| created_at | 创建时间 | DATETIME | 2024-06-01 09:15:00 | |

### 积分记录表 (points_data)

| 字段名 | 字段说明 | 数据类型 | 示例 | 备注 |
|--------|---------|---------|------|------|
| points_id | 积分记录ID | VARCHAR(30) | PTS20240601001 | 主键 |
| customer_id | 客户ID | VARCHAR(20) | C00001 | 外键 |
| points_change | 积分变化 | INT | +100 或 -50 | 正=获得, 负=消费 |
| points_type | 积分类型 | VARCHAR(50) | 购买/互动/活动/兑换 | |
| related_id | 关联ID | VARCHAR(30) | ORD001 或 ACT001 | 关联订单或活动 |
| description | 描述 | VARCHAR(200) | 购买订单获得积分 | |
| balance_after | 变化后余额 | INT | 350 | |
| created_at | 创建时间 | DATETIME | 2024-06-01 14:30:00 | |

### 会员记录表 (member_data)

| 字段名 | 字段说明 | 数据类型 | 示例 | 备注 |
|--------|---------|---------|------|------|
| member_id | 会员记录ID | VARCHAR(30) | MEM20240601001 | 主键 |
| customer_id | 客户ID | VARCHAR(20) | C00001 | 外键 |
| member_level | 会员等级 | ENUM | 银卡/金卡 | |
| upgrade_date | 升级日期 | DATE | 2024-06-15 | |
| annual_points | 年度积分 | INT | 2500 | 升级依据 |
| benefits_used | 已使用权益 | JSON | {"专属咨询": 2, "优惠券": 5} | |
| expiry_date | 到期日期 | DATE | 2025-06-15 | 年度会员 |
| status | 状态 | ENUM | 有效/过期/取消 | |
| created_at | 创建时间 | DATETIME | 2024-06-15 10:00:00 | |

---

## 活动数据字典

### 活动参与者信息表 (activity_participants)

| 字段名 | 字段说明 | 数据类型 | 示例 | 备注 |
|--------|---------|---------|------|------|
| participant_id | 参与者ID | VARCHAR(20) | P001 | 主键 |
| customer_id | 客户CRM ID | VARCHAR(20) | C00001 | 外键 |
| activity_id | 活动ID | VARCHAR(30) | ACT_21DAY_001 | 外键 |
| signup_date | 报名日期 | DATE | 2024-05-25 | |
| customer_type | 客户类型 | ENUM | 核心/潜力/沉默 | 报名时快照 |
| health_goal | 健康目标 | VARCHAR(100) | 减重/增强免疫力/改善睡眠 | |
| group_number | 小组编号 | INT | 1 | 每组50人 |
| completed | 是否完成 | BOOLEAN | TRUE/FALSE | 完成≥18天 |
| total_days_completed | 完成天数 | INT | 21 | 0-21 |
| completion_rate | 完成率 | DECIMAL(5,2) | 100.00 | 百分比 |
| total_points_earned | 获得总积分 | INT | 430 | |
| excellent_count | 优秀打卡数 | INT | 8 | |
| exit_day | 退出日期 | INT | NULL | 如退出则记录 |
| exit_reason | 退出原因 | TEXT | NULL | 如退出则记录 |

### 每日打卡记录表 (daily_checkins)

| 字段名 | 字段说明 | 数据类型 | 示例 | 备注 |
|--------|---------|---------|------|------|
| checkin_id | 打卡ID | VARCHAR(30) | CHK001_D01 | 主键 |
| participant_id | 参与者ID | VARCHAR(20) | P001 | 外键 |
| day_number | 第几天 | INT | 1 | 1-21 |
| checkin_date | 打卡日期 | DATE | 2024-06-03 | |
| checkin_time | 打卡时间 | TIME | 08:30:00 | |
| task_type | 任务类型 | VARCHAR(50) | 饮食记录/运动打卡/产品使用 | |
| task_completed | 是否完成 | BOOLEAN | TRUE | |
| content_text | 文字内容 | TEXT | 今天早餐吃了... | UGC内容 |
| content_image | 图片链接 | VARCHAR(200) | /uploads/img001.jpg | 可为空 |
| word_count | 字数 | INT | 85 | |
| points_earned | 获得积分 | INT | 10 | 基础10分 |
| interaction_count | 互动数 | INT | 15 | 点赞+评论 |
| status | 审核状态 | ENUM | 已审核/待审核/优秀 | 优秀=额外50分 |
| created_at | 创建时间 | DATETIME | 2024-06-03 08:30:00 | |

---

## 访谈数据字典

### 客户访谈元数据

| 字段名 | 字段说明 | 数据类型 | 示例 |
|--------|---------|---------|------|
| interview_id | 访谈ID | VARCHAR(10) | P01 |
| interviewee_type | 受访者类型 | VARCHAR(20) | 核心客户/潜力客户/沉默客户 |
| gender | 性别 | VARCHAR(10) | 女 |
| age | 年龄 | INT | 42 |
| purchase_count | 购买次数 | INT | 8 |
| interview_date | 访谈日期 | DATE | 2024-06-10 |
| interview_duration | 访谈时长(分钟) | INT | 22 |
| interview_method | 访谈方式 | VARCHAR(20) | 微信语音/面对面 |
| audio_file | 录音文件 | VARCHAR(100) | P01_audio.m4a |
| transcript_file | 转录文件 | VARCHAR(100) | P01_transcript.docx |
| word_count | 转录字数 | INT | 5600 |
| coder_1 | 编码者1 | VARCHAR(50) | 研究者 |
| coder_2 | 编码者2 | VARCHAR(50) | 研究助手 |
| coding_agreement | 编码一致性 | DECIMAL(5,2) | 0.83 | Cohen's Kappa |
| member_checked | 是否成员检验 | BOOLEAN | TRUE |

### 员工访谈元数据

| 字段名 | 字段说明 | 数据类型 | 示例 |
|--------|---------|---------|------|
| interview_id | 访谈ID | VARCHAR(10) | E01 |
| employee_id | 员工ID | VARCHAR(20) | EMP001 |
| department | 部门 | VARCHAR(20) | 运营/售后/技术 |
| position | 岗位 | VARCHAR(50) | 客服专员/运营主管 |
| tenure_months | 工作时长(月) | INT | 18 |
| interview_date | 访谈日期 | DATE | 2024-06-12 |
| interview_duration | 访谈时长(分钟) | INT | 25 |

---

## 社群观察数据字典

### 社群观察记录表 (community_observations)

| 字段名 | 字段说明 | 数据类型 | 示例 | 备注 |
|--------|---------|---------|------|------|
| observation_id | 观察记录ID | VARCHAR(30) | OBS_G1_001 | 主键 |
| group_id | 社群ID | VARCHAR(10) | G1 | G1-G5 |
| observation_date | 观察日期 | DATE | 2024-06-01 | |
| time_slot | 时间段 | VARCHAR(20) | 早晨/中午/晚间 | |
| speaker_type | 发言人类型 | VARCHAR(20) | F/T/C-Core/C-Pot/C-Sil | 见编码表 |
| content_type | 内容类型 | VARCHAR(20) | PROD/KNOW/ACT/CHAT/CONS/FEED | 见编码表 |
| content_summary | 内容摘要 | TEXT | 分享健康知识... | |
| interaction_quality | 互动质量 | VARCHAR(10) | 高/中/低 | |
| response_count | 回应数 | INT | 12 | 点赞+评论 |
| response_time | 响应时间(分钟) | INT | 5 | 如有回应 |
| notes | 备注 | TEXT | 客户反应积极 | |
| observer | 观察者 | VARCHAR(50) | 观察者A | |

---

## 计算变量说明

### 复购率 (Repurchase Rate)

**定义**：在特定时间窗口内（如6个月），至少购买2次的客户占总客户数的比例。

**计算公式**：
```
复购率 = (购买次数≥2的客户数 / 总客户数) × 100%
```

**SPSS语法**：
```spss
COMPUTE Repurchased = (purchase_count >= 2).
FREQUENCIES VARIABLES=Repurchased.
```

**Python代码**：
```python
repurchase_rate = (
    transaction_df.groupby('customer_id').size() >= 2
).sum() / len(customer_df) * 100
```

---

### 月活跃用户占比 (Monthly Active User Rate)

**定义**：在一个月内至少有1次互动（阅读、点赞、评论、转发、发言）的客户占总客户数的比例。

**计算公式**：
```
MAU率 = (月内有互动的客户数 / 总客户数) × 100%
```

**SQL查询**：
```sql
SELECT 
    COUNT(DISTINCT customer_id) AS active_users,
    (SELECT COUNT(*) FROM customers) AS total_users,
    COUNT(DISTINCT customer_id) * 100.0 / (SELECT COUNT(*) FROM customers) AS mau_rate
FROM interactions
WHERE interaction_date BETWEEN '2024-06-01' AND '2024-06-30';
```

---

### 客户生命周期价值 (CLV)

**定义**：客户在整个关系期间为企业创造的净利润现值。

**简化计算公式**：
```
CLV = 平均客单价 × 平均年购买频次 × 平均客户寿命(年)
```

**示例计算**：
```
平均客单价 = ¥420
平均年购买频次 = 4.5次/年
平均客户寿命 = 3.3年（基于70%年留存率估算）

CLV = 420 × 4.5 × 3.3 = ¥6,237
```

**按客户类型分层计算**：
- 核心客户CLV：约¥12,000
- 潜力客户CLV：约¥4,500
- 沉默客户CLV：约¥450

---

### NPS净推荐值 (Net Promoter Score)

**定义**：衡量客户推荐意愿的指标。

**计算公式**：
```
NPS = (推荐者% - 贬损者%) × 100
```

**分类标准**：
- 推荐者(Promoter)：评分9-10分
- 被动者(Passive)：评分7-8分
- 贬损者(Detractor)：评分0-6分

**SPSS语法**：
```spss
RECODE NPS (0 thru 6=1) (7 thru 8=2) (9 thru 10=3) INTO NPS_Category.
VARIABLE LABELS NPS_Category 'NPS分类'.
VALUE LABELS NPS_Category 1 '贬损者' 2 '被动者' 3 '推荐者'.

FREQUENCIES VARIABLES=NPS_Category.

COMPUTE Promoter_Pct = (NPS_Category=3).
COMPUTE Detractor_Pct = (NPS_Category=1).
```

---

### 效应量 Cohen's d

**定义**：衡量干预效果的实际显著性（区别于统计显著性）。

**配对样本计算公式**：
```
d = (Mean_Post - Mean_Pre) / SD_Diff
```

其中：SD_Diff = 差值的标准差

**独立样本计算公式**：
```
d = (Mean_1 - Mean_2) / SD_Pooled
```

其中：SD_Pooled = sqrt((SD_1² + SD_2²) / 2)

**效应量解释**：
- |d| < 0.2：小效应（negligible）
- 0.2 ≤ |d| < 0.5：小到中等效应（small to medium）
- 0.5 ≤ |d| < 0.8：中到大效应（medium to large）
- |d| ≥ 0.8：大效应（large）

---

## 数据编码规范

### 发言人类型编码

| 代码 | 说明 |
|------|------|
| F | Founder - 创始人（石头） |
| T | Team - 团队成员（员工） |
| C-Core | 核心客户（复购≥3次） |
| C-Pot | 潜力客户（复购1-2次） |
| C-Sil | 沉默客户（仅首购） |
| C-New | 新客户（首次加群） |

### 内容类型编码

| 代码 | 说明 | 示例 |
|------|------|------|
| PROD | 产品相关 | 产品介绍、推荐、促销 |
| KNOW | 健康知识 | 专业知识分享、科普 |
| ACT | 活动通知 | 活动预告、报名 |
| CHAT | 闲聊互动 | 日常问候、生活分享 |
| CONS | 咨询求助 | 产品咨询、问题求助 |
| FEED | 反馈评价 | 使用体验、评价 |
| PROMO | 推广转发 | 分享给朋友、转发内容 |

### 主题编码（UGC内容分析）

| 代码 | 主题名称 | 关键词 |
|------|---------|--------|
| HEALTH | 健康知识学习 | 健康、营养、知识、学习 |
| PRODUCT | 产品体验反馈 | 产品、效果、质量、使用 |
| COMMUNITY | 社群归属感 | 伙伴、一起、大家、归属 |
| VALUE | 价值感知 | 价值、收获、意义、坚持 |
| BRAND | 品牌认同 | SGHC、品牌、平台、团队 |
| COMMIT | 承诺意愿 | 继续、一直、下一期、长期 |

---

## 缺失值处理规范

### 处理原则

| 缺失率 | 处理方法 | 说明 |
|-------|---------|------|
| <5% | 均值插补/模式插补 | 对结果影响小 |
| 5%-20% | 多重插补 | 使用统计方法估算 |
| >20% | 删除该变量 | 数据质量不足 |
| 整行缺失>50% | 删除该样本 | 回答不完整 |

### 具体策略

**连续变量**（如Likert量表）：
- 使用该题项的均值插补
- 或使用EM算法（SPSS）

**分类变量**（如性别、客户类型）：
- 使用众数插补
- 或创建"缺失"类别

**关键变量**（如客户ID、订单ID）：
- 不允许缺失
- 缺失则删除记录

**SPSS缺失值处理**：
```spss
* 均值插补
TRANSFORM
  /REPLACE MISSING VALUES=PT1 TO IQ5(SMEAN).

* EM算法
MVA VARIABLES=PT1 TO IQ5
  /EM(TOLERANCE=0.001 CONVERGENCE=0.0001 ITERATIONS=25
      OUTFILE='imputed_data.sav').
```

---

## 数据导出规范

### 文件命名规范

**格式**：`数据类型_时间范围_版本.扩展名`

**示例**：
- `questionnaire_pre_20240601_v1.xlsx`
- `transaction_202406_v2.xlsx`
- `interview_transcripts_cycle1_final.zip`

### 导出格式

| 数据类型 | 原始格式 | 导出格式 | 字符编码 |
|---------|---------|---------|---------|
| 问卷数据 | 问卷星 | Excel (.xlsx) | UTF-8 |
| 访谈转录 | Word | Word (.docx) + TXT | UTF-8 |
| 数值数据 | MySQL | Excel (.xlsx) + CSV | UTF-8 |
| 分析结果 | SPSS | Excel (.xlsx) | UTF-8 |

### 数据完整性检查清单

导出前检查：
- [ ] 所有必填字段无缺失
- [ ] 日期格式统一（YYYY-MM-DD）
- [ ] 数值范围合理（无异常值）
- [ ] 字符编码正确（无乱码）
- [ ] 关联ID有效（外键完整性）

---

## 参考文献

- Hair, J. F., Black, W. C., Babin, B. J., & Anderson, R. E. (2010). Multivariate data analysis (7th ed.). Pearson.
- Field, A. (2018). Discovering statistics using IBM SPSS statistics (5th ed.). Sage.

