The description of your problem is vague. In case you want to do causal analysis, you need to consider the bias-variance-tradeoff. For a causal analysis you would stick to low bias (e.g. using a "best linear unbiased estimator" like ordinary least square regression), while most ML models, such as neural nets or boosting, go for low variance.
Still not clear to me: how does your data look like. If you have more features/variables ($X$) than observations ($i$) your problem is high dimensional. For a high dimensional problem, use the Lasso. If $i$>$X$ and you have say at least 40+ degrees of freedom, you could simply apply OLS regression. If you (can) use OLS and you care for significance and confidence bands, use robust standard errors (hc2, hc3).
As mentioned above, you will likely have high variance using OLS or Lasso. What you can do to work on that in a causal model, is to make linear transformations of $x_i$, e.g. add polynomials, or you can add interactions of two $x$, e.g. $x_3=x_1 x_2$.
Finally, you could use generalized additive models (e.g. with regression splines) to model "complexity" if it originates from non-linearity in $X$. However, in this case you go in the direction of decreasing variance (at the cost of probably introducing unwanted bias).
I guess the nature of your problem is of "high dimension". This is a little special (and I'm no expert here). Have a look at "Elements of Statistical Learning", Chapter 18. The book gives a really good overview of possible options to deal with this problem.