魚與熊掌可以兼得——線性回歸函數的複雜自變量

2021-01-14 克裡克學苑

在R中,非數字式的數據通常指「字符」數據。比如說:最簡易分組-男性(male)、女性(female);頭髮顏色—黑色(black)、金色(blonde)和棕色(brown);體重分組-高(high)、中(middle)、低(low)等。

 

這些數據本身是不能進行運算的(基礎四則運算等),然而在工作中,我們有時也需要判斷它們和因變量之間的關係,那麼這種情況需要我們怎麼做呢?

 

我們先來看一個比較簡單的情況:性別(male,female)與某一因素之間(y)的關係,首先我們定義基本數據內容,性別(gender)為「字符」數據,y為「數字數據」。

圖片二:定義基本數據


接下來我們對這一數據進行線性函數擬合,並且用summary()命令查看擬合結果。

圖片三 簡單分組數據的線性回歸擬合結果


我們可以看到,整個結果的格式與「數字式」數據擬合出的結果格式完全相同。請大家注意第三部分coefficients中,第一行intercept和之前一樣,第二行行名為gendermale。

 

咦,是不是缺了點什麼?

 

之前我們定義數據內容時,性別(gender)有兩組:男性(male)和女性(female),為什麼結果裡只體現出一組呢?

 

敲黑板!!小夥伴們注意,重點來了,在R中,當自變量是「字符」數據時,默認會有一組數據(例子中為female組)被選為「基準組」,又稱對照組,這個自變量中同一元素(例子中為gender元素)中其它組別(male)都和這一組做對比。

 

為什麼會有這樣一個「默認操作」呢?那就要從數字數據和字符數據的根本區別開始說起了。


小夥伴們先回憶一下上一期文章中的數據哈(圖片一),在圖片一的例子中,整個分析的邏輯是什麼樣子的?應該是,當我知道speed是某個數值時,可以預測(模擬)出dist值時多少,並且,speed的取值是任意的。

 

重點就在「任意的」這三個字上,在數據樣本中,speed的取值為4,7,8,9等。如果我們經過分析,確定speed和dist之間存在線性關係,那麼我們隨意給出一個speed數值,比如21,37,都可以得到相應的dist值。

 

那麼對於「字符數據」式的自變量來說,這個「任意性」還存不存在了呢?

不存在了呀小夥伴們!!


拿我們的例子來說,例子中gender這個元素內含兩組:male,female,新數據的gender元素也必須是這兩者之一才能放入函數之中,假如某項新數據的gender元素恰好超出了原有數據的範疇,那麼它是不能應用在已有的函數上的。

 

比如說呀,假如這裡有一小撮新數據,它們的收集標準與時間和原有數據相同,其中有某一項gender元素為not sure (或者是unknown什麼的,拿gender舉例子我也實在是跪了 ),那麼這一項數據是不能用我們這一次求得的線性函數來算y值的。

 

我們通過具體例子把兩種數據的區別講清楚了,下面還是要看一下,在數學原理上它們有什麼不同。

 

首先,我們要回顧一下線性回歸的本質:

公式一 經典線性回歸模型


數字數據的應用與經典模型完全契合,如果我們將圖片一中的例子帶入,那麼模擬出的線性回歸模型為:

公式二 通過示例1模擬線性回歸模型

 

我們之前提到的,數字數據的任意性就是指,對於新數據,可以將任意speed值帶入公式,影響因子不變,從而求得新的dist。


ifspeed new = 33 , 

公式三 示例1中新數據在線性回歸模型中的應用


字符數據的應用就與經典模型有區別了,如果我們將之前的例子(gender數據)帶入,那麼模擬出的線性回歸模型為:

公式四 通過示例2模擬線性回歸模型


這裡涉及到字符數據一個非常有趣的特徵:排他性。什麼意思呢?male和female能同時出現嗎? 不能。換句話說,gender元素的male組和female組能同時出現嗎?不能。


總結一下:字符數據中一項元素的任意兩個「組別」不能在同一數據樣本中同時出現,又稱為字符數據的「排他性」。

 

由於排他性的存在,當字符數據有且只有兩組時(gender只有male和female兩組),R是這麼處理的: 選擇一組為對照組(reference),對照組被認為是0,另一組被認為是1,函數可以寫成:

公式五 字符數據只有兩組時的線性回歸模型


在此例子中,male=1, female=0;具體而言,當我們拿到某個樣本,如果這個樣本的gender元素為male,那麼它的y值為:

公式六 樣本性別為男性時因變量算法


同理,如果樣本gender元素為female,那麼樣本的y值為𝛼(intercept)。

 

這種算法又稱為虛擬編碼(dummy code),它解決了組別之間的區分問題,同時令計算過程簡單明了——相信小夥伴們在看到之前的代碼時都猶豫過為什麼「純字符」的數據居然也能得出數字結論吧,奧妙就在虛擬編碼的0-1賦值上。

 

好,相信到這裡小夥伴們都明白了在字符數據有且僅有兩組時R中線性回歸的擬合方法,也了解了虛擬編碼這一神奇的方法。下面我們就要來說一說,當字符數據有很多組時,我們在R中要怎麼做。

 

首先,我們新建一些數據,這次我們使用頭髮顏色(hair)的數據。頭髮顏色(hair)有三種:黑色(black)、棕色(brown)、金色(blonde)。因變量依然是y。我們看一下數據的情況:

圖片四 頭髮顏色數據展示


在這個新的例子中,自變量依然只有一項(hair)並且是字符數據,因變量依然為y。這時我們要怎麼進行虛擬編碼呢?當自變量只有兩組時可以0-1編碼,現在有三種了,難不成要編成0、1和-1嗎?

 

不是這樣啦,我們不需要-1的出現,計算過程中也只有0、1兩種情況。在這裡呢,R是這樣操作的,把自變量按「具體的分組」分成不同的「新自變量」,再對新自變量進行0-1虛擬編碼。

 

比如說在新例子中,根據經典公式,線性回歸函數的寫法應該是:

公式七 hair數據的經典線性回歸函數公式


那麼如果我們根據hair的內容將它拆成新的自變量,它就會是:hairblack,hairbrown,hairblonde。這時,問題由原來的單一自變量轉為三個自變量,用公式表示為:

公式八 由hair單一自變量拆分成的三個自變量構成的線性回歸函數

 

在分組多於兩個時,R中依然保留了預設對照組的處理方法(在之前的二元問題中,R選擇了男性male組作為對照組),在這個問題中,R選擇black組為對照組,因此R中出現的線性回歸公式實際應為:

公式九 一項內容設為對照組後的線性回歸函數


在這個公式下,x1對應hairbrown,x2對應hairblonde,它們的取值及意義為:

表格一 確定對照組後X1和X2取值的意義


同時,x1與x2取值的對照關係為:

表格二 X1和X2不同取值下對應數據的實際意義


由這個表格可以看出,當x1與x2分別是0-1編碼時,產生的四個組合恰好滿足了原始自變量(hair)的三種分組。x1=1與x2=1不能同時出現(hair不能同時是brown和blonde),因此四個組合中有一個是「廢掉的」,另外三個完美覆蓋數據出現的所有情況。

 

我們可以借用數學中「降維」(降低維度)這一概念描述這一處理方法:當某一字符式自變量內容多於兩組時,按照其內容將單一自變量變為多項自變量,同時其中一項內容被設置為對照組,即整個自變量維度降一級。

 

好,原理講清楚了,下面我們來看一看在R中實際操作的過程與結果:

圖片五 hair數據線性回歸函數擬合(多組自變量)過程與結果


summary()命令的結果清晰的體現了「降維」的處理方式,第三部分Coefficients中列出的自變量為hairblonde 與hairbrown,estimate依然是它們分別的影響因子,那麼假設線性回歸擬合成立,那麼結果可以寫為:

 

ifhair=black, y=4.3333;(x1=0,x2=0)

ifhair=blonde, y=4.3333+0.6667*1=5;(x1=1,x2=0)

ifhair=brown, y=4.3333+0.6667*0+2.6667*1=7;(x1=0,x2=1)

 

請大家注意的是,對照組(reference:hairblack)本身在線性回歸中是「基準參照物」,其它組別都是「和對照組進行比較」。因此,我們在以上結果中看到,hairbalck在intercept中體現了出來,同時hairblonde與hairbrown都是在hairbalck的基礎上得出的結果(intercept+𝛽1 和 intercept+𝛽2)。


這就是兩組或多組「字符式」數據在線性回歸中的處理方法。

相關焦點

  • 多元線性回歸分析:納入多元回歸自變量的確定及求解多元回歸方程
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第五章,多元線性回歸分析:如何求解多元線性回歸方程。在前面的章節中我講到,實際需求預測場景中,通常,影響需求的因素不止一個,對需求影響的因素可能多種多樣,也就是說自變量多種多樣,很少能用單一的變量(也即一元線性回歸分析)來做好需求預測。這時,我們需要用到多元線性回歸分析。回歸分析在需求預測的應用,也主要是多元線性回歸分析。對需求預測而言,多元線性回歸更具有實用性和有效性。
  • 機器學習的線性回歸分析
    回歸分析中,只包括一個自變量和一個因變量,且二者的關係可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關係,則稱為多元線性回歸分析。
  • 入門機器學習之線性回歸
    如果在回歸分析中,只包括一個自變量和一個因變量,且二者的關係可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變量,且自變量之間存在線性相關,則稱為多重線性回歸分析。
  • spss線性回歸自變量因變量專題及常見問題 - CSDN
    轉載自公眾號:青年智囊SPSS多元線性回歸在回歸分析中,如果有兩個或兩個以上的自變量,就稱為多元回歸。事實上,一種現象常常是與多個因素相聯繫的,由多個自變量的最優組合共同來預測或估計因變量,比只用一個自變量進行預測或估計更有效,更符合實際,因此多元線性回歸被廣泛運用。今天大家一起來學習吧!
  • 線性回歸分析詳解10(完結篇):線性回歸分析預測的十大步驟
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第10章,這是本專欄的最後一章,是專欄的完結篇:用線性回歸分析做預測,多元線性回歸分析預測的十大步驟。線性回歸分析專格欄總目錄請見上圖,前9章,我分別講述了回歸分析及與回分析相關的概念,一元、多元線性回歸分析的公式與計算方法,以及多重共線性、回歸方程的精度、顯著性驗證和置信區間等進行回歸分析的重要步驟及其計算方法。至此,以回歸分析進行需求預測的各項知識點及各項準備工作全部完成,我們可以正式的以回歸分析進行需求預測。
  • 簡單線性回歸模型
    「注意,線性回歸問題的確定並不是通過自變量的形式,而是問題中待估計的未知參數最高次都為一次且關於未知參數呈線性關係。3 求解線性回歸模型函數3.1 極大似然法最小二乘法和極大似然法都可以用來求解線性回歸模型,我們在往期文章中討論過最小二乘法,這裡對似然法進行簡單介紹。
  • SPSS分析技術:線性回歸分析
    ,也就是函數關係,不能解決針對未來的分析與預測問題。回歸分析類型回歸分析根據自變量個數,自變量冪次以及變量類型可以分為很多類型,常用的類型有:線性回歸;曲線回歸;二元Logistic回歸技術;線性回歸原理回歸分析就是建立變量的數學模型,建立起衡量數據聯繫強度的指標,並通過指標檢驗其符合的程度。
  • R相關與回歸學習筆記(三十五)——樣條函數變換、線性可加模型(一)
    m個節點的三次樣條函數需要n+4個參數, 因為每段需要4個參數, m+1段需要4m+4個參數, 而在個節點上連續、一階導數連續、二階導數連續構成三個約束條件, 所以參數個數為m+4個。自然樣條函數假定函數在最左邊一段和最右邊一段為線性函數, 這樣m個節點需要m+2個參數。
  • 一元線性回歸分析python - CSDN
    python多重線性回歸分析多重線性回歸分析定義多重線性回歸模型:Mulitiple Linear Regression多元線性回歸模型:MultivariateLinear Regression數據準備#多重線性回歸#數據準備import pandas as pddf=pd.read_csv('e:/python/out/corr.csv',encoding='utf8')df根據預測目標,確定自變量和因變量#多重線性回歸
  • 線性回歸:簡單線性回歸詳解
    【導讀】本文是一篇專門介紹線性回歸的技術文章,討論了機器學習中線性回歸的技術細節。線性回歸核心思想是獲得最能夠擬合數據的直線。
  • 正態分布 線性回歸 - CSDN
    採用最小二乘法進行線性回歸時,需要滿足特定的條件:正態性:一定範圍內,給定任意x值,對應的y均服從正態分布獨立:即誤差項間不存在相關,一般時間序列數據會存在自相關線性:因變量和自變量有線性關係同方差性:即模型誤差項的方差相等。
  • 線性回歸與最小二乘法
    線性回歸模型是使用最廣泛的模型之一,也最經典的回歸模型,如下所示x軸表示自變量x的值,y軸表示因變量y的值,圖中的藍色線條就代表它們之間的回歸模型
  • 多元線性回歸與模型診斷
    多元線性回歸的基本表達式回歸方程的模型擬合度在進行回歸模型之前,我們可以計算總的波動誤差如下:②假設檢驗(同一元線性回歸類似)因為這裡的mean_squared_error是一種損失函數,優化的目標的使其最小化,而分類準確率是一種獎勵函數,優化的目標是使其最大化,因而選擇只用height做變量。
  • 【線性回歸】多變量分析:多元回歸分析
    下面我們就來談談多元回歸分析,這張圖是利用多元線性回歸製作的策略分析圖,你可以理解X軸是重要性,Y軸是表現;首先,多元回歸分析應該強調是多元線性回歸分析!強調線性是因為大部分人用回歸都是線性回歸,線性的就是直線的,直線的就是簡單的,簡單的就是因果成比例的;理論上講,非線性的關係我們都可以通過函數變化線性化,就比如:Y=a+bLnX,我們可以令 t=LnX,方程就變成了 Y=a+bt,也就線性化了。
  • SPSS多元線性回歸案例:回歸分析方法實戰
    1.線性回歸(Linear Regression)線性回歸通常是人們在學習預測模型時首選的技術之一。在這種技術中,因變量是連續的,自變量可以是連續的也可以是離散的,回歸線的性質是線性的。線性回歸使用最佳的擬合直線(也就是回歸線)在因變量(Y)和一個或多個自變量(X)之間建立一種關係。
  • 原理+代碼|Python實戰多元線性回歸模型
    現在我們直接構建多元線性回歸模型from statsmodels.formula.api import ols# 小寫的 ols 函數才會自帶截距項,OLS 則不會# 固定格式:因變量 ~ 自變量(+ 號連接)
  • python一元線性回歸分析專題及常見問題 - CSDN
    python多重線性回歸分析多重線性回歸分析定義多重線性回歸模型:Mulitiple Linear Regression多元線性回歸模型:MultivariateLinear Regression數據準備#多重線性回歸#數據準備import pandas as pddf=pd.read_csv('e:/python/out/corr.csv',encoding='utf8')df根據預測目標,確定自變量和因變量#多重線性回歸
  • 論文推薦王苗苗:無縫線性回歸與預測模型
    對此,本文提出了一種嚴格考慮所有變量觀測誤差的無縫線性回歸和預測模型,該模型將回歸模型的建立和因變量預測聯合處理,在建立回歸模型過程中對待預測自變量的觀測誤差進行估計並修正,從而提高了模型預測效果。理論證明,現有的幾種線性回歸模型都是無縫線性回歸和預測模型的特例。試驗結果表明,無縫線性回歸和預測模型的預測效果優於現有的幾種模型,尤其在變量觀測誤差相關性較大時,無縫模型對預測效果的改善更為顯著。
  • Python數據分析|線性回歸
    ③數據初視:用head函數將讀取的數據表格展示前幾行用於初步觀察,可以看到初步的數據形式、欄位。貳數據預處理初步觀察發現有一些列的數據是空的,它們對於數據分析沒有意義,考慮去掉。並且後續進行一定的數據預處理。①去掉無效列:運用drop函數去掉無效的數據列,並再次調用head函數觀察數據。
  • R筆記:多重線性回歸(二)_適用條件考察
    線性回歸基本適用條件:獨立、線性、正態和方差齊同,本次筆記在上次筆記建立多重回歸模型lmfit後考察這幾個適用條件。線性回歸適用條件和模型的診斷多涉及殘差分析。各個自變量與結局變量間的散點圖矩陣可以直觀的大體了解各個自變量與響應變量間的關係。在數據初步考察裡面我們用到了各個變量間的散點圖來初步觀察這種關係。相比這種散點圖,殘差與自變量的散點圖效率更高一些,該圖在<<線性回歸中的線性考察>>一文中做過介紹。