Many sources (here is one of many https://towardsdatascience.com/assumptions-of-linear-regression-algorithm-ed9ea32224e1) state that linear regression assumes there is little to no multicollinearity between the independent variables. I don't understand why this is the case.
Linear regression assumes the model looks like the following: $$ Y = X\beta + \epsilon $$
There is nothing about this model that assumes little to no multicollinearity. Now if you were to approximate this model with least squares, then yes, if there were to be perfect multicollinearity, then your least squares estimators are no longer unique, or if there were strong multicollinearity, but not perfect, then the condition number of $(X^TX$ will be large, meaning that $\hat{\beta}$ is unstable, but even then there is no such assumption about "little or no multicollinearity."
So why do sources claim that linear regression assumes multicollinearity?
In my opinion, the only thing that linear regression assumes is that $Y = X\beta + \epsilon$, i.e., $Y$ varies linearly with $X$ subject to some unobservable $\epsilon$. That's it. No other assumptions. A simple Google search for "linear regression assumptions" will produce numerous links that the assumptions of linear regression as "normal distribution of errors," "little to no multicollinearity," "Homoscedasticity," among others. I just don't understand how these are "assumptions." They're more like implicit requirements for the underlying data in order for linear regression to produce a good fit.
It might be correct to say that in order to evaluate a certain linear regression method (e.g., least squares), we should assume x, y, z, but saying that linear regression assumes x, y, z seems misleading.
Here's another link that stood out to me https://medium.com/@dhiraj8899/top-5-assumptions-for-linear-regression-dd8d10bb0039. In the beginning, it states "For a linear regression algorithm to work properly, it has to pass at least the following five assumptions." I don't know if this is poor wording, or if I'm being anal, or what, but assumptions aren't what's going to make an algorithm work properly. Making an assumption has nothing to do with your algorithm working.