You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Stata中mvprobit模型结果为新数据集预测二元结果?

解决Stata多元Probit模型(mvprobit)的新数据集预测问题

一、Stata实操方案

虽然mvppred不支持跨数据集预测,但可以通过导出估计结果+手动计算的方式实现,步骤如下:

  1. 在原数据集导出模型参数
    * 先完成mvprobit估计(示例命令,替换为你的实际模型)
    mvprobit (rainfed = x1 x2 x3) (surface = x1 x4) (sprinkler = x2 x3 x4) (drip = x1 x3)
    
    * 保存系数估计结果
    estimates save "mvprobit_coefs.ster", replace
    
    * 提取并保存残差协方差矩阵
    matrix Sigma = e(Sigma)
    matrix save "mvprobit_Sigma.mat", replace
    
  2. 切换到新数据集加载参数并生成预测
    * 加载之前保存的系数和协方差矩阵
    estimates use "mvprobit_coefs.ster"
    matrix use "mvprobit_Sigma.mat"
    
    * 计算每个方程的线性预测值(替换为你的自变量和方程对应关系)
    gen y1_hat = _b[rainfed:_cons] + _b[rainfed:x1]*x1 + _b[rainfed:x2]*x2 + _b[rainfed:x3]*x3
    gen y2_hat = _b[surface:_cons] + _b[surface:x1]*x1 + _b[surface:x4]*x4
    gen y3_hat = _b[sprinkler:_cons] + _b[sprinkler:x2]*x2 + _b[sprinkler:x3]*x3 + _b[sprinkler:x4]*x4
    gen y4_hat = _b[drip:_cons] + _b[drip:x1]*x1 + _b[drip:x3]*x3
    
    * 生成符合模型假设的多元正态随机误差项
    drawnorm eps1 eps2 eps3 eps4, means(0 0 0 0) cov(Sigma) seed(1234) // seed固定可复现结果
    
    * 生成二元预测结果:潜变量>0时取1,否则取0
    gen rainfed_pred = (y1_hat + eps1) > 0
    gen surface_pred = (y2_hat + eps2) > 0
    gen sprinkler_pred = (y3_hat + eps3) > 0
    gen drip_pred = (y4_hat + eps4) > 0
    
    注:如果需要预测联合概率(比如某农场同时采用喷灌和滴灌的概率),由于Stata内置mvnormal()仅支持3维以下,4维场景可使用外部命令mvnp实现积分计算。

二、手动预测的理论公式

多元Probit模型的核心逻辑基于潜变量假设:

1. 潜变量方程

对于第$i$个观测的第$j$个因变量($j=1,2,3,4$对应雨养、地面灌溉、喷灌、滴灌),存在不可观测的潜变量$y_{ij}^$:
$$y_{ij}^
= \mathbf{x}_{i}'\boldsymbol{\beta}j + \epsilon{ij}$$
其中:

  • $\mathbf{x}_i$:第$i$个观测的自变量向量
  • $\boldsymbol{\beta}_j$:第$j$个方程的系数向量(模型估计得到的$\hat{\boldsymbol{\beta}}_j$)
  • $\boldsymbol{\epsilon}i = (\epsilon{i1}, \epsilon_{i2}, \epsilon_{i3}, \epsilon_{i4})'$:服从均值为0、协方差矩阵为$\Sigma$(即模型输出的e(Sigma))的多元正态分布

2. 二元结果映射

观测到的二元因变量$y_{ij}$与潜变量的关系为:
$$y_{ij} = \begin{cases}
1 & \text{当 } y_{ij}^* > 0 \
0 & \text{当 } y_{ij}^* \leq 0
\end{cases}$$

3. 预测逻辑

  • 二元结果预测:先计算线性预测值$\hat{y}{ij}^* = \mathbf{x}i'\hat{\boldsymbol{\beta}}j$,再从$N(\mathbf{0}, \hat{\Sigma})$中抽取误差项$\hat{\epsilon}{ij}$,最后通过$\hat{y}{ij}^* + \hat{\epsilon}{ij}$与0的比较得到预测值。
  • 联合概率预测:若要计算特定结果组合的概率(如$y_1=1, y_2=0$),需对多元正态分布在对应区域($\epsilon_{i1} > -\hat{y}{i1}^*, \epsilon{i2} \leq -\hat{y}_{i2}^*$等)进行积分。

内容的提问来源于stack exchange,提问作者Charlotte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:45:23