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

如何模拟给定协方差与方差的二元正态联合分布样本点?

解决Stata模拟联合正态分布点对的问题

我来帮你梳理下代码里的问题,然后给出正确的实现方案:

你的代码存在的几个问题

  • 变量重复定义:你先手动生成了x和y变量,之后又用drawnorm尝试生成同名变量,Stata默认不允许覆盖已存在的变量,这是报错的直接原因。
  • 拼写错误:rnromal是笔误,正确的函数名是rnormal。
  • 观测数不符:你设置了set obs 100,但需要模拟200个点对,得改成set obs 200。
  • 冗余操作:手动生成x和y的步骤完全没必要,drawnorm可以直接生成符合联合正态分布要求的变量对,无需提前手动创建。

正确的实现代码

根据你之前的参数(X和Y均值为64,标准差为5,相关系数0.5),这里提供两种可行的写法:

方法1:使用相关系数矩阵(更直观,对应你给出的矩阵D)

set obs 200
set seed 1  // 设置随机种子,保证结果可重复

// 直接生成符合要求的联合正态分布变量
drawnorm x y, means(64 64) sds(5 5) corr((1, 0.5 \ 0.5, 1))

方法2:使用协方差矩阵

先根据相关系数、标准差计算协方差:cov = 相关系数 * 标准差X * 标准差Y = 0.5*5*5=12.5,协方差矩阵为[[25,12.5],[12.5,25]],代码如下:

set obs 200
set seed 1

// 定义协方差矩阵
matrix cov_mat = (25, 12.5 \ 12.5, 25)
// 生成变量
drawnorm x y, means(64 64) cov(cov_mat)

后续绘制散点图

生成变量后,直接用以下命令绘制散点图:

scatter y x

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:48:09