首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >峰度函数不太好

峰度函数不太好
EN

Stack Overflow用户
提问于 2021-07-24 04:13:45
回答 1查看 246关注 0票数 2

我在玩雪花游戏,当我使用峰度函数时,我得到了一个零误差除法:-(

如果有超过一个不同的值(超过4个值),函数就会完美地工作:

代码语言:javascript
复制
select 
    kurtosis(bob) 
from 
    (select seq4() bob from table(generator(rowcount => 10)));

但是当所有的值都相同时会失败。在这种情况下,1:

代码语言:javascript
复制
select 
    kurtosis(bob) 
from 
   (select 1 bob from table(generator(rowcount => 10))); 

除了在每次评估之前进行计数、不同或HLL测试之外,还能有人提出解决方案吗?

我确实看到了这个文章在谈论潘达斯“滚动偏斜和峰度在所有等价物的样本上失败”,但这几乎是10年前,雪花甚至是一个白日梦。

偏斜函数存在相同的问题。

我暂时讨厌的解决办法是:

代码语言:javascript
复制
select 
    DECODE(HLL(bob),1,0,SKEW(bob::FLOAT)) yucky_solution
from 
   (select 1 bob from table(generator(rowcount => 10))); 

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-24 04:42:00

我认为这反映了kurtosis函数是如何工作的(不管雪花如何工作)。

我在Wolfram和这个在线的峰度计算器上测试了这一点:https://www.socscistatistics.com/tests/skewness/default.aspx

从0到9的数字与雪花相同:

但是10个相同的数字返回一个NaN值:

从数学上讲,这是峰度的公式:

通过标准偏差潜水(某物)得到的。一系列相同的数字的标准偏差是0-因此除以0误差。

因此,避免异常的SQL方法是首先计算stddev:

代码语言:javascript
复制
select 
    iff(stddev(bob)=0, null, kurtosis(bob))
from 
   (select 1 bob from table(generator(rowcount => 10))); 

-- null
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68506925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档