I have a dataset that contains records of donors with various biographical info (city, state, zip, number of children) and the total amount they donated over 10 years. Some never donated and thus the total amount is $0. Not all records contain all the bio info, so there are missing values. An example would be as follows:
My goal is to determine which factors affect the donation. In other words, looking at a potential donor I want to predict whether he/she would donate. I tried regression, but that didn't work ($R^2 = 14\%$).
General ANOVA also does not seem to be working. Aside from pretty poor model, I clearly cannot validate it as it's normal probability plot is S-shaped (which is expected since the majority of records have response "Total" = 0).
What can I do to proceed with this further?
I will have about 50 factors, but also a lot of missing data. I don't know ahead of time whether I even have data for some of these factors. I could probably do some preprocessing and exclude the factors for which I don't have sufficient data. I will still have missing values. So, this would potentially reduce the number of factors to 20.
Main questions that I'm trying to answer:
- Given the data for a new donor, what is the probability that he/she donates?
- Given the data for a new donor, how much will he donate?
- What are the factors (and the needed levels) that would increase the chance of donation?
- What are the factors (and the needed levels) that would increase the amount of donation?
Results for General Linear Model Anova - all factors, using the total amount donated as a response
most of the factors "cannot be estimated and were removed", leaving us with 20 factors
out of 14532, 600 rows were unused
S R-sq R-sq(adj) R-sq(pred) 22715.8 26.59% 17.56% *
The results are pretty interesting, detecting about 20 significant factors (out of 150). However, the normal probability plot of residuals is S-shaped (which makes sense since the majority of records have a response = 0). Data transformation techniques used to normalize the residuals require positive responses, so I'm stuck :)
There were several comments about regression and ANOVA. My problem is still with the normality. Residuals don't seem to be normal and I'm having problems transforming the data because of "0" response values: