2015-03-13 98 views
0

我有一個「my.dataset」是這樣的:引導與引導軟件包組

ID Species SEX  Category  V1  V2  V3 
87790 Caniceps F F_Caniceps -0.34 -0.55 0.61 
199486 Caniceps F F_Caniceps -0.34 -0.56 0.63 
199490 Caniceps F F_Caniceps -0.37 -0.54 0.57 
199493 Caniceps F F_Caniceps -0.35 -0.54 0.58 
200139 Caniceps F F_Caniceps -0.39 -0.51 0.51 
393151 Caniceps M M_Caniceps -0.36 -0.56 0.55 
393154 Caniceps M M_Caniceps -0.36 -0.55 0.55 
486210 Caniceps M M_Caniceps -0.41 -0.50 0.45 
811945 Hyemalis F F_Hyemalis -0.35 -0.54 0.55 
811947 Hyemalis F F_Hyemalis -0.35 -0.59 0.62 
15661 Hyemalis M M_Hyemalis -0.34 -0.56 0.62 
15662 Hyemalis M M_Hyemalis -0.35 -0.53 0.53 
15663 Hyemalis M M_Hyemalis -0.33 -0.58 0.68 
15664 Vulcani  F F_Vulcani -0.29 -0.57 0.71 
15665 Vulcani  F F_Vulcani -0.29 -0.56 0.67 
15666 Vulcani  F F_Vulcani -0.28 -0.55 0.70 
486218 Vulcani  F F_Vulcani -0.36 -0.55 0.56 
486224 Vulcani  F F_Vulcani -0.36 -0.54 0.56 
486212 Vulcani  M M_Vulcani -0.37 -0.53 0.53 
486213 Vulcani  M M_Vulcani -0.37 -0.53 0.54 
199479 Vulcani  M M_Vulcani -0.33 -0.57 0.61 
199483 Vulcani  M M_Vulcani -0.33 -0.62 0.69 
199484 Vulcani  M M_Vulcani -0.33 -0.60 0.65 

我試圖用boot()進行初始化計算過變量統計「V1」,「V2」和「V3」,是這樣的:

boot(my.dataset, statistic=lda (formula=lda(SEX~V1+V2+V3, data=my.dataset), R=3, sim = "ordinary") 

但我需要重新採樣採取相同數量取決於「my.dataset」「類別」變個人。任何想法如何做到這一點?

+0

似乎與你的'formula'論證一個問題... – 2015-03-13 09:55:07

+0

@guillermo弗里斯嗨,如果有答案的名字解決你的問題,你可以點擊「接受它」,讓其他人可以看到它嗎?謝謝 – agenis 2017-09-06 13:21:16

回答

0

您正在尋找bootstrap的「strata」參數。這被稱爲分層引導。 :我不知道你的啓動代碼是正確的,我建議是這樣的:

statfun = function(d, i) {lda(formula=SEX~V1+V2+V3, data=d[i, ])} 
res <- boot(my.dataset, statfun, R=100, strata=factor(my.dataset$Species)) 

我不知道是什麼LDA()函數返回,但statfunction必須返回一個值或引導程序正常工作的矢量。

該方法確保因子的每個等級都被選擇爲與其觀測值的數量成比例。在正常的引導程序中,情況並非如此,並且會導致錯誤,因爲某些複製中缺少某些級別,並且無法計算線性模型。

注:在地層中的說法,你得重新指定數據框

+0

非常感謝agenis,我會按照您的建議嘗試! – 2015-03-14 12:27:29

+0

@GuillermoFriis歡迎您。如果它解決了您的問題,請考慮接受答案,以便其他人可以從中受益。 – agenis 2015-03-19 10:57:08