This course is about regression, a powerful and widely used data analysis technique which is used to understand how different random quantities relate to one another. Students will learn how to use regression to analyze a variety of complex real-world problems, with the aim of gaining insights from the data and also to potentially predict future events. Focus is placed on the understanding of fundamental concepts and its implementation in a programming language (R, or alternative). Real-world examples are used throughout the course to illustrate the application of techniques. Topics covered include: (i) short review of simple linear regression; (ii) multiple regression and model checking and diagnostics; (iii) generalized linear models (e.g. logistic regression); (iv) time series models and forecasting.