计算多个变量的一个均值和标准差

Posted

技术标签:

【中文标题】计算多个变量的一个均值和标准差【英文标题】:Calculating one mean and standard deviation for multiple variables 【发布时间】:2021-12-30 15:05:11 【问题描述】:

请考虑下表:

我想使用 Stata 计算所有观测值的均值和标准差。 Stata 可以测量每个变量和观察值的均值和标准差;但是,找到所有观测值的均值和标准差并不简单。如何生成所有数据的均值和标准差? 使用 Excel,该表的均值和标准差分别为 4.23.286

【问题讨论】:

对***.com/questions/70041484/… 的评论适用于此处。 【参考方案1】:
clear 
input str1 person item11 item21 item14 item15 item25 
a 2 3 5 1 3 50
b 3 10 2 7 14 
c 7 3 1 4 2 
d 4 2 6 1 4 
end 

mata 
data = st_data(., "item*")
mean(vec(data)), sqrt(variance(vec(data)))
end 

Stata 打印出 4.2 3.286335345。

编辑这是一个将标量导出回 Stata 的版本。

clear 
input str1 person item11 item21 item14 item15 item25 
a 2 3 5 1 3 50
b 3 10 2 7 14 
c 7 3 1 4 2 
d 4 2 6 1 4 
end 

mata 
data = st_data(., "item*")
mean = mean(vec(data)); sd = sqrt(variance(vec(data)))
mean, sd 
st_numscalar("mean", mean) 
st_numscalar("sd", sd)
end 

di scalar(mean)
di scalar(sd)

【讨论】:

谢谢,尼克,它有效。问题是如何保存结果以在公式中使用它们? 例如,您可以从 Mata 导出为本地宏或标量。请参阅 Mata 中有关 Stata 接口函数的帮助。 现在查看扩展答案。【参考方案2】:

如果需要考虑所有观察结果,也许长格式是更有用的格式。 (感谢 Nick 提供的数据示例)

clear 
input str1 person bread vegatable fruit meat soda
a 2 3 5 1 3 
b 3 10 2 7 14 
c 7 3 1 4 2 
d 4 2 6 1 4 
end 

ds person, not
rename (`r(varlist)') val=

reshape long val, i(person) j(item) string
sum val

【讨论】:

以上是关于计算多个变量的一个均值和标准差的主要内容,如果未能解决你的问题,请参考以下文章

R中具有多个分组因子的多个变量的均值和标准差

PySpark:一步计算平均值、标准差和平均值附近的值

基于均值标准差的子集

怎么算标准差?

平均值标准差相关系数回归线及最小二乘法

如何计算/归一化零均值和单位方差