I know this topic has been extensively covered, but I haven't found an answer that suits my needs.

I'm currently interning and working on electronic boards.

These electronic boards go through test benches. The test lasts about ten hours if the board is compliant; otherwise, as soon as an anomaly appears, the test stops. This is the source of my missing values.

My topic is as follows: a number of these rejected boards are false negatives (a board detected as defective when it is actually compliant).

Therefore, I'm looking to create a machine learning model to predict the false negatives in order to analyze the most influential parameters and correct them.

However, missing values are a real problem for me, plus my data is highly imbalanced (m <<<< n), which doesn't make my job any easier.


1 Answer 1


I think most people would use false positive to describe your situation, but it is semantics on what you are calling the positive class so to each his own. In what is below I referred to a failed board as a positive detecting failure when the board is fine is thus a false positive.

The first thing to ask your self is about the source of missing data. Is it completely at random? In your case it certainly is not. Missing data for one variable implies the data is missing for other variables that are measured afterwards. The missing data in fact tells you which test failed. If you look at the data and figure out most of the false negatives are associated with test #10, it may be practical to simply require test #10 fails X number of times where you set X based open your risk/reward tradeoff for the application. It is probably better to start with a simple analysis like this before building a complicated model.

But, if you did want to go with the complicated model... you did not describe the type of variables in your data set. If the variables are categorical (factors), a straight forward thing to try is treating missing values as a level for that factor. This is common when missingness is not random. If your variables are continuous you could add indicator variables that indicate if the value is missing and then impute the missing values. It is common to skip the indicator variables if the data is missing completely at random (not valid here). A very common way to impute missing values is to use the mean (or zero if your preprocessing step involves centering). There is a large amount of literature on imputation techniques but I'm guessing for a first pass the simpler, the better.

Keeping on the theme of simpler is better, I really do suggest doing an exploratory analysis of the data and looking at your false positive (err um negative) rate by test. If it appears all false positives are associated with only a handful of tests and you have a large number of tests, then you kind of have a smoking gun. Estimating the conditional probability that a board is fine when a test fails is a straight forward proportion based on your data and gives you a very lucid number with which you can make a decision on requiring more than one failure before stopping the test.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.