본문 바로가기
반응형

전체 글66

R에서 ROC curve를 그리는 방법 ROC curve는 threshold의 변화에 따른 민감도와 특이도의 함수입니다. 이론이 궁금하신 분들은 아래 링크를 참고해주세요. https://hsm-edu.tistory.com/1033 R에서 ROC curve를 그릴 때 사용하는 대표적인 두 가지 함수가 있습니다. 각 함수를 사용해보기 전에 먼저 상황을 하나 설정하겠습니다. 어떤 병을 진단하는 기준으로 혈액에서 채취한 k값을 사용할 것이라 합시다. 얼마의 k값을 기준으로 해야하는지 정하기 위해 정상인 10명과, 환자 10명을 모집하여 k값을 측정했습니다. 정상 : 11.1, 14.3, 13.1, 12.5, 12.4, 12.3, 12.1, 10.4 ,14.4 ,12.9 환자 : 15.8, 13.5, 15.7, 16.3, 17.1, 17.8, 16.2.. 2020. 9. 7.
[R] 반복측정 분산분석 및 사후분석 (tukey, bonferroni) 반복측정 분산분석이란? 반복측정 분산분석은 서로 연관이 있는 셋 이상의 집단비교에 사용됩니다. 예를 들어봅시다. 피험자 30명을 모집하고 세 종류의 초콜릿을 먹고 각 초콜릿의 점수를 0~100점 사이로 매기라고 하였습니다. 이때 초콜릿 점수의 차이가 있는지를 알고 싶을 경우 반복측정 분산분석을 사용합니다. 세가지 초콜릿을 먹은 피험자 집단이 같기 때문에 세 초콜릿의 점수 데이터는 서로 독립이 아닙니다. 그룹이 2개라면 paired t-test를 해야하는 상황입니다. 이런 경우에 사용하는 분석방법이 반복측정 분산분석입니다. 영 어로는 repeated measure ANOVA, 줄여서 RM ANOVA 라고 부릅니다. 반복측정 분산분석의 조건 아래 세가지 조건을 만족해야 합니다. 1. 정규성 2. 등분산성 3.. 2020. 8. 26.
[R 통계검정] 일표본 비율검정, 이표본 비율검정 [R 통계검정] 비율검정 비율검정은 prop.test 함수를 사용합니다. 사용 방법은 아래와 같습니다. prop,test(사건 발행 횟수, 전체 시행 횟수) 어려운 검정은 아니라 예제를 보시면 이해가 되실 것입니다. #1. 일표본 비율검정 동전을 100번 던져서 앞면이 30번 나왔다. 앞면과 뒷면이 나온 비율의 유의차가 있는가? x=발생횟수 n=전체횟수 > prop.test(x=30,n=100,p=0.5) 1-sample proportions test with continuity correction data: 30 out of 100, null probability 0.5 X-squared = 15.21, df = 1, p-value = 9.619e-05 alternative hypothesis: tru.. 2020. 6. 22.
R에서 3개 이상 집단의 분산을 비교하는 방법(+사후검정) R에서 3개 이상 집단의 분산을 비교하는 방법(+사후검정) 세개 이상 집단의 분산을 비교하는 검정들은 levene's test 와 bartlett's test 등이 있다. 이들은 모든 집단의 분산이 같다는 귀무가설에 대한 p 값만 알려줄 뿐, 어느 집단 간에 차이가 있었는지는 알려주지 않습니다. 어느 집단 간에 차이가 있는지 사후검정을 해야하는데요. levene's test와 bartlett's test에 적용할 수 있는 사후검정 함수를 R에서는 찾지 못했습니다. 다른 방법을 통해 해결했는데요. 분산이 결국 편차제곱의 평균이므로, 각 원소의 편차제곱을 계산하고 이들의 평균비교를 해주면 됩니다. 아래 예시를 통해 알아봅시다. a,b,c 세 그룹을 생성했습니다. set.seed(1) a=sample(0:10.. 2020. 6. 3.
R에서 일원 분산분석 및 사후분석 하는 방법 코드만 급하신 분 #분산분석 result=aov(종속변수~독립변수,전체데이터) #p값 확인 summary(result) 일원분산분석이란? 분산분석은 3개 이상의 그룹의 평균을 비교할 때 사용하는 검정방법입니다. 독립변수와 종속변수의 수에 따라 아래와 같이 나뉩니다. 이번글에서 다루는 일원분산분석은 독립변수가 1개이고 종속변수도 1개인 경우입니다. 예를 들면 '세 반의 수학점수 평균 비교' 가 있습니다. 이 때 독립변수는 반의 종류이고 종속변수는 수학점수입니다. 일원분산분석의 귀무가설과 대립가설은 아래와 같습니다. 귀무가설 : 세 집단의 평균이 같다. 대립가설 : 적어도 어느 한 모집단은 다른 모집단과 평균이 다르다. 일원 분산분석의 조건 일원분산분석은 세가지 조건을 만족해야 합니다. 1) 독립성 2) 정.. 2020. 6. 1.
R 카이제곱검정,피셔정확검정,오즈비,오즈비신뢰구간 한번에 구하기 R 카이제곱검정,피셔정확검정,오즈비,오즈비신뢰구간 한번에 구하기 환자-대조군 연구 : 폐암환자 100명과 폐암이 아닌 사람 100명을 대상으로 지난 10년 동안 흡연 여부를 조사함. 폐암 비폐암 합계 흡연 30 10 40 비흡연 70 90 160 합계 100 100 200 위 예제를 이용할 것입니다. 굉장히 유용한 패키지가 있어서 사용하겠습니다. 아래 결과들을 한번에 출력해줍니다. 카이제곱검정 피셔정확검정 오즈비 오즈비신뢰구간 먼저 패키지를 설치합시다. install.packages("epitools") 아래와 같이 코딩합니다. oddsratio.wald 함수를 사용합니다. riskratio.wald를 사용하면 오즈비 대신 위험비를 계산해줍니다. library(epitools) r1=c(30,10) r2.. 2020. 5. 7.
R에서 카이제곱검정 하는 방법 R에서 카이제곱검정 하는 방법 환자-대조군 연구 : 폐암환자 100명과 폐암이 아닌 사람 100명을 대상으로 지난 10년 동안 흡연 여부를 조사함. 폐암 비폐암 합계 흡연 30 10 40 비흡연 70 90 160 합계 100 100 200 위 예제로 카이제곱검정을 해봅시다. 흡연유무가 폐암 유무와 연관성이 있는지를 검정하는 것입니다. 아래는 R코드입니다. r1=c(30,10) r2=c(70,90) data=rbind(r1,r2) chisq.test(data,correct=FALSE) chisq.test(data) 아래는 결과입니다. > chisq.test(data,correct=FALSE) Pearson's Chi-squared test data: data X-squared = 12.5, df = 1, .. 2020. 5. 5.
R에서 ICC(관찰자간,관찰자내 신뢰도 검정)하는 방법과 옵션 자세히 설명 R에서 ICC(관찰자간,관찰자내 신뢰도 검정)하는 방법과 옵션 자세히 설명 먼저 용어부터 정리하고 시작합시다. 측정자가 A,B,C 세명 있다고 합시다. 측정자 A가 같은 측정을 두번 반복했습니다. 이때 측정자 A가 반복한 두번의 측정이 얼마나 일치하는지를 알아보는 방법을 Intraclass correlation analysis 입니다. Intra는 '내부'라는 의미입니다. 이 분석을 통해 Intraclass correlation coerricient가 구해집니다. 우리가 ICC라고 부르는 값입니다. 이 값을 통해 우리는 Intraobser reliability 를 알 수 있습니다. 평가자 내 신뢰도, 관찰자 내 신뢰도 라고 부릅니다. 여러 측정자들 사이의 신뢰도 분석도 ICC를 통해서 구하긴 하지만 IC.. 2019. 12. 10.
R 피어슨 상관분석 R 피어슨 상관분석 #1. 방법 cor.test(x, y, alternative = c("two.sided", "less", "greater"), method = c("pearson", "kendall", "spearman"), exact = NULL, conf.level = 0.95, continuity = FALSE, ...) 스피어만이나 켄달의 타우 검정을 해야한다면 method 옵션을 입력해주면 됩니다. #2. 예제 R 내장 데이터 중 trees 데이터를 이용합니다. 먼저 trees 데이터를 살펴봅시다. > head(trees) Girth Height Volume 1 8.3 70 10.3 2 8.6 65 10.3 3 8.8 63 10.2 4 10.5 72 16.4 5 10.7 81 18.8 6 1.. 2019. 12. 2.
[R 통계분석] 윌콕슨 부호순위 검정 [R 통계분석] 윌콕슨 부호순위 검정 #1. 방법 wilcox.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired = TRUE, exact = NULL, correct = TRUE, conf.int = FALSE, conf.level = 0.95, ...) ▶ x,y 자리에 데이터 입력함. ▶ 대응표본 t검정 대신 사용하는 비모수검정. ▶ 정규성 검정이 기각될 경우 사용. ▶ paired 옵션을 TRUE로 설정할 경우 윌콕슨 순위합 검정이 수행됨. #2. 예제 > 코드 #데이터 생성 set.seed(1) height_before=rnorm(15,175,5) height_after=rnorm(15,165,5) #.. 2019. 11. 29.
[R] 대응표본 t 검정 대응표본 t검정이란? t검정은 두 집단의 평균을 비교할 때 사용합니다. 두 집단이 독립적인지, 서로 대응되어 있는지에 따라 독립포본 t검정과 대응표본 t검정 사이에서 선택해야 합니다. 대응표본 t검정은 두 집단이 대응되어 있는 경우에 사용합니다. 두 집단이 대응되어 있다는 것은 같은 대상에 대해 처리만 달리했다는 말입니다. 예를들면 50명의 피험자를 모집하여 탈모약을 먹이기 전과 후의 머리카락 수를 비교하는 것입니다. 비교하려는 두 집단의 구성원이 동일합니다. R에서 제공하는 함수 t.test 함수에서 paired 라는 옵션을 TRUE로 하여 사용합니다. t.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired .. 2019. 11. 29.
[R 통계분석] 윌콕슨 순위합 검정 (Mann–Whitney U test) [R 통계분석] 윌콕슨 순위합 검정 (Mann–Whitney U test) #1. 방법 wilcox.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired = FALSE, exact = NULL, correct = TRUE, conf.int = FALSE, conf.level = 0.95, ...) ▶ x,y 자리에 데이터 입력함. ▶ 독립표본 t검정 대신 사용하는 비모수검정. ▶ 정규성 검정이 기각될 경우 사용. ▶ Mann–Whitney U test 라고도 부름. #2. 예제 > 코드 #데이터 생성 set.seed(1) height_male=rnorm(15,175,5) height_female=rnorm(15,.. 2019. 11. 29.
[R 통계분석] 독립표본 t 검정 | 등분산 가정 [R 통계분석] 독립표본 t 검정 | 등분산 가정 #1. 방법 t.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired = FALSE, var.equal = TRUE, conf.level = 0.95, ...) ▶ x,y 자리에 데이터 입력함. ▶ var.equal=FALSE 가 디폴트 값, TRUE로 놓으면 등분산가정 t검정 수행. #2. 예제 > 코드 #데이터 생성 set.seed(1) height_male=rnorm(50,175,5) height_female=rnorm(50,165,5) #t검정 수행 #귀무가설 : height_male = height_female t.test(height_male, heig.. 2019. 11. 29.
[R 통계분석] 독립표본 t 검정 | 이분산 가정 [R 통계분석] 독립표본 t 검정 | 이분산 가정 #1. 방법 t.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired = FALSE, var.equal = FALSE, conf.level = 0.95, ...) ▶ x,y 자리에 데이터 입력함. ▶ var.equal=FALSE 가 디폴트 값, 이분산 가정 t검정을 수행. ▶ 이분산가정 t검정을 Welch's t-test라고 부름. #2. 예제 > 코드 #데이터 생성 set.seed(1) height_male=rnorm(50,175,5) height_female=rnorm(50,165,5) #t검정 수행 #귀무가설 : height_male = height_fema.. 2019. 11. 29.
[R 통계분석] 단일표본 t검정 [R 통계분석] 단일표본 t검정 #1. 방법 t.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 모집단 평균, paired = FALSE, var.equal = FALSE, conf.level = 0.95, ...) ▶ x에 데이터 입력, y는 입력하지 않음. ▶ mu=모집단평균 옵션 입력 시 단일표본 t검정 수 #2. 예제 > 코드 #데이터 생성 set.seed(1) height=rnorm(50,175,5) population_mean=177 #t검정 수행 #귀무가설 : height = population_mean t.test(height,mu=population_mean) #귀무가설 : height < population.. 2019. 11. 28.
[R 통계분석] Box's M test (공변량 행렬 동질성 검정) | biotools 패키지 [R 통계분석] Box's M test (공변량 행렬 동질성 검정) | biotools 패키지 #1. 방법 BoxM(data, group) data에는 반드시 변수가 2개 이상인 data.frame이 들어가야 합니다. 공분산행렬을 비교하기 때문입니다. #2. 예제 > 코드 #Box's M test를 하기 위해 biotools 패키지를 먼저 설치합니다. install.packages("biotools") #패키지 불러오기 library(biotools) #표본생성 set.seed(1) height_male=rnorm(50,0,1) height_female=rnorm(50,0,1) weight_male=rnorm(50,0,1) weight_female=rnorm(50,0,1) #형식에 맞게 수정 height.. 2019. 11. 28.
[R 통계분석] Box's M test (공변량 행렬 동질성 검정) | MVTests 패키지 [R 통계분석] Box's M test (공변량 행렬 동질성 검정) | MVTests 패키지 #1. 방법 BoxM(data, group) data에는 반드시 변수가 2개 이상인 data.frame이 들어가야 합니다. 공분산행렬을 비교하기 때문입니다. #2. 예제 > 코드 #Box's M test를 하기 위해 MVTests 패키지를 먼저 설치합니다. install.packages("MVTests") #패키지 불러오기 library(MVTests) #표본생성 set.seed(1) height_male=rnorm(50,0,1) height_female=rnorm(50,0,1) weight_male=rnorm(50,0,1) weight_female=rnorm(50,0,1) #형식에 맞게 수정 height_all.. 2019. 11. 28.
[R 통계분석] Bartlett test (등분산검정) [R 통계분석] Bartlett test (등분산검정) #1. 방법 bartlett.test(x, g, ...) y자리에 전체 데이터, group 자리에 분류기준을 입력한다. 예를들어 남녀 그룹의 키를 비교하는 경우, y자리에는 전체 키 데이터를 입력하고 group 자리에는 각 데이터의 성별을 입력한다. #2. 예제 > 코드 #표본생성 set.seed(1) group1=rnorm(50,0,1) group2=rnorm(50,0,1) #형식에 맞게 수정 y=c(group1,group2) group=c(rep(1,50),rep(2,50)) #Bartlett test 수행. bartlett.test(y,group) > 실행결과 > bartlett.test(y,group) Bartlett test of homog.. 2019. 11. 28.
[R 통계분석] Brown-Forsythe test (등분산검정) [R 통계분석] Brown-Forsythe test (등분산검정) #1. 방법 levene.test(y, group, location = c("median", "mean", "trim.mean"), trim.alpha = 0.25, bootstrap = FALSE, num.bootstrap = 1000, kruskal.test = FALSE, correction.method = c("none", "correction.factor", "zero.removal", "zero.correction")) y자리에 전체 데이터, group 자리에 분류기준을 입력한다. 예를들어 남녀 그룹의 키를 비교하는 경우, y자리에는 전체 키 데이터를 입력하고 group 자리에는 각 데이터의 성별을 입력한다. levene's t.. 2019. 11. 28.
[R] Levene's test (등분산검정) Levene's test 는 집단들의 분산이 같은지 여부를 검정할 때 사용합니다. 예제를 통해 이해해봅시다. 패키지 설치 및 불러우기 먼저 패키지를 설치합니다. install.packages("lawstat") 패키지를 불러옵니다. library(lawstat) 데이터 생성 예제에 사용될 테이터를 만들어봅시다. 두 집단의 키 데이터입니다. 그룹별로 50명을 추출하였습니다. set.seed(1) A=rnorm(50,175,10) B=rnorm(50,185,10) stack 형태의 데이터로 만들어줍니다. stack 형태의 데이터는 각 열에 독립변수와 종속변수가 입력된 데이터입니다. 위 데이터의 경우 독립변수는 그룹의 종류이고 종속변수는 키입니다. x=c(rep(1,50),rep(2,50)) y=c(A,B) .. 2019. 11. 28.
[R 통계분석] F test (등분산검정) [R 통계분석] F test (등분산검정) #1. 방법 var.test(x, y, ratio = 1, alternative = c("two.sided", "less", "greater"), conf.level = 0.95, ...) x,y 자리에 데이터 입력. #2. 예제 > 코드 #표본생성 set.seed(1) group1=rnorm(50,0,1) group2=rnorm(50,0,1) #F test 수행 var.test(group1,group2) > 실행결과 > var.test(group1,group2) F test to compare two variances data: group1 and group2 F = 0.73641, num df = 49, denom df = 49, p-value = 0.287.. 2019. 11. 28.
[R 통계분석] Shapiro-Wilk test (정규성 검정) [R 통계분석] Shapiro-Wilk test (정규성 검정) #1. 방법 shapiro.test(x) x 자리에 데이터 입력. #2. 예제 > 코드 #표본생성 set.seed(1) group1=rnorm(50,0,1) #ks test 수행 shapiro.test(group1) > 실행결과 > shapiro.test(group1) Shapiro-Wilk normality test data: group1 W = 0.96399, p-value = 0.1306 2019. 11. 28.
[R 통계분석] Anderson–Darling test (정규성 검정) [R 통계분석] Anderson–Darling test (정규성 검정) #1. 방법 ad.test(x) x 자리에 데이터 입력. #2. 예제 > 코드 #Anderson–Darling test를 하기 위해 nortest 패캐지를 먼저 설치합니다. install.packages("nortest") #패키지 불러오기 library(nortest)#표본생성 set.seed(1) group1=rnorm(50,0,1) #ad test 수행 ad.test(group1) > 실행결과 > ad.test(group1) Anderson-Darling normality test data: group1 A = 0.48194, p-value = 0.2213 2019. 11. 28.
[R 통계분석] Cramer-von Mises test (정규성 검정) [R 통계분석] Cramer-von Mises test (정규성 검정) #1. 방법 cvm.test(x) x 자리에 데이터 입력. #2. 예제 > 코드 #Cramer-von Mises test를 하기 위해 nortest 패캐지를 먼저 설치합니다. install.packages("nortest") #패키지 불러오기 library(nortest)#표본생성 set.seed(1) group1=rnorm(50,0,1) #CVM test 수행 cvm.test(group1) > 실행결과 > cvm.test(group1) Cramer-von Mises normality test data: group1 W = 0.067851, p-value = 0.2924 2019. 11. 28.
[R 통계분석] lilliefors test (정규성 검정) [R 통계분석] lilliefors test (정규성 검정) #1. 방법 lillie.test(x) x 자리에 데이터 입력. #2. 예제 > 코드 #lilliefors test를 하기 위해 nortest 패캐지를 먼저 설치합니다. install.packages("nortest") #패키지 불러오기 library(nortest) #표본생성 set.seed(1) group1=rnorm(50,0,1) #LF test 수행 lillie.test(group1) > 실행결과 > lillie.test(group1) Lilliefors (Kolmogorov-Smirnov) normality test data: group1 D = 0.088539, p-value = 0.4225 2019. 11. 28.
[R 통계분석] Kolmogorov-sminov test (정규성검정) [R 통계분석] Kolmogorov-sminov test (정규성검정) #1. 방법 ks.test(x, y, ..., alternative = c("two.sided", "less", "greater"), exact = NULL) x 자리에 데이터, y자리에 pnorm 입력. #2. 예제 > 코드 #표본생성 set.seed(1) group1=rnorm(50,0,1) #ks test 수행 ks.test(group1,pnorm) > 실행결과 > ks.test(group1,pnorm) One-sample Kolmogorov-Smirnov test data: group1 D = 0.13466, p-value = 0.2974 alternative hypothesis: two-sided 2019. 11. 28.
[R] 카이제곱분포(chi-squared distribution) 함수,사용법,표본추출 [R] 카이제곱분포(chi-squared distribution) 함수,사용법,표본추출 #1. 카이제곱분포와 관련된 함수 dchisq : 확률밀도함수(probability density function)pchisq : 누적분포함수(cumulative distribution function)qchisq : 누적분포함수의 역함수(inverse cumulative distribution function)rchisq : 임의추출 #2. 사용방법 누적분포함수의 경우 왼쪽꼬리가 디폴트값입니다. dchisq(x, df, ncp = 0, log = FALSE) pchisq(q, df, ncp = 0, lower.tail = TRUE, log.p = FALSE) qchisq(p, df, ncp = 0, lower.tai.. 2019. 11. 28.
[R] f분포(f distribution) 함수,사용법,표본추출 [R] f분포(f distribution) 함수,사용법,표본추출 #1. f분포와 관련된 함수 df : 확률밀도함수(probability density function)pf : 누적분포함수(cumulative distribution function)qf : 누적분포함수의 역함수(inverse cumulative distribution function)rf : 임의추출 #2. 사용방법 누적분포함수의 경우 왼쪽꼬리가 디폴트값입니다. df(x, df1, df2, ncp, log = FALSE) pf(q, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE) qf(p, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE) rf(n, df1, df.. 2019. 11. 28.
[R] t분포(t distribution) 함수,사용법,표본추출 [R] t분포(t distribution) 함수,사용법,표본추출 #1. t분포와 관련된 함수 dt : 확률밀도함수(probability density function)pt : 누적분포함수(cumulative distribution function)qt : 누적분포함수의 역함수(inverse cumulative distribution function)rt : 임의추출 #2. 사용방법 누적분포함수의 경우 왼쪽꼬리가 디폴트값입니다. dt(x, df, ncp, log = FALSE) pt(q, df, ncp, lower.tail = TRUE, log.p = FALSE) qt(p, df, ncp, lower.tail = TRUE, log.p = FALSE) rt(n, df, ncp) 입력변수를 쉽게 설명하면 아래.. 2019. 11. 28.
[R] 정규분포(normal distribution) 함수,사용법,표본추출 [R] 정규분포(normal distribution) 함수,사용법,표본추출 #1. 정규분포와 관련된 함수 dnorm : 확률밀도함수(probability density function)pnorm : 누적분포함수(cumulative distribution function)qnorm : 누적분포함수의 역함수(inverse cumulative distribution function)rnorm : 임의추출 #2. 사용방법 평균과 표준편차를 설정합니다. 입력하지 않으면 디폴트 값인 0과 1이 입력되어 표준정규분포함수가 됩니다. 누적분포함수의 경우 왼쪽꼬리가 디폴트값입니다. dnorm(x, mean = 0, sd = 1, log = FALSE)pnorm(q, mean = 0, sd = 1, lower.tail = .. 2019. 11. 28.
반응형