一元線性回歸模型
分析兩個變量之間知否存在明顯的線性關系
一元線性回歸
公式:y=ax+b
多元線性回歸
公式:y=a1x+a2x+a3x+......b
數據符號網站
散點圖
看不出線性關系的不能說沒有關系只能說沒有線性關系
公式計算
大於等於0.8表示高度相關(存在明顯的線性關系)
絕對值大於0.5小於等於0.8表示中度相關(存在一定的線性關系)
絕對值大於等於0.3小於0.5表示若相關(存在較弱的線性關系)
絕對值小於0.3表示幾乎不相關(表示基本沒有線性關系,需要注意這里的不相干指的是沒有線性關系,兩者之間可能存在其他關系)
import numpy import pandas X = [52,19,7,33,2] Y = [162,61,22,100,6] # 1.公式計算#均值
XMean = numpy.mean(X) YMean = numpy.mean(Y) # 標准差
XSD = numpy.std(X) YSD = numpy.std(Y) # z分數
ZX = (X-XMean)/XSD ZY = (Y-YMean)/YSD # 相關系數
r = numpy.sum(ZX*ZY)/(len(X)) # 2.numpy中的corrcoef方法直接計算
t=numpy.corrcoef(X,Y) # 3.pandas中的corr方法直接計算
data = pandas.DataFrame({'X':X,'Y':Y}) t2=data.corr()
訓練集與測試集
訓練集用於模型的訓練穿件 測試集用於模型的測試實驗
一般情況下訓練集占總數據的80%、測試集占總數20%
啞變量
在生成算法模型的時候有些變量可能並不是數字無法直接帶入公式計算
此時可以構造變量>>>>C(state)
自變量與應變量
模型中的x為自變量,y為應變量
a為模型的截距項,b為模型的斜率項,ε為模型的誤差項
誤差項ε的存在主要是為了平衡等號兩邊的值,通常被稱為
自定義啞變量
生成有state變量衍生的啞變量
dummies = pd.get_dummies(Profit.State)
將啞變量與原始數據集水平合並
Profit_New = pd.concat([Profit,dummies], axis = 1)
刪除State變量和California變量(因為State變量已被分解為啞變量,New York變量需要作為參照組)
Profit_New.drop(labels = ['State','New York'], axis = 1, inplace = True)
拆分數據集Profit_New
train, test = model_selection.train_test_split(Profit_New, test_size = 0.2, random_state=1234)
建模
model2 = sm.formula.ols('Profit~RD_Spend+Administration+Marketing_Spend+Florida+California', data = train).fit() print('模型的偏回歸系數分別為:\n', model2.params)