Handling missing observations while using fmincon

13 views (last 30 days)
Selcen Cakir
Selcen Cakir on 12 Nov 2024 at 23:41
Answered: Matt J on 13 Nov 2024 at 5:14
Hello,
I have data that consists of 70 variables that I observe for 100,000 observations but I don't observe a few of those 70 variables for some random observations and MATLAB codes them as NaN. I'm using fmincon to find the minimum of a function with 70 parameters. My function is of the form f(). When I run the algorithm, I notice that MATLAB does not compute the index function when there is a missing value for one of the k variables for some observation i. How should I handle such missing observations?
Thank you in advance,
Selcen

Answers (2)

Walter Roberson
Walter Roberson on 13 Nov 2024 at 0:07
Use this kind of structure:
XY = [X, Y];
XY = rmmissing(XY);
Xm = XY(:,1:end-1);
Ym = XY(:,end);
objfun = @(PARAMS) sum((YourFunction(PARAMS,Xm)-Ym).^2);
bestPARAMS = fmincon(objfun, PARAMS0);

Matt J
Matt J on 13 Nov 2024 at 5:14
They should be zeros rather than NaNs, shouldn't they? With zeros, they will make no contribution to the linear part of the prediction.
X(isnan(X))=0;

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!