📖 Scenario: You are a data analyst at a small company. You have collected data on advertising spending and sales. You want to understand how advertising spending affects sales using regression analysis.
🎯 Goal: Build a simple linear regression model in MATLAB to predict sales based on advertising spending.
📋 What You'll Learn
Create vectors for advertising spending and sales data
Create a variable for the number of data points
Use MATLAB's polyfit function to perform linear regression
Calculate predicted sales using the regression coefficients
Display the regression coefficients and predicted sales
💡 Why This Matters
🌍 Real World
Regression analysis helps businesses understand relationships between variables, like how advertising affects sales.
💼 Career
Data analysts and scientists use regression to make predictions and support decision-making.
Progress0 / 4 steps
1
Create data vectors for advertising spending and sales
Create two vectors called advertising and sales with these exact values: advertising = [5, 10, 15, 20, 25] and sales = [7, 12, 17, 22, 27].
MATLAB
Hint
Use square brackets to create vectors in MATLAB.
2
Create a variable for the number of data points
Create a variable called n that stores the number of elements in the advertising vector using the length function.
MATLAB
Hint
Use length(advertising) to get the number of elements.
3
Perform linear regression using polyfit
Use the polyfit function to find the regression coefficients. Create a variable called coefficients by fitting a first-degree polynomial to advertising and sales.
MATLAB
Hint
Use polyfit(x, y, 1) for linear regression.
4
Calculate predicted sales and display results
Calculate predicted sales using polyval with coefficients and advertising. Store the result in predicted_sales. Then, display coefficients and predicted_sales using disp.
MATLAB
Hint
Use polyval(coefficients, advertising) to get predicted values.
Use disp to show results.
Practice
(1/5)
1.
What is the main purpose of regression analysis in MATLAB?
easy
A. To find relationships between variables
B. To sort data alphabetically
C. To create pie charts
D. To calculate matrix inverses
Solution
Step 1: Understand regression analysis goal
Regression analysis is used to find how one variable depends on others.
Step 2: Match purpose with options
Only To find relationships between variables describes finding relationships between variables, which is the goal of regression.
Final Answer:
To find relationships between variables -> Option A
Quick Check:
Regression = find relationships [OK]
Hint: Regression = relationship finding between numbers [OK]
Common Mistakes:
Confusing regression with sorting or plotting
Thinking regression calculates matrix inverses
2.
Which MATLAB command correctly fits a linear regression model to data X and response Y?
?
easy
A. mdl = fitlm(X, Y);
B. mdl = linearfit(X, Y);
C. mdl = regress(X, Y);
D. mdl = fitmodel(X, Y);
Solution
Step 1: Recall MATLAB function for linear regression
The function fitlm fits linear regression models in MATLAB.
Step 2: Check options for correct syntax
Only mdl = fitlm(X, Y); uses fitlm(X, Y) correctly; others are invalid or incorrect functions.
Final Answer:
mdl = fitlm(X, Y); -> Option A
Quick Check:
fitlm = linear model fit [OK]
Hint: Use fitlm for linear regression in MATLAB [OK]
Common Mistakes:
Using non-existent functions like linearfit or fitmodel
Confusing regress syntax with fitlm
3.
What is the output of this MATLAB code?
X = (1:5)';
Y = [2; 4; 6; 8; 10];
mdl = fitlm(X, Y);
disp(mdl.Coefficients.Estimate(2));
medium
A. 10
B. 2
C. 1
D. 4
Solution
Step 1: Understand data and model
X is 1 to 5, Y is 2,4,6,8,10 which is Y = 2*X exactly.
Step 2: Interpret coefficient output
The slope (coefficient for X) is 2, so mdl.Coefficients.Estimate(2) returns 2.
Final Answer:
2 -> Option B
Quick Check:
Slope = 2 [OK]
Hint: Slope equals change in Y over X [OK]
Common Mistakes:
Confusing intercept with slope coefficient
Misreading coefficient index
4.
Identify the error in this MATLAB code for regression:
X = [1 2 3 4 5];
Y = [2; 4; 6; 8; 10];
mdl = fitlm(X, Y);
medium
A. fitlm requires three input arguments
B. fitlm cannot handle numeric data
C. Y must be a matrix, not a vector
D. X and Y should be column vectors, not row vectors
Solution
Step 1: Check input shapes for fitlm
fitlm expects predictors and response as column vectors or tables.
Step 2: Identify vector orientation
X is a row vector and Y is a column vector; they should be column vectors for fitlm to work properly.
Final Answer:
X and Y should be column vectors, not row vectors -> Option D
Quick Check:
fitlm needs column vectors [OK]
Hint: Use column vectors for fitlm inputs [OK]
Common Mistakes:
Passing row vectors instead of column vectors
Thinking fitlm needs 3 inputs
Believing fitlm can't handle numeric vectors
5.
You have data vectors X and Y with some outliers. Which approach in MATLAB regression helps reduce outlier impact?
hard
A. Remove all data points manually
B. Use fitlm(X, Y) without options
C. Use fitlm(X, Y, ''RobustOpts'', ''on'')
D. Use polyfit(X, Y, 2) for quadratic fit
Solution
Step 1: Understand outlier effect on regression
Outliers can distort ordinary least squares regression results.
Step 2: Identify MATLAB option for robustness
Using RobustOpts set to 'on' in fitlm applies robust regression reducing outlier influence.
Final Answer:
Use fitlm(X, Y, ''RobustOpts'', ''on'') -> Option C
Quick Check:
RobustOpts = reduce outlier impact [OK]
Hint: Add RobustOpts 'on' to fitlm for outliers [OK]
Common Mistakes:
Ignoring outliers and using default fitlm
Removing data points without analysis
Using polynomial fit which may not reduce outliers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.