我試圖計算Python中的coefficient of determination(R^2),但在某些情況下我得到一個負值。這是否表示計算中有錯誤?我以爲R^2應該是有界的0和1之間在Python中計算確定係數
下面是做計算我的Python代碼,從WP文章直改編:
>>> yi_list = [1, 1, 63, 63, 5, 5, 124, 124]
>>> fi_list = [1.7438055421354988, 2.3153069186947639, 1002.7093097555808, 63.097699219524706, 6.2635465467410842, 7.2275532522971364, 17.55393551900103, 40.8570]
>>> y_mean = sum(yi_list)/float(len(yi_list))
>>> ss_tot = sum((yi-y_mean)**2 for yi in yi_list)
>>> ss_err = sum((yi-fi)**2 for yi,fi in zip(yi_list,fi_list))
>>> r2 = 1 - (ss_err/ss_tot)
>>> r2
-43.802085810924964
對,我剛注意到這個警告。我的數據是用多項式表達式生成的,所以我想這是有道理的。 – Cerin 2010-08-11 16:39:46