Python和R中的Z分数:结果的差异

时间:2015-07-09 22:51:38

标签: r python-2.7

我在Python中使用Z-score,在R民歌中使用相同的数据集来演唱example

的Python

from scipy import stats
a = np.array([ 0.7972,  0.0767,  0.4383,  0.7866,  0.8091,  0.1954,
                   0.6307, 0.6599,  0.1065,  0.0508])
stats.zscore(a)
array([ 1.1273, -1.247 , -0.0552,  1.0923,  1.1664, -0.8559,  0.5786,
        0.6748, -1.1488, -1.3324])

- [R

a <- c(0.7972,  0.0767,  0.4383,  0.7866,  0.8091,  0.1954, 0.6307, 0.6599,  0.1065,  0.0508)
(a - mean(a))/sd(a)

 [1]  1.06939901 -1.18300390 -0.05258212  1.03626165  1.10660039 -0.81192795
 [7]  0.54889230  0.64017636 -1.08984414 -1.26397161

结果不同

1 个答案:

答案 0 :(得分:3)

Python和R都会在您调用的函数调用中评估数据的方差。似乎Python和R的方差定义不同。 Python计算样本方差的偏差估计量,而R使用无偏差量。

差异归结为方差表达式中NN-1的除数,其中N是数据的长度。这意味着Python会说方差为0.0920912,而R表示它是0.1023236。有关更详细的说明,请参阅Standard Deviation上的维基百科页面。