1

我试图通过从 3 个其他变量(即 A、B 和 C)创建变量 D 来计算 z 分数。我试图将 D 生成为:D= (AB)/C 但由于某种原因,当我这样做时,它产生非常大的数字。当我只做 (AB) 时,它没有得到我手工计算时应该有的结果,而不是 -2,我是 -105.66。

变量 A 是 'long' 而变量 B 是 'float',我不确定这是否是原因?我的状态语法是:

gen zscore= (height-avheight)/meansd

不工作。

4

2 回答 2

2

您混淆了标量和变量。这是一个解决方案(砍掉前四行并替换xheight以使计算适合您的代码):

// example data
clear
set obs 50
gen x = runiform()

// summarize
qui su x
// store scalars
sca de mu = r(mean)
sca de sd = r(sd)

// z-score
gen zx = (x - mu) / sd
su zx

x它的 z 分数zx是具有许多值的变量,而musd是常数。您可以使用标量或宏在 Stata 中编码常量。

于 2013-08-12T18:23:26.673 回答
1

我不确定你想得到什么,但我会使用来自 Stata 的自动数据来解释。这是Stata中的基本内容。假设我想测试 price=3

sysuse auto
sum price
#return list which is optional command
scalar myz=(3-r(mean))/r(sd) #r(mean) and r(sd) gives the mean and sd of price, if that is given you can simply enter the value for that
dis myz
-2.0892576

因此,这里的 z 值为 -2.09。

于 2013-08-12T18:18:53.493 回答