如何将我的数据拟合为高斯分布?

时间:2021-02-02 15:46:33

标签: python statistics gaussian normal-distribution

(首先,我不是母语人士,我认为我的英语可能不够好,无法提出技术问题,但我会尽量说清楚)

大家好,我正在做一个项目,使用经典的 kc_house_data 进行一些分析。

我对统计学的了解越来越少,所以这对我来说是个挑战。

在项目中,我想比较一些考虑到不同特征的数据,例如,基于有或没有 .5 层楼的平方米价格(1、2 和 3 层楼的价格 x 1.5、2.5、3 层楼的价格,5 层)。

    d1 = data['price_m2_living'].loc[data['floors'] % 1 != 0]
    d2 = data['price_m2_living'].loc[data['floors'] % 1 == 0]

enter image description here enter image description here

我可以通过直方图的外观、偏度(值 = 0.70 | 1.32)和 kstest(p 值 = 0.00044 | 2.88e-114)来检查我的数据不是高斯分布。

知道要使用 T-Student 测试和方差分析,我需要标准化数据,我尝试了好几天以某种方式将这些数组转换为高斯数组,但这对我来说非常困难。

我一直在尝试使用 Scipy 函数(norm、lognorm 等)并了解它的参数,但没有一个对我有用。我还尝试以这种方式使用 arctanh 函数:

    d1_t = (rankdata(d1)/(len(d1)+1))*2 - 1
    d1_t = np.arctanh(d1_t)
    plt.hist(d1_t,bins=20)
    skew(d1_t)
    kstest(d1_t,'norm', args=(d1_t.mean(),d1_t.std()))
    skew = -8.40e-08
    pvalue = 0.25680 (bigger than 1.36/np.sqrt(len(d1_t)))

和直方图:

enter image description here

它适用于我的 d1 阵列,但不适用于我的 d2..

0 个答案:

没有答案