2017-10-25 16 views
0

테이블 내의 서로 다른 열 사이의 상관 관계 테스트를 실행하려고합니다. 또한 부트 스트랩 방법을 사용하여 동일한 테스트를 실행합니다. 나는 결과를 비교하고 싶지만 그것들은 정확히 똑같은 결과라는 것을 알았다. 그래서 내가 잘못했는지 궁금합니다.R-do 부트 라이브러리 내에서 boot()를 사용하여 실수를했습니다.

DF는 20,000 행 * 7 열 data.table이며, 첫 번째 열은

아래는 내 부트 스트랩 코드의 핵심입니다. 확인하도록 도와주세요. 부트 스트랩 이후의 결과가 전체 데이터 세트를 실행하는 것과 동일 할 수 있습니까? 고맙습니다!

n = nrow(df) 
cor.small <- function(d,i= c(1:n)){ 
d2 <- d[i,] 
cormat <- cor(d2[,-1,with=FALSE]) 
upper <- get_upper_tri(cormat) 
return(upper) 
} 

result <- boot(data = df,statistic = cor.small, R= 999) 
+2

난 당신이 돈 의심을 ' 왜 우리가 부트 스트래핑을 사용하는지 안다. 나는 또한 당신의 문제가'boot '의 결과가 무엇을 의미하는지 이해하지 못한다고 생각한다. 어쨌든,'get_upper_tri'가 어떻게 정의되는지 추측하고 추측 한 후 빠른 검사는 코드가 예상대로 작동 함을 나타냅니다. – Roland

+0

boostrap 견적은'colMeans (result $ t)'입니다. 도움말 페이지,'Value' 섹션을 읽어보십시오 :'t0 데이터에 적용된 통계의 관측 값 '그리고'cor (df [, -1])'은 ('NA' 값없이) 얻는 매트릭스입니다. 또한'= c (1 : n)'을 없애는 것은'indices' 인자이기 때문에 호출마다 다릅니다. –

답변

0

당신은 (내가 뭔가와 함께 작동하도록 아이리스 데이터 집합을 사용했으며, 코드를 장소에서 약간 수정)이 같은 boot 함수를 호출해야합니다 :

cor.small <- function(d, i){ 
     cormat <- cor(d[i ,-1]) 
     upper <- cormat[lower.tri(cormat)] 
     return(upper) 
} 

df <- iris[ ,-5] 
nsamp = ceil(nrow(df)/2) # or use a different value 
nrun = 10 
set.seed(1) 
cor.small(df,sample(1:nsamp,nsamp,replace=TRUE)) 


boot(data = df,statistic = cor.small, R= nrun)