2014-08-29 97 views
2

我在R中使用BayesFactor軟件包,但無法輸出貝葉斯因子統計量作爲變量進行保存。R BayesFactor軟件包:輸出BF值

例如,使用t-檢驗配對樣本數據設計:

a = c(94,95,98,99,98,99,96,97,97,100,66,100,99,97,100,99,100,97,99) 
b = c(97,100,99,100,100,98,98,97,97,100,67,100,100,98,99,99,100,98,100) 
out = ttestBF(a,y = b,paired = T) 

回報:

Bayes factor analysis 

[1] Alt., r=0.707 : 4.258084 ±0.03% 

Against denominator: 

    Null, mu = 0 

Bayes factor type: BFoneSample, JZS 

我想能夠4.258084保存到變量中。

通常在其它的R功能我想訪問它: 了$變量名

但是這個輸出的選項有:

(1) out$Alt., r=0.707 
(2) out$Null, mu=0 

而且調用時​​這些返回的錯誤:

(1) Error: unexpected ',' in "out$Alt.," 
(2) Error: unexpected ',' in "out$Null," 

任何幫助將不勝感激

回答

3

(我是BayesFactor包的作者)。通過自身得到貝葉斯因子最簡單的方法就是使用

as.vector(out) 

,並且會給你想要的號碼。沒有必要深入對象結構。

+0

謝謝理查德。這爲我返回了一個'​​Named num'變量: Alt,r = 0.707 4.258084 然後可以使用as.numeric將其轉換爲數字變量。因此,編寫這個技巧的代碼是: as.numeric(as.vector(out)) – nicalbee 2014-10-19 00:41:01

+0

是的,因爲BayesFactor對象可以包含多個Bayes因子,所以它會盡力幫助並命名它們,以便知道哪個。但是,如果你不需要/需要他們,你確實可以剝奪他們。 – richarddmorey 2014-10-20 13:22:02

1

我設法詢問合適的人,並且輸出結構的答案更深入:

從「out @ bayesFactor $ bf」獲得的bayes因子是所需的BayesFactor的LOG。

因此,要獲得實際的BF值:

BF = EXP(1)^出@ bayesFactor $ BF