R 中進行對數變換

2021-08-21 15:07:26 字數 1766 閱讀 4072

—– 正文分割線 —–

當資料分布大致對稱時,用均值和標準差對資料進行歸一化是非常有意義的。在本文中,基於第4章 實用資料科學與r,作者展示了一種可以使某些分布更加對稱的轉換。

是否對資料進行轉換可能取決於你要使用的建模方法。例如,對於線性回歸和邏輯回歸,理想情況下你希望輸入變數和輸出變數之間的關係近似為線性,也就是說,輸入變數近似為正態分佈,輸出變數的方差為常數(即,輸出變數的方差與輸入變數無關)。你可能需要轉換一些輸入變數才能更好地滿足這些假設。

在本文中,我們將介紹對數轉換以及何時使用。

貨幣量——收入,客戶價值,賬戶或購買規模等——是資料科學應用中最常遇到的偏差分布的**。事實上,正如我們在 附錄b:重要統計概念 中所討論的那樣,貨幣金額通常是對數正態分佈——也就是說,資料的對數呈正態分佈。這讓我們想到 對資料取log 可以恢復其對稱性。下圖就證明了這一點:

出於建模的目的,你使用的對數(不管是自然對數,以10為底的對數 或 以2為底的對數)通常都不是關鍵。例如在回歸中,對數的選擇會影響和 進行對數變換的變數 對應的係數的大小,但它不會影響結果的值。我喜歡使用 以10為底 對貨幣金額進行對數變換,因為 以10為基準的數量級 看起來很自然:100美元,1000美元,10,000美元等等。轉換後的資料易於閱讀。

關於作圖

使用 ggplot 的 scale_x_log10 層和 log10(income) 之間的區別主要在於軸標記。使用 scale_x_log10 將以美元金額標記x軸,而不是對數。

通常,使用範圍超過幾個數量級的值進行 資料的對數變換 是乙個好主意。首先,因為建模技術通常具有非常寬的資料範圍,其次,這樣的資料通常來自乘法過程,所以用對數做單位在某種意義上更自然。

例如,當你研究**時,自然單位通常是磅或公斤。如果我體重150磅,我的朋友體重200,我們同等程度地活躍,我們都採用完全相同的熱量限制飲食,那麼我們可能會損失相同的體重 —— 換句話說,我們減輕多少重量並不取決於我們初始的體重,而取決於卡路里的攝入量。這是乙個新增過程。

當然,只有在資料為非負數時才能採用對數變換。如果有零值或負值,可以使用其他變換(例如arcsinh)來減少資料範圍。我不喜歡使用arcsinh,因為我沒有發現轉換資料的意義。在偏斜資料是貨幣的應用(如帳戶餘額或客戶價值)中,我使用我稱之為「符號對數」的東西。帶符號的對數取變數絕對值的對數,並乘以適當的符號。絕對值小於1的值將對映為零。對數和符號對數之間的區別如下圖所示。

以下是在r中計算以10為底的符號對數:

signedlog10 = function

(x)

顯然,如果低於單位幅度的值很重要,則無效。但是對於所有實際目的而言,對於許多貨幣變數(以美元計價),小於1美元的價值與零(或一)沒有太大差別。因此,例如,將小於1美元的帳戶餘額對映到1美元(相當於每個帳戶的最低餘額為1美元)可能沒問題。

一旦你對資料進行了適當的清理和轉換,你幾乎已準備好開始建模階段。

在某些時候,你將擁有盡可能高質量的資料。你解決來資料丟失的問題,並執行了所需的轉換。你已準備好進入建模階段。但請記住,資料科學是乙個迭代過程。你可能會在建模過程中發現需要進行其他資料清理或轉換。

在R中進行相關分析

1.用r進行多元相關分析 用cov函式計算mtcars資料框的前三個變數的協方差矩陣 cov mtcars 1 3 mpg cyl disp mpg 36.324103 9.172379 633.0972 cyl 9.172379 3.189516 199.6603 disp 633.097208 ...

Eigen庫中進行矩陣間的變換

一 剛體旋轉的表示方法有如下四種 旋轉矩陣 r3x3 旋轉矩陣r為正交陣 行或列向量都是兩兩正交的單位向量 四元數 quaternion 四元數可以只用四個元素就能表示旋轉,在使用四元數進行旋轉變換之前需要對四元數進行歸一化。旋轉向量v 也稱 軸角,由乙個旋轉軸向量和旋轉角組成。旋轉軸向量需要標準化...

通過R語言對資料進行聚類分析

聚類分析是將資料根據相似特徵分類到不同的類或簇,用以對資料進行區分。1.聚類 k means 通過資料中每個數值間的距離進行聚類,是一種縱向聚類,將樣本資料據成型別,用以對資料的特徵進行區分。1 讀取資料 data read.csv cludata data complete.cases data ...