Fitting a Gamma distribution with threshold parameter: error message?
2 次查看(过去 30 天)
显示 更早的评论
Hey,
I'm trying to fit a Gamma distribution to some raw data which includes a lower threshold parameter, and i'm getting the following error message. Could somebody help here please?
CODE %%%%%%%%%%%%%%%%%
c = min(data)/4
k = mean(data)^2
theta = var(data)/mean(data)^2
x = sort(data);
n = length(x);
pEmp = ((1:n)-0.5)' ./ n;
wgt = 1 ./ sqrt(pEmp.*(1-pEmp));
gammaObj = @(params) sum(wgt.*(gamcdf((x-params(1)),exp(params(2)),exp(params(3))) - pEmp).^2)
paramHat = fminsearch(gammaObj,[c,log(k),log(theta)])
paramHat1 = paramHat(1);
paramHat2 = exp(paramHat(2));
paramHat3 = exp(paramHat(3));
ERROR %%%%%%%%%%%%%%%%%
|??? Error using ==> minus Matrix dimensions must agree.
Error in ==> @(params)sum(wgt.*(gamcdf((x-params(1)),exp(params(2)),exp(params(3)))-pEmp).^2)
Error in ==> fminsearch at 205 fv(:,1) = funfcn(x,varargin{:});
Error in ==> gammaFit at 582 paramHat = fminsearch(gammaObj,[c,log(k),log(theta)])
| Thanks a bundle !
0 个评论
采纳的回答
Nirmal Gunaseelan
2011-7-29
The error points to the MINUS operator. It appears that the variables x and n (and hence pEmp?) have the same dimensions and params(1) is different from this. What are the dimensions of these variables?
3 个评论
Nirmal Gunaseelan
2011-7-29
Good. So the difference now is between the dimensions of sim_data and the real_data that you are using. You could use this:
size(sim_data)
to verify.
更多回答(1 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!