Linear regression helps us find a straight line that best fits data points. It shows how one thing changes when another changes.
To predict house prices based on size.
To understand how study hours affect exam scores.
To see the relationship between temperature and ice cream sales.
To estimate sales based on advertising budget.
To check if weight affects blood pressure.
Syntax
R Programming
lm(formula, data)
formula shows the relationship, like y ~ x means y depends on x.
data is the dataset where variables come from.
Examples
Predict miles per gallon (mpg) using car weight (wt) from the mtcars dataset.
R Programming
lm(mpg ~ wt, data = mtcars)
Predict sepal length using sepal width from the iris dataset.
R Programming
lm(Sepal.Length ~ Sepal.Width, data = iris)
Predict house price using size and number of bedrooms.
R Programming
lm(price ~ size + bedrooms, data = housing_data)
Sample Program
This code fits a linear model to predict miles per gallon (mpg) based on car weight (wt) using the mtcars dataset. Then it shows a summary of the model.
R Programming
data(mtcars)
model <- lm(mpg ~ wt, data = mtcars)
summary(model)
OutputSuccess
Important Notes
The lm() function fits a straight line to data.
Check the summary to see how well the line fits and which variables matter.
Always look at residuals to understand errors in prediction.
Summary
Linear regression finds a line to predict one variable from others.
Use lm() with a formula and data.
Summary shows model details like coefficients and fit quality.
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
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.
Final Answer:
Fits a linear regression model to predict a variable -> Option A
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
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 ~.
Final Answer:
model <- lm(y ~ x, data = mydata) -> Option A
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
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.
Final Answer:
Intercept = 0, Slope = 2 -> Option D
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
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.
Final Answer:
Incorrect formula syntax in lm() -> Option B
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
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.
Final Answer:
Try adding more predictor variables to improve the model -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.