具有趋势线的两个矩阵的散点图

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 元素并将它们全部视为 growthtrade 而不管国家/地区。

% //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);