私は、ビニングされたデータのセットの各ビンの加重分散を取得しようとしています。私の試行は以下の通りですが、私は次のエラーを受け取ります。Pythonでビンビン加重分散
TypeError: <lambda>() missing 1 required positional argument: 'weight_data'
ラムダ関数には2つの引数がありますか?
私は、どちらかのエラー、私に働く機能を与える方法、または別の方法をお勧めします。私はPythonだけを使用しています。
def wVar(values, weight_data, bias=None):
weighted_mean = np.average(values, weights=weight_data)
s2_bias = np.average((values - weighted_mean)**2, weights=weight_data)
s2_unbiased = s2_bias/(1.0 - (np.sum(weight_data**2)/(np.sum(weight_data))**2))
if (bias == None):
return s2_unbiased
elif (bias.lower() == "biased"):
return s2_bias
elif (bias.lower() == "unbiased"):
return s2_unbiased
else:
return print(' "bias" must be assigned as either "unbiased" or "biased" or not at all (default = unbiased) ')
bin_wvar0, bin_edges, binnumber = sp.stats.binned_statistic(x_data, y_data, statistic=lambda y_data, weight_data: wVar(y_data, weight_data, bias="unbiased"), bins= bin_edge_data)