Beginner's Guide to Computation in Statistical Research: Difference between revisions
No edit summary |
|||
| Line 1: | Line 1: | ||
At some point, you will need to demonstrate that your statistical methods actually work in practice. Whether you are running a toy simulation, analyzing real-world data, or optimizing a complex neural network, you will need to write code. If you are new to computing, the wiki can be overwhelming. '''Read this page from top to bottom.''' It is designed to take you from installing your first language to running massive workflows on department servers. | |||
== Implementation == | == Implementation == | ||
Your first goal is to translate mathematical algorithms into functional code. | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #C41230; padding: 10px 15px; margin-bottom: 10px;"> | |||
'''[[Choosing and Installing a Programming Language]]''' <br> | |||
''5 min read'' • Help deciding between R, Python, or Julia, and how to get them running on your personal machine. | |||
</div> | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #C41230; padding: 10px 15px; margin-bottom: 10px;"> | |||
'''[[Installing and Configuring an IDE]]''' <br> | |||
''10 min read'' • Your IDE (Integrated Development Environment) is your workshop. Learn how to set up VS Code or RStudio. | |||
</div> | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #C41230; padding: 10px 15px; margin-bottom: 10px;"> | |||
'''[[Command Line Basics]]''' <br> | |||
''15 min read'' • Essential survival skills for navigating your computer without a mouse. (Required for Phase 2). | |||
</div> | |||
# | |||
# | |||
== Scale and Efficiency == | ==Scale and Efficiency== | ||
Once you have gotten the hang of implementing statistical algorithms in code, the next major hurdle will be making your workflows '''scalable and efficient'''. For code running on your own machine, you want to make sure you are using every CPU core and every bit of RAM as efficiently as possible. Even then, your personal computer alone can only get you so far. Thankfully, the department also provides several options for remote high-performance computing for even the largest of research workflows. | Once you have gotten the hang of implementing statistical algorithms in code, the next major hurdle will be making your workflows '''scalable and efficient'''. For code running on your own machine, you want to make sure you are using every CPU core and every bit of RAM as efficiently as possible. Even then, your personal computer alone can only get you so far. Thankfully, the department also provides several options for remote high-performance computing for even the largest of research workflows. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 43: | Line 38: | ||
|How to handle datasets that are measured in terabytes | |How to handle datasets that are measured in terabytes | ||
|} | |} | ||
# | # | ||
== Reproducibility and Collaboration == | ==Reproducibility and Collaboration== | ||
While it is important that you are able to obtain results efficiently, it is also equally important for other member of the academic community to arrive at your same results independently. Specifically, others should be able to run your workflow and obtain the exact same output as you did with minimal tinkering and friction. | While it is important that you are able to obtain results efficiently, it is also equally important for other member of the academic community to arrive at your same results independently. Specifically, others should be able to run your workflow and obtain the exact same output as you did with minimal tinkering and friction. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 60: | Line 55: | ||
| | | | ||
|} | |} | ||
# | # | ||
== Software Development == | ==Software Development== | ||
Topics like | Topics like | ||
* [[Developing python packages]] and [[Developing R packages]] | *[[Developing python packages]] and [[Developing R packages]] | ||
Revision as of 07:56, 27 May 2026
At some point, you will need to demonstrate that your statistical methods actually work in practice. Whether you are running a toy simulation, analyzing real-world data, or optimizing a complex neural network, you will need to write code. If you are new to computing, the wiki can be overwhelming. Read this page from top to bottom. It is designed to take you from installing your first language to running massive workflows on department servers.
Implementation
Your first goal is to translate mathematical algorithms into functional code.
Choosing and Installing a Programming Language
5 min read • Help deciding between R, Python, or Julia, and how to get them running on your personal machine.
Installing and Configuring an IDE
10 min read • Your IDE (Integrated Development Environment) is your workshop. Learn how to set up VS Code or RStudio.
Command Line Basics
15 min read • Essential survival skills for navigating your computer without a mouse. (Required for Phase 2).
Scale and Efficiency
Once you have gotten the hang of implementing statistical algorithms in code, the next major hurdle will be making your workflows scalable and efficient. For code running on your own machine, you want to make sure you are using every CPU core and every bit of RAM as efficiently as possible. Even then, your personal computer alone can only get you so far. Thankfully, the department also provides several options for remote high-performance computing for even the largest of research workflows.
| Title | Description | Reading Time? |
|---|---|---|
| Parallelization: Making the most of your Machine | How to run many experiments at once | |
| Building Workflows on Remote Servers | Using the department servers and other computing clusters | |
| Big Data Management | How to handle datasets that are measured in terabytes |
Reproducibility and Collaboration
While it is important that you are able to obtain results efficiently, it is also equally important for other member of the academic community to arrive at your same results independently. Specifically, others should be able to run your workflow and obtain the exact same output as you did with minimal tinkering and friction.
| Title | Description | Reading Time? |
|---|---|---|
| Version Control | Keeping track of code/experiment history | |
| Dependency Management | Making sure anyone else in the world can run your workflow |
Software Development
Topics like