If the number of variables is low, you can use a linear model such as in R: model=lm(y~x1*x2*x3+x1^2+x2^2+x3^2). Please keep in mind that interaction and quadratic terms are often important. R Function anova(model) can give you the amount of variance (sum of square) the term explained. If residuals are normal, your linear model is valid. If you have many variables, you’d better use a nonparametric machine learning model such as random forest.