回归统计在DMP中的实战应用
源寶導讀:本文將講解在大數據分析領域的線性回歸統計計算方法,以及如何將非線性轉化為線性回歸的原理,同時介紹了兩種的回歸統計庫的使用和對比,最后介紹線性回歸在DMP產品的應用實踐。
一、背景
? ? 回歸統計,是數據分析常用的方式,可以通過對散點圖的線性或非線性擬合,得到一條可以解釋散點趨勢的曲線函數,通過該函數可以對數據進行預測,同時可以采用相關指標刻畫該函數的回歸的效果,具有一定的現實指導意義。
? ? 一般的線性規劃得到的是一條直線,而基本的幾種非線性回歸則是通過轉化為線性回歸的方式來進行;本篇通過講解線性回歸的計算方法以及如何將非線性轉化為線性回歸說明其原理,同時介紹了兩種的回歸統計庫的使用和對比,最后通過實例演示了實現效果。本篇在 DMP 平臺上實現了包含該功能的散點圖組件。
二、接到需求
地點:辦公室。
時間:某個清晨。
人物:某產品經理;小明,久經考驗的前端攻城獅。
事件:又又接到產品提出的奇怪需求——之前搞了PS,現在 EXCEL 有的功能我們也要上,作為大數據產品,趨勢線這種東西,必須有啊,移動平均除外,其他的都得搞定。
看到這個需求,小明表示,還是淡定吧…
如下圖所示:
三、需求分解
圖形由散點和趨勢線構成,均可按照 echarts 等圖形庫直接繪制;
控制面板使用一般的UI 控件均可實現;
關鍵在于線性、指數、對數、多項式和乘冪趨勢線的算法實現。
? ? 搞清楚這幾種回歸分析算法的原理,即搞定了這個需求。
四、線性回歸
4.1、什么是回歸
? ? 高中的數學課本知識告訴我們:
從一組樣本數據出發,確定變量之間的數學關系式;
對這些關系式的可信度進行各種統計檢驗,并從影響某一特定變量的諸多變量中找出哪些變量的影響顯著,哪些不顯著;
利用所求的關系式,根據一個或幾個變量的取值來預測或控制另一個特定變量的取值,并給出這種預測或控制的精確程度。
? ? 以上便是回歸的一般用法。
4.2、回歸的意義
客觀事物是相互聯系的,過去研究的大多數是因果關系,但實際上更多存在的是一種非因果關系;
相關關系:當一個或幾個相互聯系的變量取一定的數值時,與之相對應的另一變量的值雖然不確定,但它仍按某種規律在一定的范圍內變化。變量間的這種相互關系,稱為具有不確定性的相關關系。
回歸分析是尋找相關關系中非確定性關系的某種確定性。
4.3、回歸的種類
? ? 按形式分類:
線性相關(直線相關):當相關關系的一個變量變動時,另一個變量也相應地發生均等的變動。
非線性相關(曲線相關):當相關關系的一個變量變動時,另一個變量也相應地發生不均等的變動。
? ? 可以看到,我們要實現的除了直線趨勢線外,其他的指數、對數、多項式和乘冪趨勢線都是非線性相關。
4.4、如何實現線性回歸
4.4.1、線性回歸算法
? ? 最小二乘是最常用的實現線性回歸的方法,可以通過其找到因變量 y 與自變量 x 之間的函數關系y=f(x)。
? ? 對于散點圖,可以將點的橫坐標看做自變量 x ,將縱坐標看做因變量 y , 然后使用最小二乘法找到自變量和因變量之間的函數關系,由這個函數關系可以確定一條直線,這就是擬合出來的直線趨勢線。
4.4.2、幾何意義
? ? 最小二乘法的直觀上的理解是:在二維平面上找到一條直線,使得每個點到直線的豎直距離之和最小。也就是說,一般最小二乘優化的是豎直距離,即縱坐標 y 的誤差。
4.4.3、公式求解
設線性回歸方程為:
先求出變量 x 的平均值,即:
再求出變量 y 的平均值,即:
求出變量 x 的系數
即:
=
? ? 5. 求出常數:
即:
即可得到回歸方程:
4.4.4、回歸方程評價
? ? 主要有兩個指標,方差 ?2 和 相關指數 R2。一般我們可以用相關指數 R2 來刻畫回歸的效果。R2 越趨向于 1,則說明回歸方程擬合的越好;越趨向 0,則說明擬合的越差。
4.5、通過線性方法實現非線性回歸
? ? 主要的思想是通過適當的變量代換,把冪函數、指數函數、對數函數等采用適當的變量代換,把問題轉化為線性回歸問題,使其得到解決。
如對指數回歸:
的求解方式如下:
1.在
的兩邊取常用對數得到:
2.令
,則得到
? ? 即轉化為線性方程,按照線性方程進行求解可得到 a 和 b 的值,帶入公式可得到系數 C? 和 C?,從而得到指數回歸:
五、regression-js及echarts-stat簡介
? ? 實現回歸統計在各個平臺和語言都有不同的實現,對于前端而言,有兩個現成的庫可以直接使用,就是regression-js 和 echarts-stat。
5.1、regression-js
官方介紹:
? ? regression-js 是一個JavaScript模塊,其中包含用于簡單數據分析的線性最小二乘擬合方法的集合。
? ? 基本可以看作我們上面講解內容的一個實現版本,包含的內容也恰好覆蓋,其API如下:
Result:
? ? 其求解的結果集直接提供了 相關指數 R2, 并且提供了一個 predict 函數,可以直接通過輸入 x 獲得預測值。
5.2、echarts-stat
官方介紹:
? ? ecStat是ECharts ?的統計和數據挖掘工具。你可以把它當作一個工具庫直接用來分析數據;你也可以將其與 ECharts 結合使用,用ECharts 可視化數據分析的結果。
同時支持 Node 和瀏覽器中使用。
ecStat 提供的 api 較多,包含以下內容:
·直方圖
·聚類
·回歸
·基本統計方法
回歸是 ecStat 提供的一類 api,同 regression-js 提供的功能基本一致:
? ? 與 regression-js 相比,少了冪函數,同時求解集也沒有提供相關指數 R2 和 predict 預測函數。
? ? 比較適合僅需要圖形渲染的場景,對于預測和評價需要使用其提供的基本統計方法自行定義。
六、實現演示
? ? 采用 regression-js 進行實現回歸算法,用 echarts 作圖形渲染,在 DMP 平臺上制作了一個組件,實現了線性、指數、對數、多項式和乘冪趨勢線以及其 R2 和趨勢預測,如下圖所示:
? ? 具體可以在 DMP 測試環境使用設計器-更多-趨勢線散點圖DEMO 查看效果。(動圖:趨勢線2.gif)
? ? ?同時,也在 echarts 社區的 gallery 制作了 regression-js 和 ecStat 的對比演示demo,感興趣的同學可以查看:https://gallery.echartsjs.com/editor.html?c=xV2Muphtnl&v=5。
------ END ------
作者簡介
王同學:?研發工程師,目前負責云創DMP數據分析平臺的設計與開發工作。
也許您還想看
云客大數據架構實踐
云客大數據管理保障體系
TypeScript+vue使用與遷移經驗總結
Web頁面適配移動端方案研究
前端異步對象的原理與使用方法
總結
以上是生活随笔為你收集整理的回归统计在DMP中的实战应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 死磕 Redis,我有这么几招
- 下一篇: 龙芯3A5000初样顺利交付流片