# Predict the salaries of customers in 2019 from 2016 data

I have a spreadsheet of data with ages and salaries for 2016. For example, in 2016 there were 12988 customers who were 18 years old and earned 20k. I need to predict the salaries of customers for 2019. All I have are their ages but not their actually salary.

Since I do not have a lot of data (just 2016), I was thinking of simply making an estimate based on percentages. For instance, if 1% of all customers earned 20k, then I assume that 1% of the current customers also earn 20k Should that be enough or is there a better way?

• Dose the set of customers differe in 2019 in comparison with 2016? I mean, should you predict it for the same people? Maybe you can use some statistics, which describe salary distribution in general, not only for considered customers, but for region, for example.
– Lana
Aug 19, 2019 at 7:15
• different people but all belonging to the same region.
– Lilz
Aug 19, 2019 at 7:17
• Then it would be reasonable to include changes in salary level in this region and add it to your prediction. If it's possible
– Lana
Aug 19, 2019 at 7:19

Welcome to the site! First off, I will start by saying that you might be better off asking this in a statistics SE because this isn't really data science. But I will still try to help you.

I will assume that age and salary are the only items you have and that salary is the only thing you are trying to predict. If those assumptions are correct then there really is no algorithm, you can just do some distribution "tricks" to get you there.

You're on the right path of thinking about things on a proportional basis and I would proceed accordingly. However, I wouldn't think of it in whole numbers (like your 20k example), I would think about using some scaling. So, take the max value of all your salaries and create scales with something like salary / max salary. From there, you should should know how many people will have X salary (in a scaled, decimal format).

Now, you need to decide how much salary inflation (or deflation) has happened in the 3 years since your data was available. Take that percentage and assign it back to your scaled values and now you can have a pretty good idea of how much each person makes in today's dollars (otherwise, you'd end up with salaries in 2016 dollars).

Good luck!

Using one way of predicting is never the best way. You now have one rule, but you have multiple ways of doing this regression problem, going from simple linear regression, to nearest neighbors and everything in between in terms of flexibility (bagging, boosting,..). There are multiple online and very good sources on how to test your algorithm's performance. For example: https://machinelearningmastery.com/difference-test-validation-datasets/ You have to split your data sets in training, validation and test sets to see how good the algorithm and its underlying rule(s) is predicting unseen data.

I guess, that you should add more data from other sources, such as an open statistic of salary changes in your region, distribution depended on age and so on. Your task looks like time series problem, but you don't have observation of necessary period. I think, that this suggestion is not correct "if 1% of all customers earned 20k, then I assume that 1% of the current customers also earn 20k ". You should at least multiple it on some constant depended on changes, which has happened during this period of 3 years.