计算多个变量的一个均值和标准差
Posted
技术标签:
【中文标题】计算多个变量的一个均值和标准差【英文标题】:Calculating one mean and standard deviation for multiple variables 【发布时间】:2021-12-30 15:05:11 【问题描述】:请考虑下表:
我想使用 Stata 计算所有观测值的均值和标准差。 Stata 可以测量每个变量和观察值的均值和标准差;但是,找到所有观测值的均值和标准差并不简单。如何生成所有数据的均值和标准差? 使用 Excel,该表的均值和标准差分别为 4.2 和 3.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
【讨论】:
以上是关于计算多个变量的一个均值和标准差的主要内容,如果未能解决你的问题,请参考以下文章