⑴ 如何用r軟體對給定數據進行回歸分析(不能用lm函數)
可以試著探索一下summary(lm(y~x))到底是什麼。 首先看一下summary(lm(y~x))是什麼數據類型: > m class(summary(m)) [1] "summary.lm" #可以看到,lm的結果是一個"summary.lm" 對象。這有些顯而易見。好吧,繼續探索。 R語言中所有的對象都建立在一些native data structures之上,那麼summary(lm(y~x)的native data structure是什麼呢?可以用mode()命令查看。
⑵ 基於R語言實現Lasso回歸分析
基於R語言實現Lasso回歸分析
主要步驟:
將數據存成csv格式,逗號分隔
在R中,讀取數據,然後將數據轉成矩陣形式
載入lars包,先安裝
調用lars函數
確定Cp值最小的步數
確定篩選出的變數,並計算回歸系數
具體代碼如下:
需要注意的地方:
1、數據讀取的方法,這里用的file.choose( ),這樣做的好處是,會彈出窗口讓你選擇你要載入進來的文件,免去了輸入路徑的苦惱。
2、數據要轉為矩陣形式
3、(la) 可以看到R方,這里為0.66,略低
4、圖如何看? summary的結果里,第1步是Cp最小的,在圖里,看到第1步與橫軸0.0的交界處,只有變數1是非0的。所以篩選出的是nongyangungun
Ps: R語言只學習了數據輸入,及一些簡單的處理,圖形可視化部分尚未學習,等論文寫完了,再把這部分認真學習一下~~在這里立個flag
⑶ 回歸分析 | R語言 -- 多元線性回歸
多元線性回歸 是 簡單線性回歸 的擴展,用於基於多個不同的預測變數(x)預測結果變數(y)。
例如,對於三個預測變數(x),y的預測由以下等式表示: y = b0 + b1*x1 + b2*x2 + b3*x3
回歸貝塔系數測量每個預測變數與結果之間的關聯。「 b_j」可以解釋為「 x_j」每增加一個單位對y的平均影響,同時保持所有其他預測變數不變。
在本節中,依然使用 datarium 包中的 marketing 數據集,我們將建立一個多元回歸模型,根據在三種廣告媒體(youtube,facebook和報紙)上投入的預算來預測銷售。計算公式如下: sales = b0 + b1*youtube + b2*facebook + b3*newspaper
您可以如下計算R中的多個回歸模型系數:
請注意,如果您的數據中包含許多預測變數,則可以使用 ~. 以下命令將模型中的所有可用變數簡單地包括在內:
從上面的輸出中,系數表顯示β系數估計值及其顯著性水平。列為:
如前所述,您可以使用R函數輕松進行預測 predict() :
在使用模型進行預測之前,您需要評估模型的統計顯著性。通過顯示模型的統計摘要,可以輕松地進行檢查。
顯示模型的統計摘要,如下所示:
摘要輸出顯示6個組件,包括:
解釋多元回歸分析的第一步是在模型摘要的底部檢查F統計量和關聯的p值。
在我們的示例中,可以看出F統計量的p值<2.2e-16,這是非常重要的。這意味著 至少一個預測變數與結果變數顯著相關 。
要查看哪些預測變數很重要,您可以檢查系數表,該表顯示了回歸beta系數和相關的t統計p值的估計。
對於給定的預測變數,t統計量評估預測變數和結果變數之間是否存在顯著關聯,即,預測變數的beta系數是否顯著不同於零。
可以看出,youtube和facebook廣告預算的變化與銷售的變化顯著相關,而報紙預算的變化與銷售卻沒有顯著相關。
對於給定的預測變數,系數(b)可以解釋為預測變數增加一個單位,同時保持所有其他預測變數固定的對y的平均影響。
例如,對於固定數量的youtube和報紙廣告預算,在Facebook廣告上花費額外的1000美元,平均可以使銷售額增加大約0.1885 * 1000 = 189個銷售單位。
youtube系數表明,在所有其他預測變數保持不變的情況下,youtube廣告預算每增加1000美元,我們平均可以預期增加0.045 * 1000 = 45個銷售單位。
我們發現報紙在多元回歸模型中並不重要。這意味著,對於固定數量的youtube和報紙廣告預算,報紙廣告預算的變化不會顯著影響銷售單位。
由於報紙變數不重要,因此可以 將其從模型中刪除 ,以提高模型精度:
最後,我們的模型公式可以寫成如下:。 sales = 3.43+ 0.045*youtube + 0.187*facebook
一旦確定至少一個預測變數與結果顯著相關,就應該通過檢查模型對數據的擬合程度來繼續診斷。此過程也稱為擬合優度
可以使用以下三個數量來評估線性回歸擬合的整體質量,這些數量顯示在模型摘要中:
與預測誤差相對應的RSE(或模型 sigma )大致代表模型觀察到的結果值和預測值之間的平均差。RSE越低,模型就越適合我們的數據。
將RSE除以結果變數的平均值將為您提供預測誤差率,該誤差率應盡可能小。
在我們的示例中,僅使用youtube和facebook預測變數,RSE = 2.11,這意味著觀察到的銷售值與預測值的平均偏差約為2.11個單位。
這對應於2.11 / mean(train.data $ sales)= 2.11 / 16.77 = 13%的錯誤率,這很低。
R平方(R2)的范圍是0到1,代表結果變數中的變化比例,可以用模型預測變數來解釋。
對於簡單的線性回歸,R2是結果與預測變數之間的皮爾森相關系數的平方。在多元線性回歸中,R2表示觀察到的結果值與預測值之間的相關系數。
R2衡量模型擬合數據的程度。R2越高,模型越好。然而,R2的一個問題是,即使將更多變數添加到模型中,R2總是會增加,即使這些變數與結果之間的關聯性很小(James等,2014)。解決方案是通過考慮預測變數的數量來調整R2。
摘要輸出中「已調整的R平方」值中的調整是對預測模型中包含的x變數數量的校正。
因此,您應該主要考慮調整後的R平方,對於更多數量的預測變數,它是受罰的R2。
在我們的示例中,調整後的R2為0.88,這很好。
回想一下,F統計量給出了模型的整體重要性。它評估至少一個預測變數是否具有非零系數。
在簡單的線性回歸中,此檢驗並不是真正有趣的事情,因為它只是復制了系數表中可用的t檢驗給出的信息。
一旦我們開始在多元線性回歸中使用多個預測變數,F統計量就變得更加重要。
大的F統計量將對應於統計上顯著的p值(p <0.05)。在我們的示例中,F統計量644產生的p值為1.46e-42,這是非常重要的。
我們將使用測試數據進行預測,以評估回歸模型的性能。
步驟如下:
從上面的輸出中,R2為 0.9281111 ,這意味著觀察到的結果值與預測的結果值高度相關,這非常好。
預測誤差RMSE為 1.612069 ,表示誤差率為 1.612069 / mean(testData $ sales) = 1.612069/ 15.567 = 10.35 % ,這很好。
本章介紹了線性回歸的基礎,並提供了R中用於計算簡單和多個線性回歸模型的實例。我們還描述了如何評估模型的性能以進行預測。