Trying to use historical data to make an event 'non-rare' in a logistic regression model I am working on a logistic regression model that attempts to predict failure events in a population of devices using the previous 10 days of data (60 features from sensor data). The failure event is rare; I would expect to find approximately 20-30 on a given day, and the total population size is > 10,000.
Here is where I may be mistaken: I have access to years-worth of historical data, so I thought that I would be slick and make the event 'non-rare'.  That is, collect 1000 failure examples and 1000 non-failure examples, then estimate the model on that. This, I thought, would give the model enough information to determine the relationships between sensor readings and class membership.
However, I am starting to think that my intercept term (and others?) may be problematic because the real initial class probabilities are not respected.
Is the model corrupted by this disregard of the real event probabilities?
 A: What you do is 'over sample' on the 'failures' and as you conclude, this biases your estimates.  When you do not draw a random sample, but a sample based on the values of the binary outcome, then you are doing a so-called 'choice based sampling'.  
The correction of King and Zeng is one option, another option is to use the weights  parameter in glm: If $\pi$ is the fraction of failures in your population and $p$ the fraction in the sample, then each observation gets a weight which is $\frac{\pi}{p}$ for the failures and $\frac{1-\pi}{1-p}$ for the non-failures.  For details see e.g. W.H. Greene, Econometric Analysis.  Note that in the latter case you should use White's sandwich estimator for the var-covar matrix as was mentioned by @Scortchi in the comments.
A: This approach definitely does corrupt the model.  The output of logistic regression is meant to convey the probability of an event given some configuration of independent variables.  Explicitly removing large amounts of data because of the value of the dependent variable will definitely harm this aspect of the model's output.
It sounds like your goal is to classify as opposed to using these probabilities, so if the skew is leading to two many false negatives, you should produce an ROC curve and determine if there is some threshold which produces an acceptable amount of false positives/negatives.
The problem that you discuss has been studied greatly and is often referred to as one-class classification.  When the vast majority of the data is "normal" and the goal is to detect "anomalies" (for example flight malfunction) there are many methods which essentially focus on understanding normality as opposed to understanding anomaly.
