R markdown

데이터 가져오기

setwd("C:/Users/is2js/python_da/deep analysis(논문용 설문지 분석)")
table = read.csv('sens_spec_for_r_table.csv', header = T)
head(table)
##   Kind.of.medicinal.herbs Sensitivity Specitivity              Group
## 1                      SA        0.95       1.000 Ph.D. of Herbology
## 2                      SA        0.95       1.000 Ph.D. of Herbology
## 3                      SA        1.00       0.875 Ph.D. of Herbology
## 4                      SA        0.95       0.900 Ph.D. of Herbology
## 5                      SA        0.90       1.000 Ph.D. of Herbology
## 6                      SA        0.95       0.800 Ph.D. of Herbology

dplyr - filter + 사용자 정의 함수로 약재별로 나누기

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
herb <- function(table, herbname){
  a = filter(table, Kind.of.medicinal.herbs == herbname)
  return(a)
  
}

ac = herb(table,"AC")
amc = herb(table, "AMC")
sa = herb(table, "SA")

Kruskal-Wallis Test

  • 각 약재별로 kruskal.test(민감도칼럼 ~ 그룹칼럼)
  • Kruskal-Wallis test(비모수적 검정)을 사용해야한다. =>
  • H0 : 3그룹의 차이가 없다.
# n수가 적어 정규분포 안따르는 비모수검정 -> 3 그룹간의 차이를 검정
# (정규분포를 따르지 않는)AC에 대한 3그룹 민감도 차이가 없다(H0)를 검정
kruskal.test(ac$Sensitivity ~ ac$Group)  #p-value = 0.02285
## 
##  Kruskal-Wallis rank sum test
## 
## data:  ac$Sensitivity by ac$Group
## Kruskal-Wallis chi-squared = 7.5576, df = 2, p-value = 0.02285
kruskal.test(amc$Sensitivity ~ amc$Group)  #p-value = 0.3188
## 
##  Kruskal-Wallis rank sum test
## 
## data:  amc$Sensitivity by amc$Group
## Kruskal-Wallis chi-squared = 2.2864, df = 2, p-value = 0.3188
kruskal.test(sa$Sensitivity ~ sa$Group)  #p-value = 0.3099
## 
##  Kruskal-Wallis rank sum test
## 
## data:  sa$Sensitivity by sa$Group
## Kruskal-Wallis chi-squared = 2.3433, df = 2, p-value = 0.3099

사후검정 - 각 2군씩로 Mann-Whitney test by bonferroni’s method

  • “pgirmess” 패키지 - kruskalmc( 민감도칼럼, 그룹칼럼)
  • bonferroni’s method란 기존 유의수준(5%)에 nC2 = 2군씩 검정횟수를 나누어 유의수준을 낮추는 것
#install.packages("pgirmess")
library(pgirmess)

kruskalmc(ac$Sensitivity,ac$Group)
## Multiple comparison test after Kruskal-Wallis 
## p.value: 0.05 
## Comparisons
##                                    obs.dif critical.dif difference
## KMD-Ph.D. of Herbology            44.75000     44.74725       TRUE
## KMD-Undergraduates                 2.22973     27.19549      FALSE
## Ph.D. of Herbology-Undergraduates 42.52027     37.51044       TRUE
kruskalmc(amc$Sensitivity,amc$Group)
## Multiple comparison test after Kruskal-Wallis 
## p.value: 0.05 
## Comparisons
##                                      obs.dif critical.dif difference
## KMD-Ph.D. of Herbology            23.7916667     44.74725      FALSE
## KMD-Undergraduates                 0.4087838     27.19549      FALSE
## Ph.D. of Herbology-Undergraduates 23.3828829     37.51044      FALSE
kruskalmc(sa$Sensitivity,sa$Group)
## Multiple comparison test after Kruskal-Wallis 
## p.value: 0.05 
## Comparisons
##                                     obs.dif critical.dif difference
## KMD-Ph.D. of Herbology            26.875000     44.74725      FALSE
## KMD-Undergraduates                 4.600225     27.19549      FALSE
## Ph.D. of Herbology-Undergraduates 22.274775     37.51044      FALSE

+ Recent posts