Love the analysis! Usually the closed number is higher because there are still many edge cases where PRs get closed outside of bad code. E.g bug already fixed in master, follow up PR, PRs merging into a larger one and so on
I think basic NLP on the PR decision may be able to automatically differentiate them