Scipy stats.probplot 没有返回 r^2 值错误?

Scipy stats.probplot not returning r^2 value bug?

我目前正在使用 scipy 绘制数据矩阵 X 中一组特征变量的正态概率图。但是,我正在使用的模块没有返回我的 r^2 值。这是我的简单代码:

Data_Matrix=pd.read_csv('My csv')
My_datum=My_Data.as_matrix()
#loop through all feature variables
for i in range(My_datum.shape[1]):
    #just a simple print line for the column index and its shapiro test 
results
    print(i)
    print(a)
#plot    
pplot=stats.probplot(My_datum[:,i],dist='norm',fit=True, plot=plt )
    a=sp.stats.shapiro(My_datum[:,i])

我试过在一些更简单的 numpy 数组上使用同一行,但无济于事。我正在 spyder 3 上使用 Ipython 控制台。提前致谢!

Probplot returns 已经绘制了 R 值。您只需要将它平方即可得到 R^2。

(slope, intercept, r) = stats.probplot(My_datum[:,i], dist='norm', fit=True, plot=plt)
R_squared = r**2

所以这有点奇怪,但它 returns 是一个元组列表。您实际上只需要通过索引 probplot 函数从列表中提取第二个元组。您需要解压缩元组然后对其进行平方。

slope, intercept, r = stats.probplot(My_datum[:,i], dist='norm', fit=True, plot=plt)[1]

r2 = r**2