Covariance estimation and portfolio optimization using random matrix theory and shrinkage techniques