2012-01-11 87 views
2

Box-Cox參數估計是否到達lambda = 0?這樣推薦的轉換是一個日誌功能?或者,這種可能性僅僅是一種數學上的精確性,可以使該功能持續下去,但在實踐中很少使用這種方法?Box-Cox參數估計是否到達λ= 0?

我問,因爲我一直在嘗試測試盒考克斯變換中的R,看它是否估計lambda==0在適當的時候:

> require(car) 
> x <- exp(qnorm(runif(1000))) # 1000 numbers from a normal distribution then exp() 
> p = powerTransform(x) 
> p 
Estimated transformation parameters 
    x 
-0.1098415 
# clearly this does not equal zero 
+0

你也可以在'MASS'包中找到'boxcox()'的一些用法。 – 2012-01-11 02:30:41

+0

一個比另一個更好嗎?我在'powerTransform'中不斷收到錯誤 - NaN,不收斂... – 2012-01-11 11:46:57

回答

2

我認爲你需要改變你的標準,以「足夠接近」。當我做什麼我random.seed是目前同樣的過程我得到

> p 
Estimated transformation parameters 
     x 
0.01389905 

而且我進一步的實驗表明你的價值在分配的「異常值」區域。當我做1000的時候,我甚至不得到的值作爲極端的你:

v <- vector("numeric", 1000) 
for (i in 1:1000) {x <- exp(qnorm(runif(1000))) 
        v[i] = powerTransform(x)$lambda} 
Hmisc::describe(v) 
v 
     n missing unique  Mean  .05  .10 
    1000   0  1000 -0.000212 -0.039335 -0.033698 
     .25  .50  .75  .90  .95 
-0.017978 -0.001259 0.017593 0.033499 0.044303 

lowest : -0.09670 -0.09472 -0.08878 -0.08456 -0.07255 
highest: 0.06730 0.06830 0.06932 0.06955 0.07142 

除了維納布爾斯&裏普利的MASS :: boxcox通過@Josh奧布萊恩提到的,也有一輛車: :John Fox軟件包的廣泛的迴歸診斷功能套件(您已經加載)的boxCox功能。

+0

好的。我覺得困擾我的是有沒有「足夠接近」這樣的東西?看到'log x'與'x ^(很小的數字)'有根本的區別......如果我認爲我的數據可能值得對數變換,我應該用'x ^(非常小的數字)'來代替嗎? – 2012-01-11 11:05:48

+5

在許多方面,對數變換確實與分數功率變換的功能非常相似。它們都限制了在較高範圍發生的方差爆炸。我認爲你已經走出了「如何」的領域,無論是哲學還是抽象概率。這個問題可能更好地在http://stats.stackexchange.com/上重新解決。 – 2012-01-11 13:08:29

+0

你認爲這種回答的問題:) – 2012-01-11 13:17:16

5

由於數據是隨機的,因此您不會完全爲零。

> p <- powerTransform(rlnorm(100)) 
> coef(p) 
rlnorm(100) 
-0.05007203 
> coef(p, round=TRUE) # Recommended transform 
rlnorm(100) 
      0 

如果刪除隨機性,則該值更接近零。

> p <- powerTransform(qlnorm(ppoints(100))) 
> p 
Estimated transformation parameters 
qlnorm(ppoints(100)) 
     -2.635191e-12