具有趋势线的两个矩阵的散点图
Scatter plot of two matrices with trend line
我想绘制两个矩阵的散点图,包括一条趋势线。
我的两个矩阵是:增长和贸易。
两者的大小都是 NxT,其中 N 是国家的数量,T 是观察的数量(每个国家)。
我想看看增长和贸易是否与整个样本(所有国家)有关系。
到目前为止,我的代码如下所示:
figure
for j=1:N
scatter(growth(:,j),trade(:,j))
xlabel('growth')
ylabel('trade')
hold on
lsline
end
hold off
散点图看起来不错,但是当我想包括一条拟合线以查看两个矩阵之间是否存在关系时,我为每个国家/地区获得了一条拟合线。如何在散点图中获得两个完整矩阵之间的拟合线?换句话说,我希望我的散点图包含所有国家的拟合线,而不是每个国家的拟合线。
提前致谢。
然后您将必须计算所有国家/地区的趋势线,而不是单独计算国家/地区的趋势线。这意味着您不能在循环的每次迭代中使用 lsline,但必须计算适合矩阵的列聚合的最小二乘法。
如果将所有值都视为一个长向量会怎样?您基本上会跳过 country 元素并将它们全部视为 growth
和 trade
而不管国家/地区。
% //Make all data points one long vector as all points represent the same thing
trade = reshape (trade,[1 prod(size(trade))]);
growth = reshape (growth,[1 prod(size(growth))]);
% //Normalise the data between 0-1 so that we can compare them
trade_norm = (trade - min(trade))./ (max(trade)-min(trade));
growth_norm = (growth - min(growth)) ./ (max(growth)-min(growth));
% //then fit a line
pf = polyfit( trade_norm, growth_norm, 1);
x1 = trade_norm;
y1 = polyval(pf, x1);
我想绘制两个矩阵的散点图,包括一条趋势线。 我的两个矩阵是:增长和贸易。 两者的大小都是 NxT,其中 N 是国家的数量,T 是观察的数量(每个国家)。 我想看看增长和贸易是否与整个样本(所有国家)有关系。 到目前为止,我的代码如下所示:
figure
for j=1:N
scatter(growth(:,j),trade(:,j))
xlabel('growth')
ylabel('trade')
hold on
lsline
end
hold off
散点图看起来不错,但是当我想包括一条拟合线以查看两个矩阵之间是否存在关系时,我为每个国家/地区获得了一条拟合线。如何在散点图中获得两个完整矩阵之间的拟合线?换句话说,我希望我的散点图包含所有国家的拟合线,而不是每个国家的拟合线。 提前致谢。
然后您将必须计算所有国家/地区的趋势线,而不是单独计算国家/地区的趋势线。这意味着您不能在循环的每次迭代中使用 lsline,但必须计算适合矩阵的列聚合的最小二乘法。
如果将所有值都视为一个长向量会怎样?您基本上会跳过 country 元素并将它们全部视为 growth
和 trade
而不管国家/地区。
% //Make all data points one long vector as all points represent the same thing
trade = reshape (trade,[1 prod(size(trade))]);
growth = reshape (growth,[1 prod(size(growth))]);
% //Normalise the data between 0-1 so that we can compare them
trade_norm = (trade - min(trade))./ (max(trade)-min(trade));
growth_norm = (growth - min(growth)) ./ (max(growth)-min(growth));
% //then fit a line
pf = polyfit( trade_norm, growth_norm, 1);
x1 = trade_norm;
y1 = polyval(pf, x1);