2012-04-23 3 views
6

위치 예상치 데이터베이스를 보유하고 있으며 월간 커널 사용 분포를 계산하려고합니다. R에서 adehabitat 패키지를 사용하여이 작업을 수행 할 수 있지만 데이터베이스에서 샘플링 한 부트 스트랩을 사용하여이 값에 대한 95 % 신뢰 구간을 계산하고 싶습니다. 오늘 부트 패키지를 실험 해 보았습니다.하지만 저는 여전히 R에 익숙하지 않고 좀 더 전문적인 도움이 필요합니다! 내가 갖는 주요 오류 메시지는 다음과 같습니다부트 스트래핑 : 통계 오류 (데이터, 원본, ...) : 사용되지 않은 인수 (원본)

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 
열 5

6은 각각 X 인 및 Y 위치 : 여기

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

내가 사용하고 파일을 살펴입니다 . 다른 달 (예 : "oct", "nov"등의 파일 가져 오는 중)에 대해이 데이터 집합의 하위 집합입니다. adehabitat 패키지의 kernelUD 함수를 부트 스트랩을 호출 할 수있는 함수로 설정하려고했지만 지금까지 행운이 없었습니다.

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

+1

'커널. 영역'이란 무엇입니까? '모두'는 어디 있습니까? 'oct '는 어떻게 생겼습니까? 왜'kudoct'는 몸에 색인'i'을 사용하지 않습니까? –

답변

5

글쎄, 당신은 데있어 문제는 문서가 당신을 지시대로 boot 기능을 사용하지 않을 것입니다. 이 함수는 적어도이 개 인수를 정의해야 의미

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.

하는 것으로 : ?boot에서 우리는 두 번째 인수, statistic는 것을 알 수있다. 너는 단 하나를 받아 들인다. (그리고 그것을 완전히 무시한다.

아이디어는 원본 데이터와 indicies의 벡터를 전달한다는 것입니다. 그런 다음 "부트 스트랩 샘플"을 구성하는 표시를 사용하여 원래 데이터를 서브 세트 화하여 관심 통계를 계산합니다. 그래서 그 대신이의

는 :

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

당신은 아마 같은 것을 할 싶어 :

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) 

그러나 나는, 당신이 얻을 수있는 다른 오류를 진단 할 수 있습니다 예는 완전히 재현 할 수 없습니다.

+0

빠른 응답을 보내 주셔서 감사합니다! 나는 단지 하나의 논쟁 만 가지고 있다는 것을 깨달았습니다. 그래서 저는 지금 실행중인 당신의 제안과 비슷한 것을했습니다. 그래서 그것이 작동하는지 봅시다! kudoct <-function (data, indices) { kUDoct <-kernel.area (oct [, 5 : 6], oct [, 10], kern = "bivnorm", unin = c ("m"), unout = c ("km2") bootoct <-boot (data = oct, statistic = kudoct, R = 1000) – user1195564

+0

@ user1195564 이렇게하면 작동하지 않습니다. 나의 예제와'? boot'의 예를주의 깊게보십시오. – joran

+0

아, 그래, 내가 어디로 잘못 가고 있는지 알 겠어. 귀하의 제안에 따라 형식을 지정하고 시도해 보겠습니다. 감사! – user1195564

관련 문제