首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在Python中创建相关变量,设置这些变量的标准差?

有没有办法在Python中创建相关变量,设置这些变量的标准差?
EN

Stack Overflow用户
提问于 2021-10-12 17:44:38
回答 1查看 480关注 0票数 3

我想为四个变量创建假数据:身高、体重、年龄和收入。

我已经使用了这个脚本:

代码语言:javascript
复制
cov_matrix = [[1, 0.7, 0, 0],
              [0.7, 1, 0, 0],
              [0, 0, 1, 0.4],
              [0, 0, 0.4, 1]]
correlated = np.random.multivariate_normal([165, 65, 30, 15000], cov_matrix, size=250)
data = pd.DataFrame({
 "Height": correlated[:, 0],
 "Weight": correlated[:, 1],
 "Age": correlated[:, 2],
 "Income": correlated[:, 3]
})

但是结果还不够好,这四个变量的标准差(sd)约为1,我希望我的数据有更多的色散。例如,变量“高度”的sd值为30。

是否有可能在Python中实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-12 18:23:11

要获得每个特征的方差,只需将这些值放在协方差矩阵的对角线上。但是,对角线以外的元素需要缩放,以考虑特征差异。

代码语言:javascript
复制
a1 = 0.7*np.sqrt(30*12)
a2 = 0.4*np.sqrt(19*50)
cov_matrix = np.array([[30.0,   a1,  0.0, 0.0],
                       [  a1, 12.0,  0.0, 0.0],
                       [ 0.0,  0.0, 19.0, a2],
                       [ 0.0,  0.0,   a2, 50.0]])

correlated = np.random.multivariate_normal([165, 65, 30, 15000], cov_matrix, size=1000)
print(correlated.var(axis=0))
print(np.corrcoef(correlated.T))

差异:

代码语言:javascript
复制
[28.02834149 11.14644597 18.68960579 49.46234297]

特征之间的互相关系数矩阵:

代码语言:javascript
复制
[[ 1.          0.67359842 -0.02016119 -0.02607946]
 [ 0.67359842  1.         -0.00338224 -0.01021924]
 [-0.02016119 -0.00338224  1.          0.37187791]
 [-0.02607946 -0.01021924  0.37187791  1.        ]]

或者,根据原始协方差矩阵生成数据,然后缩放和移动每个特征,使其具有所需的均值和标准差。这将保留原来打算的相关系数。请注意,平均值是在缩放后添加的,否则缩放将更改平均值。

代码语言:javascript
复制
# generate correlated features with zero-mean and unit variance
correlated = np.random.multivariate_normal(np.zeros(4), cov_matrix, size=1000)

# multiply by the desired standard deviation to scale the data and add the mean
correlated = correlated.dot(np.diag(np.sqrt([30.0, 12.0, 19.0, 50.]))) + np.array([165, 65, 30, 15000])
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69544884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档