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

请考虑下表:

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

【问题讨论】:

标签: statistics stata mean


【解决方案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

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 1970-01-01
    • 2014-03-21
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多