如何计算圆的半径,使 95% 的点都在圆内

How to calculate the radius of a circle so that 95 % of the dots are inside of it

我测量了 100 个点并计算了 x 和 y 方向的标准偏差。然后我在图表中绘制了 100 个点中的每一个,现在我想包围这些点中的 95%。

我的想法是我可以使用标准差来计算半径,但是使用具有相似标准差的随机数据进行的测试证明这行不通。

我已经使用 Protagoras 定理以及 numpy 中的标准偏差函数进行了测试。

    cal_x_mean = 0
    cal_x_std = 0.5286
    cal_z_mean = 0
    cal_z_std = 0.4158
    
    cal_x_values = stats.truncnorm(-1, 1, loc=cal_x_mean, scale=cal_x_std)
    cal_z_values = stats.truncnorm(-1, 1, loc=cal_z_mean, scale=cal_z_std)

    cal_x = cal_x_values.rvs(100)
    cal_y = cal_z_values.rvs(100)

    # cal_r = 2*np.std([cal_x, cal_y])              # numpy
    cal_r = math.hypot(cal_x_std, cal_z_std)        # Protagoras

    print(f'Radius for calibrated {cal_r}')

    fig, ax = plt.subplots(1)
    plt.plot(0, 0, 'o', color='red')
    plt.plot(cal_x, cal_y, 'o', color='black')
    Drawing_uncolored_circle = plt.Circle((0, 0), cal_r, fill=False)

    ax.set_aspect(1)
    ax.add_artist(Drawing_uncolored_circle)
    plt.xlim(-1, 1)
    plt.ylim(-1, 1)
    plt.title(str("Calibrated"))
    plt.grid()
    plt.ylabel('Z (mm)')
    plt.xlabel('X (mm)')

Whosebug 的大神们有没有解决这个问题的建议?

一只乌龟

假设您想要一个确切的答案,您可以重新考虑您的问题,即找到值列表的第 95 个百分位数,其中每个值都是点到原点的距离。