Which technique is commonly used to reduce the number of variables in a dataset while retaining most of its variance?