関数 lsqcurvefit を使用して、Bass Diffusion Modelの p および q パラメータを見つけようとしました。
最初に、Bass 関数を次のように書きました。
function F = Bass(x, cummulativeAdoptersBefore)
m = 1500000;
F = x(1)*m + (x(2)-x(1))*cummulativeAdoptersBefore + x(2)/m*cummulativeAdoptersBefore.^2;
end
x(1) = p x(2) = q
そしてFitBass:
function [ x, resnorm ] = FitBass(priorCumulativeAdopters, currentAdoptersCount)
xData = priorCumulativeAdopters;
yData = currentAdoptersCount;
x0 = [0.08; 0.41];
[x, resnorm] = lsqcurvefit(@Bass, x0, xData, yData);
end
しかし、F = Bass(x, cummulativeAdoptersBefore) の結果を比較すると、x は一致したパラメーターのベクトルであり、yData は実際のデータであり、F (下の曲線 - x ~ 1) は yData にさえ似ていないことに気付きました。
ここで何が間違っているのか、またはこの場合(そして一般的に)満足のいく適合のためにパラメータxを見つける方法を誰かが知っていますか?
ありがとうございました!