24 ms·
I've read this book and taken this course twice, and it is easily one of the best learning experiences I've ever had. Statistics is a fascinating subject and Ri
by jdreaver 5y ago
I've read this book and taken this course twice, and it is easily one of the best learning experiences I've ever had. Statistics is a fascinating subject and Richard helps bring it alive. I had studied lots of classical statistics texts, but didn't quite "get" Bayesian statistics until I took Richard's course.
Even if you aren't a data scientist or a statistician (I'm an infrastructure/software engineer, but I've dabbled as the "data person" in different startups), learning basic statistics will open your eyes to how easy it is to misinterpret data. My favorite part of this course, besides helping me understand Bayesian statistics, is the few chapters on causal relationships. I use that knowledge quite often at work and in my day-to-day life when reading the news; instead of crying "correlation is not causation!", you are armed with a more nuanced understanding of confounding variables, post-treatment bias, collider bias, etc.
Lastly, don't be turned off by the use of R in this book. R is the programming language of statistics, and is quite easy to learn if you are already a software engineer and know a scripting language. It really is a powerful domain specific language for statistics, if not for the language then for all of the statisticians that have contributed to it.
- swayson 5y agoJulia, R (tidyverse), Python code examples available here: https://github.com/StatisticalRethinkingJulia https://github.com/StatisticalRethinkingJulia https://github.com/pymc-devs/resources/tree/master/Rethinking_2 https://github.com/pymc-devs/resources/tree/master/Rethinkin... https://bookdown.org/content/4857/ https://bookdown.org/content/4857/
- jonnycomputer 5y agoI frequently prefer R to python/pandas/numpy for data analysis--even if most of my other programming is in python.
- elcapitan 5y agoWhat's the advantage, if you already know Python? (genuine interest)
- Bootvis 5y agoFor me, I use R data.table a lot and I see as the main advantages are performance and the terse syntax. The terse syntax does come with a steep learning curve though.
- VeninVidiaVicii 5y agoI totally agree. I often find myself wanting data.table as a standalone database platform or ORM-type interface for non-statistical programming too.
- boppo1 5y agoWhat is terse syntax? I can parse lisp and C, how would this be different and challenging?
- bckygldstn 5y agoThe syntax isn't self-describing and uses lots of abbreviations; it relies on some R magic that I found confusing when learning (unquoted column names and special builtin variables); and data.table is just a different approach to SQL and other dataframe libraries. Here's an example from the docs flights[carrier == "AA", lapply(.SD, mean), by = .(origin, dest, month), .SDcols = c("arr_delay", "dep_delay")] that's clearly less clear than SQL SELECT origin, dest, month, MEAN(arr_delay), MEAN(dep_delay) FROM flights WHERE carrier == "AA" GROUP BY arr_delay, dep_delay or pandas flights[filghts.carrier == 'AA'].groupby(['arr_delay', 'dep_delay']).mean() But once you get used to it data.table makes a lot of sense: every operation can be broken down to filtering/selecting, aggregating/transforming, and grouping/windowing. Taking the first two rows per group is a mess in SQL or pandas, but is super simple in data.table flights[, head(.SD, 2), by = month] That data.table has significantly better performance than any other dataframe library in any language is a nice bonus!
- kgwgk 5y agoYou mean something like SELECT origin, dest, month, AVG(arr_delay), AVG(dep_delay) FROM flights WHERE carrier == 'AA' GROUP BY origin, dest, month and flights[flights.carrier == 'AA'].groupby(['origin', 'dest', 'month'])[['arr_delay', 'dep_delay']].mean()
- agucova 5y agoEven if you don't like R, your can do the entire course with Julia/Turing, Julia/Stan or Python, the course github's page has a list of “code translations” for all the examples.
- fault1 5y agoThere is also other translations, for example, in pytorch/pyro: https://fehiepsi.github.io/rethinking-pyro/ https://fehiepsi.github.io/rethinking-pyro/ I would say statistical rethinking is a great way to compare and contrast different ppl impls and languages, I've been using it with Turing, which is pretty great.