generate random sample for linear regression

43 views (last 30 days)
Hi guys
can anyone help me how to generate random sample for y, x1 and x2 in the following model (multiple linear regression):
yi= a + bx1 + cx2 + e
where a, b and c are parameters and e is random error.

Accepted Answer

Jeff Miller
Jeff Miller on 17 Jul 2020
% First you have to define the characteristics of x1, x2, and e.
% These can be any values you want, such as:
mu1 = 0; % Mean of x1
sd1 = 1; % Standard deviation of x1
mu2 = 100;
sd2 = 10;
rhoxy = 0.3; % the true correlation of x1 and x2
mue = 0; % Mean of e, usually assumed to be zero
sde = 5; % Standard deviation of e
a = 4; % Known parameters of your regression model
b = 3;
c = 2;
nPoints = 100; % the number of data rows you want to generate
% The rest just uses those values:
mu = [mu1, mu2];
sigma = [sd1^2 sd1*sd2*rhoxy; sd1*sd2*rhoxy sd2^2];
x = mvnrnd(mu,sigma,nPoints);
e = mue + sde*randn(nPoints,1);
y = a + b*x(:,1) + c*x(:,2) + e;

More Answers (1)

Abhishek Gangwar
Abhishek Gangwar on 16 Jul 2020
You can generate random values for x1, x2 using "randperm()" function and then find out corresponding 'y' values,
x1 = randperm(100);
x2 = randperm(100);
and put these values into your equation to find out corresponding 'y' values.
Note: 'randperm()' function gives you the random permutation of number from 1....n.
other functions, for example 'rand()', 'randn()' generates decimal numbers.

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!