https://blog.tdevin.com/posts/principal-component-analysis/