2017-03-07 11 views
0

질문은 다음과 같이 주어진다 :어떻게 이진 t- 통계를 나타낼까요?

파일 diabetes.csv를 읽는다. BMI와 결과라는 두 가지 변수가 있습니다. 0과 BMI의 표준 편차 모두 성과 동일하다 1 실시 가설하는 비모수 개의 샘플 테스트 데이터 중 일부 데이터 세트에

bmi <- diabetes$BMI 
bmi 
outcome <- diabetes$Outcome 
outcome 

n <- length(bmi) 

# tstat 
tstat <- ??? 

# Describe the population and draw synthetic samples 
f1 <- function() 
{ 
    x <- c(bmi, outcome) 
    x <- sample(x) 
    m1 <- sd(x[1:n]) 
    m2 <- sd(x[(n+1):length(x)]) 
    return(m1 - m2) 
} 

# Create sampling distribution 
sdist <- replicate(10000, f1()) 
plot(density(sdist)) 

# Gap 
gap <- abs(mean(sdist) - tstat) 
abline(v = mean(sdist) + c(-1,1) * gap, col = "dark orange") 
s1 <- sdist[sdist <(mean(sdist - gap)) | sdist >(mean(sdist + gap))] 
pvalue <- length(s1)/length(sdist) 
pvalue 

값 : 변수 결과는 두 값을 취 "당뇨병"이라고합니다. 내 질문은 결과가 바이너리이기 때문에 "t- 통계"를 어떻게 표현할 것인가?

답변

0

사용이 코드 :

# Sort the table diabetes on accending order of Outcome to separate the BMI 
# values with outcome = 0 and BMI values with outcome = 1 

diabetes = diabetes[order(diabetes$Outcome),] 
View(diabetes) 

# Find the number of values with outcome = 0 

n = length(which(diabetes$Outcome == 0)) 

# Find total number of rows 

l = length(diabetes$BMI)    

# Find BMI values to create the sample later on 

g = diabetes$BMI       

# Create function to take the values of BMI and shuffle it every time and 
# to find the difference between the standard deviations 

f1 = function() 
{ 
    x = sample(g)    
    z = abs(sd(x[1:n]) - sd(x[(n+1):l])) 
    return(z) 
} 

# Replicate the function several times 

dist = replicate(100000,f1())   

# Plot density of distribution 

plot(density(dist))      

polygon(density(dist),col="green") 


diabetes0 = diabetes[diabetes$Outcome == 0,] 
diabetes1 = diabetes[diabetes$Outcome == 1,] 

View(diabetes0) 
View(diabetes1) 

# Find the difference between standard deviation of BMI when outcome = 0 and 
# when outcome = 1 

tstat = abs(sd(diabetes0$BMI) - sd(diabetes1$BMI))  

tstat 

abline(v=tstat)           
rside = dist[dist>tstat]  


pvalue = length(rside)/length(dist) 
pvalue