Negative value in information gain calculation through gini index
I quickly checked your calculation and you seem to have miscalculated the gini(annual income)


  gini(annual income)=1-((5/20)^2+(12/20)^2+(3/20)^2) = 0.445


When it actually equals 0.555 (you probably forgot the 1-... part) which is larger than 0.532 so you might be fine for the rest of the calculations.