2014-03-25 119 views
0

我希望有人會給我如何使用R從一個Jaccard集羣獲得置信區間的建議。我有從1970年代和今天在四個地點的物種數據。當我運行下面的代碼時,我得到一個很棒的圖表,表明我現在的某個網站比另一個網站更接近歷史。我相信人們會問關於重要性。我在系統發育樹上看到了類似的置信區間,但我不確定如何獲得這些結果。我假設我使用bootstrap測試來做到這一點,但我不確定如何從boot()獲取結果或如何將它們放到我的集羣圖上。任何建議將不勝感激。Jaccard集羣置信區間

我的代碼,以使集羣:

historicalwo <-read.csv("https://stackoverflow.com/users/Victoria/Desktop/Stat Documents/historicalwo.csv", 
row.names = 1) 

jaccard2 <- vegdist (historical, method = "jaccard") 

plot (hclust (jaccard2), hang = -1,main = "Sites clustered by Jaccard similarity",axes = FALSE, 
ylab = "") 

然後我做了捷卡結果的.csv 3列,站點1,站點2和兩個站點的傑卡德指數。

jaccardboot < -read.csv( 「/用戶/維多利亞/桌面/ STAT文件/ jaccardboot.csv」,標題= TRUE)

bs <- function(formula, data, indices) { 
d <- data[indices,] 
fit <- lm(formula, data=d) 
return(coef(fit)) } 

results <- boot(data=jaccardboot,statistic=bs, 
      R=100, formula=site1~jaccard+site2) 

結果

我得到:在開機 錯誤(data = jaccardboot,statistic = bs,R = 100,formula = site1〜: 要替換的項數不是替換長度的倍數 另外:有50個或更多的警告(使用警告() 50)

回答

0

幸運之餘,我偶然發現了一個合理的答案。首先我轉換了我的數據,然後我使用了pvclust,使用ward方法和二進制作爲距離。這模擬了一個提花指數。結果沒有像我之前的例子那樣聚集,但至少現在我有統計學意義。如果有人知道爲什麼這個集羣可能與我的jaccard集羣有所不同,那麼我就會全神貫注。

swo <-read.csv("https://stackoverflow.com/users/Victoria/Desktop/Stat Documents/siteswo1.csv", header = TRUE, row.names = 1) 
    result <- pvclust(swo, method.dist="binary", method.hclust="ward", nboot=1000) 
    plot(result) 
    pvrect(result, alpha=0.95)