Please help me with my code ( linear regression)

9 ビュー (過去 30 日間)
Mark Lu
Mark Lu 2017 年 3 月 30 日
回答済み: Nicolas Schmit 2017 年 9 月 5 日
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 件のコメント
Mark Lu
Mark Lu 2017 年 3 月 31 日
Here is the full error message . ''Error using - Matrix dimensions must agree. Error in Assign3 (line 27) B0=beta_hat(n,:)- beta;''
Image Analyst
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
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.

カテゴリ

Help Center および File ExchangePHY Components についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by