Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql-AVG()和STD()函数,奇怪的结果。。。_Mysql_Average - Fatal编程技术网

MySql-AVG()和STD()函数,奇怪的结果。。。

MySql-AVG()和STD()函数,奇怪的结果。。。,mysql,average,Mysql,Average,我对MySql关于标准函数的结果感到非常失望: -平均值 -标准偏差 从我的表“拍卖”中检查以下结果: mysql> SELECT avg(buyout) avg FROM auction where buyout <> 0 and item =72988; +-------------+ | avg | +-------------+ | 234337.3622 | +-------------+ mysql>从拍卖中选择avg(买断)avg,买断0,物品=

我对MySql关于标准函数的结果感到非常失望: -平均值 -标准偏差

从我的表“拍卖”中检查以下结果:

mysql> SELECT avg(buyout) avg FROM auction where buyout <> 0 and item =72988;
+-------------+
| avg         |
+-------------+
| 234337.3622 |
+-------------+
mysql>从拍卖中选择avg(买断)avg,买断0,物品=72988;
+-------------+
|平均值|
+-------------+
| 234337.3622 |
+-------------+
这个结果看起来是正确的,没有问题。 但当我运行std时:

mysql> SELECT std(buyout) std FROM auction where buyout <> 0 and item =72988;
+-------------+
| std         |
+-------------+
| 574373.6098 |
+-------------+
mysql>从拍卖中选择std(买断)std,其中买断0,项目=72988;
+-------------+
|性病|
+-------------+
| 574373.6098 |
+-------------+
!!SDT大于平均值(SDT>AVG),即。。。不可能,因为我的平均值>0

我错在哪里了?
提前谢谢

或者换一种说法,我们关注的是拍卖价格。数据库中的每个价格都是正值。我们的平均值没有减少,也没有居中,大约为2.35,但st.dev的计算返回的值高于2.35。如果我们把这个结果放在一张图上,这意味着价格围绕着一个大于平均值本身的值的平均值移动,如果我们把这个标准差从我们的平均值“向左”画,那么它会说有可能找到一个负价格->不可能


对吧?

没有数学约束规定,如果平均值为正,则必须小于标准偏差

我在R中读到了你的数据摘录

data <- read.table("extract_72988.csv", h=1, sep="\t")
对数据的进一步分析表明,它远远不是正态分布

以下是您的数据直方图:

这是对数变换数据的柱状图

最后是一个正常的Q-Q图


有什么特别的原因让你认为标准div不能大于平均值吗?@mtariq:这是不可能的。如果平均值为正,则SDT始终<平均值。@mtariq:参见图表;我在寻找绿色箭头,而蓝色箭头是不可能的,因为我们正在处理价格问题。如果分布是正态(或接近正态),那么是的,您的结果令人惊讶。数据是否干净?因为如果值位于两个极端,则可以有stdev>avg(对于所有正值)。我建议将数据导出到csv,并使用Excel或其他工具来验证平均值和标准差。标准差可以大于平均值,没有数学约束:
a=[101005001000]
-
mean(a)=400.25
-
SD(a)=454.31
。稍微清理一下数据将确保sdt的良好解释。谢谢你的好图!
> mean(data$BUYOUT)
[1] 234337.4
> sd(data$BUYOUT)
[1] 574421.3