We have a glass-manufacturer client that is evaluating JMP Pro. He has an unusual (to me) dataset. I'd be interested in any suggestions on how to handle any of several problems.
The process involves slowly sending the glass material through several furnaces, where various temperatures and airflows are monitored. Temps are measured from top to bottom of the furnace, as well as along the length of the furnace. Temps are recorded every minute or so.
The output is a visual inspection of the glass, looking for bubbles, so they have a count per square inch type of response. This is apparently a hand inspection, so they only pull samples every four hours. Their estimate is that the samples may be offset from the measured temperatures by up to 40 minutes (time the sample passes a temperature sensor to the time it exits the furnace and is examined), though this varies for different temperature measurement stations along the length of the furnace.
The data set ends up being very wide (perhaps 1000 columns of temperatures and airflow rates.) There are also thousands of rows, but only a few hundred rows of response data due to the intermittent 4-hour sampling. It is also pretty noisy with signal drop-outs from time to time, and lots of missingness that has to be cleaned up.
They are doing a Pro trial, so they immediately jumped to the Model Screening platform. Training sets can give fairly high Rsqd (perhaps 0.8 or so), but Validation is very low (maybe 0.2). Neural Boosted and Boosted Tree tend to bubble up to the top of the list, but they aren't good enough to build useful predictive models.
I'm thinking they need to address the time lag between inputs and outputs. They would need to make a new column for each of the inputs, with appropriate lag to the measured response (which might vary column-to-column). I can see how to do that manually, but short of writing a script, it would be a lot of work to set up. Anyone know a quicker way to do that? Or better yet, how to actually determine the best lag for each signal (again short of a script)?
Anyone dealt with this anywhere in the past?
Thanks!
Hi @JerryFish ,
I created this demo when I was imagining a similar situation - continuous stream of sensor data from a process with unknown lags. The solution in this demo is to take a quick and dirty machine learning approach to finding the most predictive lag times.
Basically the idea is that for each sensor you create a series of lag variables to cover a range of lag times. (This is very easy now with the Lag Multiple... capability in New Formula Column > Row). Then use Bootstrap Forest to screen through these for the lag time that is the best predictor for the response. You would use this subset of predictors to build the "final" model - probably you would use Model Screening at this point. Model Screening wasn't around when I created the demo.
There are two advantages of this over more traditional methods. 1. It is quick and simple. 2. It can find nonlinear and interaction effects between predictors and response.
I think this is a good use case for JMP Pro. But, of course, that doesn't mean that they will definitely be able to build a useful model - all of those sensors might not be measuring the important factors.
Let me know if it would be helpful to talk through this example. I don't know if anyone has a recording of this demo. I know that I don't. But maybe it would be helpful to create one.
Cheers,
Phil
Excellent suggestion @Phil_Kay ! I will pass this along to the client and see if it works for him.
And (personally) I think a recording of this technique would be very helpful to others.
Really appreciate the suggestion!
Jerry