मैं एक युग्मित क्रमचय t-परीक्षण करने का प्रयास कर रहा हूँ। मुझे "t.star[r, ] <-res[[r]] में एक त्रुटि मिलती है: मैट्रिक्स पर सबस्क्रिप्ट की गलत संख्या"। मैंने जो कोड लिखा है वह नीचे है। किसी भी संकेत की सराहना की।

library(RVAideMemoire)
library(boot)
library(xlsx)


mydata <- read.xlsx("C:/data_bootstrap.xlsx",1)

results = boot(mydata,statistic=sample_mean,R=500) 

print (results)

sample_mean <- function(mydata, indices) {

  sam=mydata[indices,1]

  sam1=mydata[indices,2]
 
  
  bar = perm.t.test(sam,sam1,paired=TRUE,nperm=500)
 
return(bar)
 
}

कच्चा डेटा, लिंक की कोई आवश्यकता नहीं:

structure(list(Random = c(11L, 10L, 11L, 11L, 10L, 10L, 36L, 11L, 10L, 16L, 16L, 10L, 16L, 10L, 16L, 10L, 11L, 11L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 10L, 10L, 10L, 11L), Statement = c(11L, 10L, 11L, 10L, 10L, 16L, 16L, 10L, 10L, 16L, 11L, 11L, 10L, 10L, 16L, 11L, 10L, 11L, 16L, 10L, 11L, 10L, 16L, 10L, 10L, 10L, 11L, 10L, 10L)), class = "data.frame", row.names = c(NA, -29L))
-1
user1174152 17 सितंबर 2020, 19:28

1 उत्तर

सबसे बढ़िया उत्तर

boot() फ़ंक्शन के लिए इसके statistic तर्क की आवश्यकता होती है, जो एक सदिश लौटाता है। आपका sample_mean फ़ंक्शन "htest" वर्ग की एक सूची देता है क्योंकि वह perm.t.test() का आउटपुट है। फ़ंक्शन नाम के आधार पर, मुझे लगता है कि आप उस परीक्षण से अंतर के साधनों का अनुमान चाहते हैं।

यदि आप निम्नानुसार दिखने के लिए अपना फ़ंक्शन बदलते हैं, तो कोड काम करता है।

sample_mean <- function(mydata, indices) {
  
  sam=mydata[indices,1]
  
  sam1=mydata[indices,2]
  
  
  bar = perm.t.test(sam,sam1,paired=TRUE,nperm=500)
  
  return(bar$estimate)
}

यदि आप perm.t.test() से भिन्न आउटपुट चाहते हैं, तो $estimate को $statistic या $p.value जैसी किसी अन्य चीज़ के लिए स्वैप करें।

यहां boot का R=10 के साथ एक उदाहरण दिया गया है (प्रबंधनीय होने के लिए):

results = boot(mydata,statistic=sample_mean,R=10) 
print(results)

ORDINARY NONPARAMETRIC BOOTSTRAP


Call:
boot(data = mydata, statistic = sample_mean, R = 10)


Bootstrap Statistics :
     original    bias    std. error
t1* 0.5172414 0.1206897    0.720067
1
Ben Norris 17 सितंबर 2020, 18:27