M1399.000200 Advanced Statistical Computing @ SNU 2023
This is the course website for M1399.000200: “Advanced Statistical Computing “ at Seoul National University in Fall 2023. Assignments, lecture notes, and open source code will all be available on this website.
Announcements
- 2023-10-21: Candidate papers for Final Project is announced.
- 2023-10-19: Homework 2 is announced. Check out Github Classroom.
- 2023-09-19: Homework 1 is announced. Check out Github Classroom.
Instructor
Joong-Ho (Johann) Won
Email: wonj AT stats DOT snu DOT ac DOT kr
Class Time: T/Th 11:00 - 12:15 @ 25-210
Office Hours: By appointment.
Textbook: There is no required textbook.
References:
- James Gentle, Computational Statistics, 2nd Edition, Springer (2009).
- Gene Golub and Charles Van Loan, Matrix Computation, 4th Edition, Johns Hopkins Press (2012).
- Kenneth Lange, Numerical Analysis for Statisticians, 2nd Edition, Springer (2010).
- Stephen Boyd and Lieven Vandenberghe, Convex Optimization, Cambridge University Press (2004).
- Dimitri P. Bertsekas, Convex Optimization Theory Athena Scientific (2009).
Course Objectives
By the end of this course, you will be able to acquire
- basic programming skills using the Julia programming language;
- basic knowledge of computer arithmetic;
- fundamental knowledge of numerical algorithms for statistical computing;
- hands-on knowledge of various optimization problems in statistical computing;
- basic theoretical understanding of mathematical optimization;
- wisdom of how not to reinvent the wheel.
Course Overview
Assessment
The course will be graded based on the following components:
- Attendance (10%): Mandatory.
- Assignments (65%): You will be assigned 4 homework assignments to be completed using Julia regularly throughout class.
- Final project (25%): The project will be a reproduction of the code and results in a recent computational statistics research paper chosen by yourself in Julia . The ideas for projects will be provided towards the midpoint of the semester.
Schedule
The following schedule is tentative, and is subject to change over the course.
Week | Topic | Assignment | Due Date |
---|---|---|---|
1 (9/5, 9/7) | Introduction [slides], Julia Intro [notebook] [slides] | Julia + Jupyter + Quarto [notebook] [html], Plotting [notebook] [html] | |
2 (9/12, 9/14) | [Computer Arithmetic] [notebook] [slides] | Homework 1 | 2023-10-04 |
3 (9/19, 9/21) | [Computer Arithmetic] [notebook] [slides], [Algorithm] [notebook] [slides] | ||
4 (9/26, |
Numerical Linear Algebra: [intro] [notebook] [slides], [triangular systems] [notebook] [slides] | Homework 2 | 2023-10-30 |
5 ( |
[LU decomposition] [notebook] [slides] [example] | ||
6 (10/10, 10/12) | [Cholesky] [notebook] [slides] | Final Project Proposal | 2023-11-02 |
7 (10/17, 10/19) | [QR decomposition] [notebook] [slides] | ||
8 (10/24, 10/26) | [Linear regression] [notebook] [slides], [Iterative methods] [notebook] [slides], [Eigenvalue and singular value decompositions] [notebook] [slides] | Longley Data | |
9 (10/31, 11/2) | Introduction to mathematical optimization, [Optimization in Julia] [notebook] [slides] | Homework 3 | |
10 (11/7, 11/9) | [Linear programming] [notebook] [slides ] | ||
11 (11/14, 11/16) | [Quadratic programming] [notebook] [slides], [Second-order cone programming] [notebook] [slides], [Semidefinite programming] [notebook] [slides] | ||
12 (11/21, 11/23) | [Geometric programming] [notebook] [slides], [KKT conditions] [slides] | [Homework 3] | 2023-12-12 |
13 (11/28, 11/30) | [Newton’s method I] , [MM algorithms], [First-order methods] | ||
14 (12/5, 12/7) | [Newton’s method II] | ||
15 (12/12, 12/14) | Final Projects |