Bird
Raised Fist0
R Programmingprogramming~30 mins

Linear regression (lm) in R Programming - Mini Project: Build & Apply

Choose your learning style10 modes available
Simple Linear Regression with lm in R
📖 Scenario: You are a data analyst at a small company. You want to understand how advertising spending affects sales. You have data on advertising budgets and sales for several months.
🎯 Goal: Build a simple linear regression model using lm in R to predict sales based on advertising spending.
📋 What You'll Learn
Create a data frame with advertising and sales data
Create a variable for the formula to use in the model
Use the lm function to build the linear regression model
Print the summary of the model to see the results
💡 Why This Matters
🌍 Real World
Linear regression is used in business to understand relationships between variables, like advertising spend and sales.
💼 Career
Data analysts and data scientists use linear regression to build predictive models and make data-driven decisions.
Progress0 / 4 steps
1
Create the data frame
Create a data frame called ad_data with two columns: advertising and sales. Use these exact values: advertising = c(10, 20, 30, 40, 50), sales = c(15, 25, 35, 45, 55).
R Programming
Hint

Use data.frame() to create the data frame with the exact column names and values.

2
Create the formula variable
Create a variable called model_formula that stores the formula sales ~ advertising.
R Programming
Hint

Use the tilde ~ to create the formula for the model.

3
Build the linear regression model
Use the lm function to create a linear model called model using model_formula and the data frame ad_data.
R Programming
Hint

Use lm(formula, data = ...) to build the model.

4
Print the model summary
Print the summary of the linear model model using the summary() function.
R Programming
Hint

Use print(summary(model)) to see the details of the regression.

Practice

(1/5)
1. What does the lm() function in R do?
easy
A. Fits a linear regression model to predict a variable
B. Creates a plot of data points
C. Calculates the mean of a numeric vector
D. Performs a t-test between two groups

Solution

  1. Step 1: Understand the purpose of lm() and compare options

    The lm() function is used to fit linear models, which means it finds a line that best predicts one variable from others. Options A, B, and D describe other functions or analyses, not linear regression modeling.
  2. Final Answer:

    Fits a linear regression model to predict a variable -> Option A
  3. Quick Check:

    lm() fits linear regression [OK]
Hint: Remember: lm() stands for linear model fitting [OK]
Common Mistakes:
  • Confusing lm() with plotting functions
  • Thinking lm() calculates summary statistics only
  • Mixing lm() with hypothesis testing functions
2. Which of the following is the correct syntax to fit a linear model predicting y from x in R?
easy
A. model <- lm(y ~ x, data = mydata)
B. model <- lm(x ~ y, data = mydata)
C. model <- lm(y, x, data = mydata)
D. model <- lm(data = mydata, y = x)

Solution

  1. Step 1: Recall the formula syntax for lm() and check options

    The correct syntax uses lm(response ~ predictor, data = dataset). Here, y is the response and x the predictor. model <- lm(y ~ x, data = mydata) matches. model <- lm(x ~ y, data = mydata) reverses response and predictor. model <- lm(y, x, data = mydata) uses wrong argument order. model <- lm(data = mydata, y = x) uses = instead of ~.
  2. Final Answer:

    model <- lm(y ~ x, data = mydata) -> Option A
  3. Quick Check:

    lm(response ~ predictor, data) [OK]
Hint: Formula is always response ~ predictor in lm() [OK]
Common Mistakes:
  • Swapping response and predictor variables
  • Passing variables without formula syntax
  • Misordering arguments in lm()
3. What will be the output of this R code?
data <- data.frame(x = 1:5, y = c(2, 4, 6, 8, 10))
model <- lm(y ~ x, data = data)
coef(model)
medium
A. Intercept = 0, Slope = 1
B. Intercept = 2, Slope = 1
C. Intercept = 1, Slope = 2
D. Intercept = 0, Slope = 2

Solution

  1. Step 1: Analyze data and model fit

    The data has x = 1 to 5 and y = 2,4,6,8,10 which is exactly y = 2*x. Since y = 2*x perfectly, intercept is 0 and slope is 2.
  2. Final Answer:

    Intercept = 0, Slope = 2 -> Option D
  3. Quick Check:

    y = 2*x means intercept 0, slope 2 [OK]
Hint: Check if y is exactly a multiple of x for slope [OK]
Common Mistakes:
  • Assuming intercept is 1 by default
  • Mixing up slope and intercept values
  • Not checking data pattern before fitting
4. Identify the error in this R code for linear regression:
data <- data.frame(x = 1:4, y = c(3, 6, 9, 12))
model <- lm(y = x, data = data)
summary(model)
medium
A. Missing library call for lm()
B. Incorrect formula syntax in lm()
C. summary() cannot be used on lm objects
D. Data frame creation is wrong

Solution

  1. Step 1: Check lm() call and verify other code

    The lm() function requires a formula like response ~ predictor. Here, y = x is incorrect syntax. Data frame creation is correct. summary() works on lm objects. lm() is base R, no library needed.
  2. Final Answer:

    Incorrect formula syntax in lm() -> Option B
  3. Quick Check:

    lm() needs formula, not y = x [OK]
Hint: lm() needs formula like y ~ x, not y = x [OK]
Common Mistakes:
  • Using = instead of ~ in lm() formula
  • Assuming summary() is not for lm objects
  • Thinking lm() requires extra libraries
5. You have a dataset with variables height and weight. You want to predict weight from height using linear regression. After fitting model <- lm(weight ~ height, data = df), the summary shows a very low R-squared value. What is the best next step?
hard
A. Remove the intercept term to force a better fit
B. Use the model as is because R-squared is not important
C. Try adding more predictor variables to improve the model
D. Switch to a t-test instead of regression

Solution

  1. Step 1: Interpret low R-squared and next steps

    A low R-squared means the model explains little of the variation in weight using height alone. Adding more predictors can help explain more variation. Removing intercept or ignoring R-squared is not good practice. A t-test is unrelated.
  2. Final Answer:

    Try adding more predictor variables to improve the model -> Option C
  3. Quick Check:

    Low R-squared? Add predictors [OK]
Hint: Low R-squared? Add more predictors to improve [OK]
Common Mistakes:
  • Removing intercept to fix low R-squared
  • Ignoring model fit quality
  • Confusing regression with hypothesis testing
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard