2012-04-23 33 views
6

Tôi có cơ sở dữ liệu về ước tính vị trí và muốn tính toán phân bổ sử dụng hạt nhân hàng tháng. Tôi có thể làm điều này bằng cách sử dụng gói adehabitat trong R, nhưng tôi muốn ước tính khoảng tin cậy 95% cho các giá trị này bằng cách sử dụng bootstrapping các mẫu từ cơ sở dữ liệu. Hôm nay tôi đã thử nghiệm gói khởi động, nhưng tôi vẫn còn khá mới đối với R và tôi cần một số trợ giúp chuyên gia hơn! Các thông báo lỗi chính tôi nhận được là:Khởi động: Lỗi trong thống kê (dữ liệu, bản gốc, ...): đối số chưa sử dụng (gốc)

Error in statistic(data, original, ...) : unused argument(s) (original) 

Đây là một cái nhìn tại các tập Tôi đã sử dụng:

head(all) 
Num   Hourbin COA_Lat COA_Lon POINT_X POINT_Y month year id 
1 07/10/2010 15:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912 
2 07/10/2010 16:00 48.56254 -53.89121 729355.7 5383495 October 2010 29912 
4 07/10/2010 18:00 48.56225 -53.89144 729339.7 5383461 October 2010 29912 
5 07/10/2010 19:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912 
6 07/10/2010 20:00 48.56225 -53.89144 729339.8 5383461 October 2010 29912 
7 07/10/2010 21:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912 

Với các cột 5 và 6 là X và vị trí Y lần lượt là . Tôi đặt tập dữ liệu này cho các tháng khác nhau (ví dụ: nhận tệp có tên là "oct", "nov", v.v ...). Tôi đã cố gắng thiết lập chức năng hạt nhân trong gói adehabitat là một chức năng mà tôi có thể gọi để khởi động, nhưng không có may mắn cho đến nay.

kUDoct<-function(i) kernel.area(oct[,5:6],oct[,10],kern="bivnorm",unin=c("m"),unout=c("km2")) 
bootoct<-boot(oct,kUDoct,R=1000) 
Error in statistic(data, original, ...) : unused argument(s) (original) 

Mọi trợ giúp sẽ được đánh giá cao!

M

+1

'kernel.area' là gì? "Tất cả" ở đâu? 'Oct' trông như thế nào? Tại sao 'kUDoct' không sử dụng chỉ mục' i' trong cơ thể? –

Trả lời

5

Vâng, một vấn đề mà bạn đang gặp phải là bạn đang không sử dụng boot chức năng như tài liệu hướng dẫn bạn đến. Từ ?boot chúng ta thấy rằng đối số thứ hai, statistic là:

A function which when applied to data returns a vector containing the statistic(s) of interest. When sim = "parametric", the first argument to statistic must be the data. For each replicate a simulated dataset returned by ran.gen will be passed. In all other cases statistic must take at least two arguments. The first argument passed will always be the original data. The second will be a vector of indices, frequencies or weights which define the bootstrap sample.

Lưu ý rằng điều này có nghĩa chức năng của bạn cần được xác định để có ít nhất hai đối số. Bạn chỉ chấp nhận một (và sau đó bỏ qua nó hoàn toàn, đủ kỳ quặc).

Ý tưởng là bạn chuyển dữ liệu ban đầu của mình và vectơ các chỉ báo. Sau đó, bạn tính toán số liệu thống kê quan tâm của mình bằng cách đặt sẵn dữ liệu gốc bằng cách sử dụng các chỉ báo đó, đây sẽ là một "mẫu khởi động".

Vì vậy, thay vì điều này:

kUDoct<-function(i) kernel.area(oct[,5:6],oct[,10],kern="bivnorm",unin=c("m"),unout=c("km2")) 
bootoct<-boot(oct,kUDoct,R=1000) 

Bạn có thể muốn làm điều gì đó như thế này:

kUDoct<-function(dat,ind) kernel.area(dat[ind,5:6],dat[ind,10],kern="bivnorm",unin=c("m"),unout=c("km2")) 
bootoct<-boot(oct,kUDoct,R=1000) 

Nhưng tôi không thể chẩn đoán bất kỳ lỗi nào khác mà bạn có thể nhận được, như bạn ví dụ không hoàn toàn có thể tái sản xuất được.

+0

Cảm ơn bạn đã phản hồi nhanh chóng! Tôi nhận ra rằng tôi chỉ có một lý lẽ, vì vậy tôi đã làm một cái gì đó tương tự như đề nghị của bạn, mà đang chạy ngay bây giờ, vì vậy chúng tôi sẽ xem nếu nó hoạt động! kudoct <-function (dữ liệu, chỉ số) { kUDoct <-kernel.area (oct [, 5: 6], oct [, 10], kern = "bivnorm", unin = c ("m"), unout = c ("km2")) trả lại (tóm tắt (kUDoct)) } bootoct <-boot (dữ liệu = oct, thống kê = kudoct, R = 1000) – user1195564

+0

@ user1195564 Điều đó sẽ không hoạt động. Hãy xem xét kỹ ví dụ của tôi, cũng như các ví dụ trong '? Boot'. – joran

+0

ah, vâng tôi thấy tôi đang đi sai đâu. Tôi sẽ định dạng mọi thứ theo đề xuất của bạn và thử. CẢM ƠN! – user1195564

Các vấn đề liên quan