MATLAB實現多元線性回歸

2021-09-25 21:27:30 字數 1304 閱讀 4768

function [ b, bint, r, rint, stats ] = multiple_linear_regression( x,y,alpha )

%multiple_linear_regression 多元線性回歸

%對於輸入資料(必須是去除量綱之後的資料)進行多元線性回歸處理

% 輸入變數

% x:由自變數組成的矩陣(第一列必須全為1)

% y:因變數(列向量)

% alpha:顯著性水平(預設時預設為0.05)

% 若x中兩個原本全為變數,需第一列加上1,作為最後常數項的係數**

% 輸出變數

% b為線性回歸模型y = x*b回歸係數(即斜率引數)第乙個是常數項係數

% bint為b的置信區間(按行顯示)

% r為殘差(實際值與擬合值的差)

% rint為殘差的置信區間

% stats包含如下四個統計量

% r^2統計量(越接近1,變數的線性相關性越強,說明模型有效)

% f統計量

% f(1,n-2)分布大於f的概率p值(顯著性水平,判斷原始假設是否正確的重要證據)

% 剩餘方差s^2(主要用來比較模型是否有改進,越小則模型精度越高)

x = [ones(size(y)),x];

[b, bint, r, rint, stats] = regress(y,x,alpha);

if stats(3)<0.01

disp('f(1,n-2)分布大於f的概率p值為:');

disp( stats(3) );

disp('p值很小(p<0.001),說明擬合模型有效');

else

disp('p值較大(p>0.001),說明擬合模型效果不好');

end%% 畫出擬合效果圖

figure

y_fitting = x*b;

t = 1:length(y);

plot(t,y_fitting,'r-',t,y,'b-',t,abs(y_fitting-y),'k-');

legend(,'fontsize',12,'location','northwest');

xlabel('點的序號','fontsize',12);

ylabel('y對應的值','fontsize',12);

set(gca, 'xgrid','on'); % x軸的網格

set(gca, 'ygrid','on'); % y軸的網格

end

matlab實現一 多元非線性回歸

主函式 單引號表示轉置 x1 1.11 1.21.1 0.9 x2 22 1.81.9 2.1 x3 3.23.2 32.9 2.9 y 10.1 10.2 1010.1 10 x x1,x2,x3 beta0 1 1,1 x代表自變數輸入,u代表因變數輸入,myfun為函式形式 beta0是係數向...

多元線性回歸

多元線性回歸的基本原理和基本計算過程與一元線性回歸相同,但由於自變數個數多,計算相當麻煩,一般在實際中應用時都要借助統計軟體。介紹多元線性回歸的一些基本問題。但由於各個自變數的單位可能不一樣,比如說乙個消費水平的關係式中,工資水平 受教育程度 職業 地區 家庭負擔等等因素都會影響到消費水平,而這些影...

多元線性回歸

from numpy import genfromtxt 用來讀取資料轉化為矩陣 from sklearn import linear model 含有回歸的模型 datapath r c users qaq desktop delivery dummy.csv 路徑 deliverydata ge...