How to use Monte Carlo Simulation in a linear regression?

조회 수: 13 (최근 30일)
Stef
Stef 2018년 1월 27일
편집: Prajit T R 2018년 2월 5일
I have a linear regression model with a lagged dependet variable: y_new=beta1+beta2*x+u
n=4; %sample size
u=normrnd(0,1,[1,n]); %iid errors
y_0=1; %start values
beta1=1;
beta2=0.5;
y = zeros(1,n);
yt=y_0;
%real value of y
for i=1:n;
y_real=beta1+beta2*yt;
y(i) = y_real;
yt=y_real1;
end
%estimated y including the error term
y_new=y+u
x=[y_0,y_new(1:end-1)] %lagged explanatory variable
[beta1_hat, beta2_hat]=regression(y_new,x) %regression to estimate beta1 and beta2
solution1=beta1_hat-beta1 %estimation errors
solution2=beta2_hat-beta2
I have to do 1000 Monte Carlo replications (for n=4). How do I code that?

답변 (1개)

Prajit T R
Prajit T R 2018년 2월 5일
편집: Prajit T R 2018년 2월 5일
Hey try this approach. I'm not sure if this is the result you were looking for, but I think it can help you get an idea on how to proceed. Attaching the code below:
n=4; %sample size
no_of_simulations=1000; %For 1000 simulations
BETA2=zeros(1,no_of_simulations);
BETA1=zeros(1,no_of_simulations);
for j=1:no_of_simulations
u=normrnd(0,1,[1,n]) %iid errors
y_0=1; %start values
beta1=1;
beta2=0.5;
y = zeros(1,n);
yt=y_0;
%real value of y
for i=1:n
y_real=beta1+beta2*yt;
y(i) = y_real;
yt=y_real;
end
%estimated y including the error term
y;
y_new=y+u;
x=[y_0,y_new(1:end-1)]; %lagged explanatory variable
[beta1_hat, beta2_hat]=regression(y_new,x); %regression to estimate beta1 and beta2
solution1=beta1_hat-beta1; %estimation errors
solution2=beta2_hat-beta2;
BETA2(j)=beta2_hat;
BETA1(j)=beta1_hat;
end
plot(BETA1)
avg_beta1=mean(BETA1)
figure
plot(BETA2)
avg_beta1=mean(BETA2)
You can obtain the values of beta1 and beta2 over all 1000 simulations. Feel free to make modifications and explore. I hope you find a solution to the question, and if you do I'd recommend you to share it here for the benefit of the entire MATLAB community :)

Community Treasure Hunt

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

Start Hunting!

Translated by