(MATLAB)単項線形回帰と多重線形回帰

1.単項線形回帰

コードを直接見て、目標はyyを構築することですyxxxの関数関係、つまりy = kx + by = kx + bそして=k x+BにおけるKKkbbbkkkbbbはすべて実数です。

% 用regress函数进行回归
x=[23.80,27.60,31.60,32.40,33.70,34.90,43.20,52.80,63.80,73.40];
y=[41.4,51.8,61.70,67.90,68.70,77.50,95.90,137.40,155.0,175.0];
figure
plot(x,y,'r*') %作散点图(制定横纵坐标)
xlabel('x')
ylabel('y')

Y=y';
X=[ones(size(x,2),1),x'];
[b,bint,r,rint,s]=regress(Y,X);
hold on
plot(x,b(1)+b(2)*x)
title("预测结果")
figure
rcoplot(r,rint)  % 残差分析

出力結果bは係数行列です。この質問b = [-23.5493,2.791]、予測結果はy = -23.5493 + 2.7991xです。
ここに画像の説明を挿入

予測結果と散布図は次のとおりです。
ここに画像の説明を挿入

残差分析図は以下のようになり、異常箇所が1箇所のみでフィッティング効果が良いことが分かります。
ここに画像の説明を挿入

2.多重線形回帰

2.1データの説明

データデータの一部を次の図に示します
ここに画像の説明を挿入
。MATLABにインポートされたデータは、200行と4列の行列で、3つの変数x 1、x 2、x 3 x_1、x_2、x_3があります。バツ1バツ2バツ3、各変数には200データがあり、データの最後の列はyyを表しますy、多重線形回帰の目標はyyを確立することですyおよびx 1、x 2、x 3 x_1、x_2、x_3バツ1バツ2バツ3k 0、k 1、k 2、k 3 k_0、k_1、k_2、k_3の間の関係k0k1k2k3y = k 0 + k 1 x 1 + k 2 x 2 + k 3 x 3 y = k_0 + k_1x_1 + k_2x_2 + k_3x_3そして=k0+k1バツ1+k2バツ2+k3バツ3

% 多元线性回归

a = load('data.txt');

x1=a(:,[1]) ;
x2=a(:,[2]) ;
x3=a(:,[3]) ;
y=a(:,[4]);

X=[ones(length(y),1), x1,x2,x3];


[b,bint,r,rint,stats]=regress(y,X);
b
rcoplot(r,rint)

2.2プログラム実行結果

bを解いた結果は次のようになるので、y = 2.9389 + 0.0458 x 1 + 0.1885 x 2 − 0.001 x 3 y = 2.9389 + 0.0458x_1 + 0.1885x_2-0.001x_3そして=9 3 8 9+0 0 4 5 8 x1+0 1 8 8 5 x20 0 0 1 x3
ここに画像の説明を挿入

残差分析は次のとおりです。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_45727931/article/details/108276021