I want to perform an analysis on panel data I got from an online database. I encounter some problems however. One of them is that the database has a lot of features (110). And the other is that it also contains a lot of missing values. For some of the features the dataset even has more missing values than present values. So my first question is, is it good practice to delete the variables with lots of missing values? And if so, what percentage threshold of missing values is acceptable to still achieve reliable results? Extreme examples: I can imagine that deleting a feature that only has one value for 10,000 observations seems reasonable. After all what does the feature really add to the analysis? On the other hand, I can imagine that deleting a variable with only one missing value for 10,000 observations is very bad practice, since this feature could have still added a lot of information to the dataset (even if you delete the row instead of filling the NA). But where's the turning point? Is there a general rule of thumb?
My next question is, how do we fill in the NAs if we have no information about why they are missing? Is nearest neighbor a reasonable method in this case (and also given the data is panel)? I've read a lot about filling in NAs with the mean, but it seems to me that this ignores the fact that the data is panel, as there might be different trend for each individual over time.
The final question I have is: What are the appropriate order of steps including feature selection? Is it better to first drop the variables with lots of NAs, then feature selection, then filling in NAs in order to save computation, or the other way around because it (perhaps) keeps/adds the most information from the data?