Programming for Business Analytics (Graduate)

A graduate course on empirical analysis with R: from data wrangling and visualization to causal reasoning, regression, and uncertainty quantification, culminating in a research-grade project that prepares students for Experiments and Causal Inference.
ISS5066 Fall 2026 TSMC Bldg. R421 Thursday, 14:20–17:20

Course Overview

This course teaches you to turn messy business data into defensible answers with R. You will learn to wrangle and visualize data, evaluate claims about causality, fit and interpret linear regressions, and quantify how much you should trust an estimate through sampling distributions, the bootstrap, confidence intervals, and hypothesis tests. We practice these methods with real datasets and simulated examples, and the semester culminates in a team project published as a portfolio-ready article with a public GitHub repository.

Agentic AI now writes much of the code. The skill that matters has shifted from writing code to directing and verifying it: without the underlying building blocks, you cannot tell when an analysis is wrong, and you end up steered by the tool rather than steering it. The course therefore builds programming and visualization foundations first, then turns to statistical inference, and every in-class exercise ends with a verification step.

This is the graduate course (ISS5066, Thursdays). The emphasis goes beyond applying the methods to evaluating and producing rigorous empirical research: the final project must use self-collected or non-trivial data, address identification and threats to inference, and reach greater analytical depth. It also builds the foundation for Experiments and Causal Inference (ISS5096). Students may not receive credit for both ISS4066 and ISS5066.

Preparation and Participation

Completing the assigned reading before class is part of your responsibility every week, as set out in the syllabus. Follow the Required reading listed for each week in the Schedule tab, work through the examples, and run any accompanying R code. Class discussions and exercises build on this preparation, so come ready to use the ideas and discuss questions that arise from the reading.

We will use class time to work through analysis code, interpret results, compare approaches, and adapt examples to new questions. We will explain and revisit R fundamentals, including objects, operators, data structures, and functions, as we use them in visualization, data wrangling, and later topics. Questions about these foundations are welcome throughout the course.

Required readings are freely accessible online. Further reading is optional and provides additional explanation and depth; purchasing those books is not required. The R Basics companion handout provides fuller explanations and worked examples to consult as needed throughout the semester.

Learning Objectives

  • Data wrangling and visualization: filter, summarize, group, join, and reshape data with the tidyverse, and build clear exploratory graphics with ggplot2.
  • Causality and regression: distinguish randomized experiments from observational studies, and use simple and multiple linear regression to reach defensible conclusions.
  • Statistical uncertainty: reason with sampling distributions, the bootstrap, confidence intervals, and hypothesis tests, including permutation tests and power.
  • Professional workflow: R, RStudio, Quarto, git, and GitHub, plus the habit of checking what AI-assisted code actually did.

Who Should Take This Course

No prerequisites. The course is designed for students from any background who want a working foundation in data analysis for business.

Teaching Team

Instructor

Jaewon Yoo

Jaewon Yoo · Assistant Professor

Institute of Service Science, College of Technology Management
National Tsing Hua University

Teaching Assistant

Mave Kimara Alexander

Mave Kimara Alexander

M.S. Student, Taipei School of Economics and Political Science (TSE) · NTHU IMBA alumna

alexander.mave [at] gmail.com

Course Platforms

Purpose Platform
Syllabus, weekly schedule, policies, lecture slides, R scripts This website
Announcements, in-class exercise and assignment submissions, grades, discussion board eeclass
Office hours and project consultations Google Calendar booking
Team project repository and code; see the Git and GitHub setup guide GitHub
Private matters Email

Course Details

  • Sep 7 – Dec 26, 2026
  • Thursday
  • 14:20–17:20
  • TSMC Bldg. R421

Communication

Lecture slides and R scripts are posted on this page under Materials as the course progresses. In-class exercises, assignments, grades, and announcements are on eeclass (NTHU's learning platform; enrolled students are added automatically). For private matters, email the instructor.

What's New

This page is updated during the semester. Recently changed items are listed below.

  • Oct 5, 2026: A guide to finding data for your team project is posted, and it is also linked under Evaluation. It lists sources of real data by topic and what to check before Milestone 2 (data and proposal), due Sun Oct 25.
  • Oct 5, 2026: Readings for Week 5 (Causality II: DAGs and Covariate Selection) are in the Weekly Schedule: chapters 6 and 8 of Huntington-Klein's The Effect, free to read online. Chapter 7 of the same book goes with your Week 6 team meeting.
  • Oct 1, 2026: A step-by-step guide to setting up Git and GitHub for your team project is posted, and it is also linked under Evaluation. Milestone 1, your team's GitHub repository, is due Sun Oct 11.
  • Oct 1, 2026: Week 4 slides and R script are posted under Materials. This week's data are in the course data package pbadata (version 0.2.0), which installs from this site rather than from CRAN. To install or update it, restart R (Session > Restart R) and run install.packages("pbadata", type = "source", repos = "https://j1yoo.github.io/assets/courses/pba"). Then library(pbadata) loads it, and packageVersion("pbadata") should show 0.2.0. The datasets are ai_tutoring, linepay, and news; type a dataset name such as ai_tutoring to see the data.
  • Sep 14, 2026: The existing reading list has been clarified across the weekly schedule: Required reading identifies preparation for each class, and Further reading provides optional references. Direct links and section ranges make the free readings easier to find. An R Basics companion handout adds explanations and worked examples to the reference slides under Materials.
  • Sep 13, 2026: Lecture slides and R scripts are now posted on this page under Materials, starting with Week 2 (Data Visualization) and the R Basics reference slides that accompany the Week 1 readings. Week 3 is Data Wrangling, Week 4 Causality, and Week 5 Causality II: DAGs and covariate selection.
  • Sep 6, 2026: Fall 2026 page published. In Week 6 (Oct 15) there is no class meeting; instead, teams meet the instructor by appointment to discuss research questions.
  • No take-home quizzes this year. The 5% "Quizzes & In-Class Exercises" component consists of six in-class exercises, submitted on eeclass the same day; your best five count (1% each).
  • Team presentations with Q&A in the final week.
  • ISS5066, Thursdays. Undergraduates should enroll in ISS4066 (Undergraduate).

Topics Covered

Data Wrangling & Viz

Transforming messy data into tidy formats and communicating insights with ggplot2.

Causality & Regression

Evaluating causal claims and using simple and multiple linear regression.

Statistical Uncertainty

Sampling distributions, the bootstrap, confidence intervals, and hypothesis tests.

Professional Workflow

R, RStudio, Quarto, git, and GitHub, plus directing and verifying AI-assisted analysis.

Weekly Schedule (Graduate, Thursdays)

Assignments are due before class starts (14:20); Sunday deadlines are 23:59. Week 5 (Oct 8) has no class meeting; Causality II is in Week 6 (Oct 15). Teams meet the instructor by appointment, ideally by Wednesday, Oct 21. The schedule is tentative; eeclass announcements take precedence. Use the resource links under each week to open slides and handouts or download R scripts.

Before every class: complete that week’s Required reading and work through the examples, including any R code. This preparation is expected in the syllabus and supports your participation in class discussions and exercises. Further reading is optional. All required readings are freely accessible online.

Part I: Working with Data in R

Week 1 (Sep 10): Course Introduction and R Programming Basics Slides R basics (reference) R basics (handout)

  • Course aims, organization, and expectations
  • Working in R and RStudio: objects, functions, and packages
  • Reproducible reports with Quarto
  • Required reading: MD §§1.1–1.4 (R/RStudio, objects, functions, packages, and data frames). Install R and RStudio before class.
  • Further reading (optional): AAG §§4.3, 5, 6 (R basics); VT Ch. 1–2 (working with and communicating data).

R Basics reference materials: The reference slides and companion handout under Materials cover operators, data types, data structures, and writing functions, with explanations and examples to consult throughout the semester.

Self-introduction on the eeclass discussion board by Mon Sep 14
Swirl tutorials 1–3 by Week 2

Week 2 (Sep 17): Data Visualization Slides R script

  • Exploring college education and poverty in Midwest counties
  • Building plots layer by layer with ggplot2: geoms, labels, scales, and mapping versus setting aesthetics
  • Comparing distributions with histograms, density plots, boxplots, and facets
  • Plotting grouped data and trends over time with Gapminder
  • Required reading: MD §§1.2–1.4 (review); MD §§2.1–2.7 (grammar of graphics, scatterplots, line graphs, histograms, facets, and boxplots).
  • Further reading (optional): AAG §7.2 (ggplot2); AAG Ch. 3–5 (additional R background); VT Ch. 3–4 (tools and patterns over time).
In-class exercise E1 (gapminder)
Due: Group formation survey, Sun Sep 20

Week 3 (Sep 24): Data Wrangling with dplyr Slides R script

  • Operating on rows, columns, and groups
  • Bar plots
  • Required reading: MD §§3.1–3.6, MD §3.8 (pipes, filtering, summaries, groups, new variables, sorting, and selecting columns); MD §2.8 (bar plots).
  • Further reading (optional): AAG §§12.1–12.9 (dplyr); VT Ch. 7 (visual comparisons).
In-class exercise E2 (local news)
Assignment 1 released: you have two weeks (due Thu Oct 8, before class)

Part II: Causality, Prediction, and Regression

Week 4 (Oct 1): Causality Slides R script

  • What is a causal effect?
  • Randomized experiments; calculating effects
  • Observational studies
  • Required reading: IMS §§2.2–2.3 (experiments and observational studies); QSS §§2.3–2.5 (potential outcomes, randomized experiments, and observational designs, pp. 46–63 of the publisher’s free Chapter 2 PDF, which are pages 15–32 of the file; read it for the concepts, since its R code is base R).
  • Further reading (optional): QSS §2.1 (the résumé experiment that opens the same chapter).
In-class exercise E3 (Line Pay adoption)
GitHub setup guide posted

Week 5 (Oct 8): No class meeting (Causality II moved to Oct 15)

Assignment 2 released
Guide to finding data posted
Due: Assignment 1, Thu Oct 8 (before class)
Due: Milestone 1: GitHub repository, Sun Oct 11

Week 6 (Oct 15): Causality II: DAGs and Covariate Selection Slides R script

  • Confounding, selection, and the backdoor criterion
  • What to control for, and what not to, in your project
  • With the causal-inference concepts in hand, discuss your research question and data before the proposal is due
  • Required reading: Huntington-Klein, The Effect, Ch. 6 (causal diagrams) and Ch. 8 (causal paths and closing back doors); then Ch. 7 (drawing causal diagrams), as your team draws its DAG before the meeting. All three chapters are free to read on the author’s site.
  • Further reading (optional): Cunningham, Causal Inference: The Mixtape, Ch. 3 (the same ideas with economics examples; skip the regression code for now); Cinelli, Forney, and Pearl (2022) (the source of the good-control and bad-control table in the slides); DAGitty tutorials (interactive practice with d-separation and covariate roles).
book a slot via Google Calendar, ideally by Wed Oct 21; meetings at TSMC Bldg. R828B

Week 7 (Oct 22): Relationships, Importing, and Tidying Data Slides R script

  • Z-scores and correlation
  • Writing reusable functions for standardization
  • Pivoting longer; joining datasets
  • Required reading: MD §§4.1–4.2 (importing and tidy data); MD §§3.7.1–3.7.3 (joins); MD §5.1.1 (correlation); IMS §13.2.2 (Z-scores).
  • Further reading (optional): AAG §§6.1, 15.2–15.3, 18.2; QSS §§3.5–3.6.
Due: Milestone 2: data and proposal, Sun Oct 25

Week 8 (Oct 29): Prediction and Iteration

  • Predicting election outcomes
  • Loops; evaluating predictions; time-series plots
  • Required reading: Course notes and R examples on election prediction, loops, and storing and evaluating predictions (to be posted before class); review MD §2.4 (line graphs).
  • Further reading (optional): QSS §4.1; AAG Ch. 10 (loops); VT Ch. 4 (patterns over time).
In-class exercise E4 (2020 election polls)

Week 9 (Nov 5): Regression and Model Fit

  • Modeling with a line; linear regression in R
  • Model fit
  • Required reading: MD §5.1 and MD §5.3.2 (linear regression, fitted values, residuals, and least squares); IMS §7.2.5 (R-squared).
  • Further reading (optional): QSS §§4.2.1–4.2.4, 4.2.6; IMS §§7.1–7.3 for additional explanation and practice.
Assignment 3 and Problem Set 1 (IMS Ch. 7) released
Course withdrawal period Nov 2–20
Due: Assignment 2

Week 10 (Nov 12): More on Regression

  • Multiple regression
  • Categorical predictors
  • Required reading: MD §5.2 (categorical predictors); MD §§6.1–6.2 (multiple regression).
  • Further reading (optional): QSS §§4.2.6–4.3.2; MD §6.3 (model comparison and related topics).
In-class exercise E5 (NYC condominiums)
Problem Set 2 (IMS Ch. 8) released
Due: Problem Set 1, Sun Nov 15
Due: Milestone 3: first visualization, Sun Nov 15

Part III: Statistical Uncertainty

Week 11 (Nov 19): Sampling and Sampling Distributions

  • Sampling framework
  • Random variables; the normal distribution and the central limit theorem
  • Required reading: MD §§7.1–7.3 and MD §7.5 (sampling, sampling distributions, and the central limit theorem).
  • Further reading (optional): IMS §§13.1–13.3 (normal models and standard errors).
Due: Assignment 3
Due: Problem Set 2, Sun Nov 22

Week 12 (Nov 26): The Bootstrap and Confidence Intervals

  • Resampling; bootstrap CIs for means and ATEs
  • Computing and interpreting CIs
  • Required reading: MD §§8.1–8.5 (resampling and confidence intervals); IMS §20.2 (bootstrap intervals for a difference in means).
  • Further reading (optional): AAG §21.4; MD §8.6 (a worked comparison of two groups).
Assignment 4 released

Week 13 (Dec 3): Hypothesis Testing

  • Hypothesis tests with infer; two-sample and permutation tests
  • Issues with hypothesis testing; power
  • Required reading: MD §§9.1–9.4 (randomization tests and interpretation); IMS §20.1 (two-means randomization test); IMS §14.4 (power).
  • Further reading (optional): MD §§9.5–9.6 (worked example and issues with testing).
In-class exercise E6
Problem Set 3 (IMS Ch. 11–12) released
Team consultations Nov 30–Dec 4: book a slot via Google Calendar
Due: Milestone 4: first analysis, Sun Dec 6

Week 14 (Dec 10): Models of Uncertainty

  • Normal approximation and standard errors for confidence intervals and hypothesis tests
  • Comparing groups: confidence intervals and two-sample tests for experiments
  • Required reading: IMS §§13.1–13.3 and IMS §13.6 (normal models, standard errors, and confidence intervals); IMS §20.4 (intervals for a difference in means).
  • Further reading (optional): IMS §§13.4–13.5 (additional examples).
Assignment 5 released
Due: Assignment 4
Due: Problem Set 3, Sun Dec 13

Week 15 (Dec 17): Inference for Regression

  • Uncertainty for regression coefficients
  • Presenting OLS regressions
  • Required reading: MD §§10.1–10.3 (regression tables, uncertainty, and conditions for inference); IMS §25.1 (multiple-regression output).
  • Further reading (optional): QSS §7.3; MD §10.4 (simulation-based inference).

Part IV: Presentations

Week 16 (Dec 24): Team Presentations and Q&A

  • Each team presents for 15 minutes, followed by Q&A; exact slots depend on the number of teams
  • Peer evaluation
  • Preparation: Review the project instructions and evaluation rubric on eeclass, and prepare your presentation and responses to questions.
Due: Final report, Sun Dec 20
Due: Assignment 5, Sun Dec 27

Lecture Slides & Handouts


Reading Materials

Completing the assigned reading before each class is part of your responsibility throughout the semester, as set out in the syllabus. The weekly schedule now distinguishes Required reading (before class) from Further reading (optional). Work through the required sections and their examples, running any accompanying R code, and arrive ready to participate in discussions and exercises. Bring questions from your preparation so we can work through them in class.

We learn R through practical data-analysis questions. Class time will focus on working through code, interpreting results, and making changes to answer new questions. Programming foundations such as objects, operators, data structures, and functions will be explained and revisited as we use them in visualization, data wrangling, and later analyses. Questions about these foundations are welcome throughout the course.

Required reading: freely accessible resources

Further reading: optional references

These books provide additional explanations and examples. Purchasing them is not required.

Software

Grading

Component Weight
Final project (report, presentation Q&A, milestones, peer evaluation) 50%
Assignments (5) 15%
Problem sets (3) 10%
In-class exercises (best 5 of 6) 5%
Attitude / participation 10%
Attendance 10%

Within the final project: written report, presentation with Q&A, four milestones, and peer evaluation. A rubric is provided on eeclass.

Final Project

A team research project held to a research-grade standard: self-collected or non-trivial data, an explicit identification argument, and analysis carried to publishable-style depth. The deliverable is a portfolio-ready article or webpage with a linked GitHub repository containing all code. Team meetings by appointment (ideally by Wednesday, Oct 21) give feedback on your research question and data before the proposal is due.

Sample Evaluation

To give you a clear sense of expectations and grading criteria, here is a sample final report with the instructor’s evaluation from last year’s graduate section (names and student IDs removed). It is the kind of project this section asks for: a real identification strategy, not only a regression.

  • Sample Final Report (PDF): “Policy Strictness and Heterogeneous Mobility Responses”, a natural experiment comparing Denmark’s mandatory lockdown with Sweden’s voluntary approach using Google mobility data and a difference-in-differences design with date fixed effects and heterogeneity by employment and poverty
  • Sample Instructor Evaluation (PDF): rubric scores by section, comments, and suggestions (90/100)

Project Milestones

Milestone Due
GitHub repository Sun Oct 11
Data and proposal Sun Oct 25
First visualization Sun Nov 15
First analysis Sun Dec 6
Final report Sun Dec 20
Presentation and Q&A Thu Dec 24

Git and GitHub Setup

Your team project lives in a public GitHub repository. Before Milestone 1 (due Sun Oct 11), each team member needs a GitHub account, Git on their laptop, and RStudio connected to GitHub. The step-by-step guide takes about 30 minutes.

Finding Data

Milestone 2 (data and proposal) is due Sun Oct 25. The guide to finding data lists sources of real data by topic, a checklist for judging a dataset, and what the proposal covers.

Assignments

Five assignments, each a short Quarto report on a provided dataset applying the method just covered (data wrangling and visualization, causality, regression and prediction, the bootstrap, hypothesis testing). Late submissions lose 1 percentage point of the assignment’s weight per day.

Problem Sets

Three problem sets drawn from Introduction to Modern Statistics (Ch. 7; Ch. 8; Ch. 11–12), submitted as a single PDF.

In-Class Exercises

Six short exercises done during class without generative AI and uploaded to eeclass the same day; your best five count (1% each). Each ends with a verification step: check what your code actually did before you trust the output.

Course Policies

AI Use Policy

Students are permitted to use AI tools, including large language models and agentic coding assistants (e.g., ChatGPT, Claude, Gemini), for assignments and the final project. You are fully responsible for everything you submit. The final project is designed so that a high-quality result requires genuine understanding; AI accelerates competent work but does not substitute for it. However, it is imperative that the final submission predominantly reflects the student’s understanding and personal input. Students who use AI tools must adhere to the following guidelines:

Attempting to cheat the system by relying heavily on AI-generated content without substantial personal input is ultimately the student’s loss, as it undermines the learning process.

In line with NTHU’s Implementation Guidelines on AI Ethics Statements and Learning Assessment (Sep 2026): if AI use is identified but not disclosed as required, the work may be re-evaluated or assigned no credit. In-class exercises are completed without generative AI. When the instructor uses AI to produce teaching materials or learning resources, this is indicated in the materials. By enrolling in this course, students are considered to have agreed to this statement.

Academic Honesty

All submitted work must be your own. A first violation results in a zero for that assignment; subsequent violations result in a failing grade. Cheating, plagiarism, self-plagiarism, and misrepresentation of authorship all count. Submissions may be checked with Turnitin.

Attendance and Participation

Attend every class with your laptop. Attendance is recorded from Week 2 and counts for 10%; each missed class costs about 1% of the final grade. Notify the instructor or a TA before class if you must miss it. Participation is assessed through in-class discussion and the eeclass discussion board.