我有以下数据集,
1.54 23.66
1.75 26.25
1.92 30.20
2.08 34.46
2.44 42.08
2.78 46.81
3.03 51.10
3.70 52.99
4.17 56.15
4.76 59.34
计算标准偏差 (SD)前两点,我用的是,
stats "data.dat" u 2 every ::0::1
但是,这给了我错误的 SD = 1.2950(正确的是 1.83)
* FILE:
Records: 2
Out of range: 0
Invalid: 0
Blank: 0
Data Blocks: 1
* COLUMN:
Mean: 24.9550
Std Dev: 1.2950
Sum: 49.9100
Sum Sq.: 1248.8581
Minimum: 23.6600 [0]
Maximum: 26.2500 [1]
Quartile: 23.6600
Median: 24.9550
Quartile: 26.2500 0
那我做错了什么? TIA。
最佳答案
您提到的正确的 1.83
值是通过 sqrt(N-1)
对标准差进行标准化时获得的,其中 N
是样本大小。这样做是为了防止估计出现偏差。也就是说,使用从总体中随机抽取的样本来计算标准差,使其期望值等于真实值。
Gnuplot stats
将提供的数据集视为总体,因此通过 sqrt(N)
进行标准化。因此,1.29
的值也是正确的,您也可以将值从一种转换为另一种。
例如:将1.29
转换为1.83
乘以sqrt(N/N-1)
要获得更完整的讨论,请点击此维基百科链接:
关于gnuplot - 使用统计数据计算标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23900030/