我試圖理解R提供的scale
的定義。我有要製作熱圖的數據(mydata
),並且有非常強烈的正偏移。我爲scale(mydata)
和log(my data)
創建了具有樹狀圖的熱圖,兩個樹狀圖都不相同。爲什麼?縮放數據的意義是什麼,而日誌轉換我的數據呢?如果我想查看說明我的數據列之間關係的樹狀圖,哪個更合適?瞭解R中的「縮放」
謝謝你的幫助!我已經閱讀了這些定義,但他們在我的腦海裏縈繞不已。
我試圖理解R提供的scale
的定義。我有要製作熱圖的數據(mydata
),並且有非常強烈的正偏移。我爲scale(mydata)
和log(my data)
創建了具有樹狀圖的熱圖,兩個樹狀圖都不相同。爲什麼?縮放數據的意義是什麼,而日誌轉換我的數據呢?如果我想查看說明我的數據列之間關係的樹狀圖,哪個更合適?瞭解R中的「縮放」
謝謝你的幫助!我已經閱讀了這些定義,但他們在我的腦海裏縈繞不已。
log
僅取對數的每個元素的對數(默認情況下,基數爲e
)。
scale
使用默認設置將計算整個矢量的平均值和標準偏差,然後通過減去平均值和除以sd來「縮放」每個元素的那些值。 (如果你使用scale(x, scale=FALSE)
,只會減去平均而不是由標準方差除以。)
注意,這將給你相同的價值觀
set.seed(1)
x <- runif(7)
# Manually scaling
(x - mean(x))/sd(x)
scale(x)
它提供不外乎一個標準化的數據。它創建的值在幾個不同的名稱下已知,其中一個是z分數(「Z」,因爲正態分佈也稱爲「Z分佈」)。
更可以在這裏找到:
感謝您的回答!但scale()的意義是什麼?我的理由是什麼可以使用它(它使數據看起來更好,等等)。我只是想了解scale()的'點'。謝謝! – Jen
當您有多個變量時,「scale」更具有意義,您可以跨越不同的比例進行考慮。例如,一個var的數量級爲100,而另一個的數量級爲1000000 –
@Jen:另一種(非常丟失)的方式來思考它:當使用'scale'時,你不會改變數據,而是你正在改變比例尺(繪圖時的軸值)。考慮抓住兩端的軸並拉伸或壓縮它。這是規模。相反,'log'實際上改變了數據。對於較大的值,日誌的影響「更強」,對於較小的值,日誌的影響更小。 –