https://tornado.pythonprogramminghelp.com/3-eye-catching-that-will-maximum-likelihood-estimation/