我在Python中使用Z-score,在R民歌中使用相同的数据集来演唱example
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])
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
结果不同
答案 0 :(得分:3)
Python和R都会在您调用的函数调用中评估数据的方差。似乎Python和R的方差定义不同。 Python计算样本方差的偏差估计量,而R使用无偏差量。
差异归结为方差表达式中N
与N-1
的除数,其中N
是数据的长度。这意味着Python会说方差为0.0920912
,而R表示它是0.1023236
。有关更详细的说明,请参阅Standard Deviation上的维基百科页面。