0

我遇到了一个奇怪的错误,想问是否有人知道可能是什么原因。

错误:

当我将 NHL 球员的面部宽高比 (FWHR) 与他们每场比赛的罚球时间 (PIM/GP) 相关联时,FWHR 分布的一部分是空白的(在 1.98-2 和 2-2.022 之间;见图1)。FWHR 是一个 int/int 比率,其中每个 int 有两位数。这极不可能反映真实信号,因此很可能是我正在使用的代码中的错误。

FWHR 1.98-2 和 2-2.022 之间的部分是空白的,没有明显的原因。

背景: 我知道我的 PIM/P 数据是正确的(从 NHL 的网站上检索),但 FWHR 是使用算法计算的。问题很可能在于这种面部测量算法。我无法找到错误,因此向您寻求建议。

问题: 虽然面部测量算法的代码太长,无法在这里展示,但我想问一下是否有人对可能导致它的原因/我可以检查什么有任何想法?

4

1 回答 1

1

比率分布的性质

想法:两个 2 位整数的比率应该不可能填充两个整数之间的所有 2 位小数值。这种不可能的值会在 2.0 左右特别明显吗?例如,也许 1.99 不能表示?

方法:循环遍历 2 位整数并将比率附加到列表中。然后检查列表是否缺少 2.0 左右的值(例如 1.99)。

import numpy as np 
from matplotlib import pyplot as plt

def int_ratio_generator():
    ratio_list = []
    for i in range(1,100):
        for j in range(1,100):
            ratio = i/j
            ratio_list.append(ratio)
    return ratio_list
    
ratio_list = int_ratio_generator()
key = 1.99 in ratio_list
print('\nis 1.99 a possible ratio from 2-digit ints?', key)
fig, ax = plt.subplots()
X = ratio_list
Y = np.random.rand(len(ratio_list),1)
plt.scatter(X, Y, color='C0')
plt.xlim(1.8, 2.2)
plt.show()

在此处查看输出图像

结论:

  • 来自正 2 位整数的比率不会填充整数之间所有可能的 2 位小数值,不可能的值包括 1.99。
  • 因此,以前不可能的值可以通过包含更大范围的整数来填充,或者通过在相同范围内引入十进制数来填充。
  • 此外,如上面的模拟所示,具有 2 位整数的比率分布将在每个整数的任一侧具有相对较大的不可能值范围。
于 2021-10-13T21:49:52.580 回答