# Regression model with variable number of parameters in dataset?

I work in physics. We have lots of experimental runs, with each run yielding a result, y and some parameters that should predict the result, x. Over time, we have found more and more parameters to record. So our data looks like the following:

Year 1 data: (2000 runs)
parameters: x1,x2,x3                target: y
Year 2 data: (2000 runs)
parameters: x1,x2,x3,x4,x5          target: y
Year 3 data: (2000 runs)
parameters: x1,x2,x3,x4,x5,x6,x7    target: y


How does one build a regression model that incorporates the additional information we recorded, without throwing away what it "learned" about the older parameters?

Should I:

• just set x4, x5, etc to 0 or -1 when I'm not using them?
• completely ignore x4,x5,x6,x7 and only use x1,x2,x3?
• add another parameter that is simply the number of parameters?
• train separate models for each year, and combine them somehow?
• "weight" the parameters, so as to ignore them if I set the weight to 0?
• make three different models, using x1,x2,x3, x4,x5, and x6,x7 parameters, and then interpolate somehow?
• make a custom "imputer" to guestimate the missing parameters (using available parameters)

I have tried imputation using mean and median, but neither works very well because the parameters are not independent, but rather fairly correlated.

• I'd set up neural network and disconnect the neurons corresponding to the missing inputs as necessary.
– Emre
Jul 14, 2016 at 19:20
• impute the missing vals? Jul 14, 2016 at 20:12
• Could impute the missing values...Would have to make my own imputer though, the imputer for scikit-learn is not very smart (mean, median, etc.) Not sure I want to just replace every missing value with the average. Jul 14, 2016 at 20:44
• What kind of model are you intending to make? When used to predict, do you need it to work with limited parameters same as your early experiments? Or will the final model assume that users will always input all the parameters you have determined are interesting? Jul 15, 2016 at 6:46
• The model needs to predict y well across the historical data and the new data. One of the parameters, x1, is a time, and I need to model y as a function of this time parameter, y(x1), and fit an exponential to it for each run. y(x1) is the goal, but to improve y(x1)'s predicted form, I hope to incorporate more than just x1,x2 by using x3,x4,... as these new measurement channels become used. As the experiment continues, new measurement channels will probably be added. Jul 15, 2016 at 19:13