Please help me with my code ( linear regression)
조회 수: 11 (최근 30일)
이전 댓글 표시
if true
% code
endclear; clc;
%Step1:Generate a vector Y and X
n=1000;
v=2;
Y=trnd(v,n,1);
x1=ones(n,1);
x2=randn(n,1);
X=[x1 x2];
%Step2:Compute the OLS estimator
beta=(X'*X)^(-1)*X'*Y;
%Step3: Repeat 1. and 2. MC = 10000 times.
MC= 10000;
for nsample = 1:5
if nsample == 1; n = 1000; end;
if nsample == 2; n = 2000; end;
if nsample == 3; n = 3000; end;
if nsample == 4; n = 5000; end;
if nsample == 5; n = 7000; end;
for n=1:MC;
beta_hat(n,:) = (X'*X)^(-1)*X'*Y
for df=1:10;
B0=beta_hat(n,:)- beta;
bias=(1/MC)*symsum(B0,n,1,MC);
rmse=sqrt(bias^2);
df=[1:0; 1.1; 1.2; 1.3; 1.4; 1.6; 1.8; 2.0; 5.0; 10.0];
end;
end;
end;
The statements I am trying to code is below

댓글 수: 5
Image Analyst
2017년 4월 3일
What are the sizes of beta_hat and beta? How many rows and columns? Evidently they're not the same! beta_hat(n, :) is a 1-D row vector and you're probably trying to stuff a 2-D matrix into a single row and it won't fit.
답변 (1개)
Nicolas Schmit
2017년 9월 5일
The error message means that you are trying to subtract two variables with incompatible sizes. This occurs because size(beta)= [2 1] whereas size(beta_hat(n,:)) = [1 2]. Transpose beta to make it a row vector.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 PHY Components에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!