본문 바로가기
반응형

전체 글66

[R] 상관계수행렬 그리는 법 (psych 패키지 이용) - 이게 젤 나음 1. 데이터 iris 데이터를 이용합니다. > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa Species 는 수치형 데이터가 아니므로 제거해줍니다. > data=iris[,1:4] > head(data) Sepal.Length Sepal.Width Petal.Length Petal.Width 1 5.1 3.5 1.4 0.2 2 4.9 3.0 1.4 0.2 3 4... 2023. 8. 24.
R 시계열 두가지 그래프 (plot.ts vs ts.plot) R의 시계열 자료구조인 ts 자료구조의 그래프를 그려주는 함수는 두 가지가 있습니다. plot.ts 와 ts.plot 이 있습니다. 예시를 통해서 두 함수의 차이를 알아봅시다. tseries 패키지의 nino 데이터를 사용할 것입니다. tseries 를 먼저 설치합시다. install.packages("tseries") tseries 패키지와 nino 데이터를 불러옵니다. library(tseries) data(nino) nino 데이터의 앞부분만 살펴봅시다. > nino nino3 nino3.4 Jan 1950 23.97 25.01 Feb 1950 24.51 24.92 Mar 1950 26.65 26.41 Apr 1950 26.65 26.75 May 1950 25.91 26.30 Jun 1950 25... 2023. 1. 8.
R 시계열자료 정의, 그래프, 변환 R에서는 시계열 자료를 위한 자료구조가 따로 있습니다. ts 라는 자료구조인데요. time series 의 줄임말입니다. 1. 시계열 자료구조 만들기 ts 자료구조를 한번 만들어봅시다. 어떤 회사의 2022년 월간 자동차 판매량이 아래와 같다고 합시다. 1월 10대 2월 15대 3월 20대 4월 13대 5월 22대 6월 32대 7월 56대 8월 33대 9월 72대 10월 99대 11월 48대 12월 67대 위 데이터를 벡터자료구조를 이용해서 변수에 입력합시다. md=c(10,15,20,13,22,32,56,33,72,99,48,67) 시계열 자료구조인 ts로 만드는 방법은 아래와 같습니다. md1= ts(md,frequency=12,start=c(2022,1)) > md1 Jan Feb Mar Apr M.. 2023. 1. 8.
R 로지스틱 회귀분석 하는 법 (nodal 데이터 예시) 로지스틱 회귀분석은 독립변수가 여러개이고 종속변수가 한개인 경우 사용합니다. 독립변수는 연속형, 범주형 둘 다 가능하고 종속변수는 범주형이어야 합니다. 1. 데이터 살펴보기 로지스틱 회귀분석에 사용할 데이터는 boot 패키지의 nodal 데이터입니다. 아래와 같이 불러옵니다. library(boot) dt=nodal > head(dt) m r aged stage grade xray acid 1 1 1 0 1 1 1 1 2 1 1 0 1 1 1 1 3 1 1 0 1 1 1 1 4 1 1 0 1 1 1 1 5 1 1 0 1 1 1 1 6 1 0 0 1 1 1 1 변수 설명은 아래와 같습니다. r : 전립선암 양성 여부 aged : 연령 (60 이하는 0, 초과는 1) stage : 질병단계 (1이 더 심각).. 2023. 1. 8.
R 다항회귀분석 하는 방법 (Cars93 데이터 예시) 다중선형회귀분석은 독립변수가 여러개이고 종속변수가 한개인 경우에 사용합니다. 독립변수와 종속변수 모두 연속형 데이터인 경우 사용합니다. 1. 데이터 살펴보기 우리가 사용할 데이터를 살펴봅시다. 사용할 데이터는 MASS 패키지의 Cars93 데이터입니다. 자동차 가격, 마력, RPM, 길이 등의 데이터입니다. 총 93대의 자동차 정보가 있습니다. 변수가 27개나 되는 데이터입니다. 전부 사용하지는 않을 것이고 일부만 사용할 겁니다. 우리가 독립변수와 종속변수로 사용할 열이름은 아래와 같습니다. 독립변수 : Horsepower, RPM, Length, Wheelbase, Width, Weight 종속변수 : Price 종속변수인 Price 는 자동차 가격입니다. 자동차 가격을 예측하는 모델을 만들 것입니다... 2023. 1. 7.
[R] 상관계수행렬 그리는 법 (ggpairs 이용, 색구분) mtcars 대신 사용하려는 데이터 넣으면 됩니다. -0.9이하, 0.9이상에서 색이 변하는 것으로 되어 있음. 변경을 원하면 rampcol, match, fill 이부분 바꾸면 됨. # Load libraries library(tidyverse) library(GGally) # Load some example data mtcars 2023. 1. 6.
[R] 상관계수행렬 그리는 법 (ggpairs 이용) 1. 패키지 설치 및 불러오기 아래 패키지를 설치합니다. install.packages("ggplot2") install.packages("GGally") 설치한 패키지를 불러옵니다. library("ggplot2") library("GGally") 2. 데이터 iris 데이터를 이용합니다. > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa Species 는 수치형.. 2022. 12. 26.
R에서 분할표 만드는 방법 (빈도, 비율) R에서 빈도 분할표를 만들 때는 table 함수를, 비율 분할표를 만들 때는 prop.table 함수를 사용합니다. prop.table 함수에는 table 함수의 결과를 넣어줘야 합니다. 데이터는 한 열에는 독립변수, 나머지 열에는 종속변수가 오도록 만들어줘야 합니다. 아래는 예시입니다. #1.데이터 생성 set.seed(9999) male=rbinom(100,1,0.3) female=rbinom(100,1,0.7) #2. factor로 변환 male=factor(male,levels=c(0,1),labels=c('no','yes')) female=factor(female,levels=c(0,1),labels=c('no','yes')) #3. 데이터프레임으로 변환 dt=data.frame(sex=c(re.. 2021. 12. 30.
[R] 카이제곱검정의 사후검정 (+피셔정확검정의 사후검정) 먼저 rcompanion 패키지를 설치합니다. 해당 라이브러리 안에 있는 데이터와 함수를 이용할 것이기 때문입니다. install.packages("rcompanion") 설치한 패키지를 불러옵니다. library(rcompanion) 사용할 데이터는 아래와 같습니다. > data(Anderson) > Anderson Pass Fail Bloom 21 5 Cobblestone 6 11 Dougal 7 8 Heimlich 27 5 사후검정은 pairwiseNominalIndependence 함수를 사용합니다. > pairwiseNominalIndependence(Anderson,chisq = TRUE,method="bonferroni") Comparison p.Fisher p.adj.Fisher p.Gte.. 2021. 9. 10.
R에서 피셔의 정확검정 하는 방법 피셔의 정확검정은 기대빈도가 5 미만인 셀이 20%가 넘을 경우에 카이제곱검정 대신 수행하는 검정입니다. 아래 예시를 봅시다. 폐암환자 10명과 폐암이 아닌 사람 10명을 대상으로 흡연여부를 조사했습니다 . 폐암 비폐암 합계 흡연 3 9 12 비흡연 7 1 8 합계 10 10 20 기대빈도는 아래와 같이 계산됩니다. 합계빈도의 비율인 12:8을 각 열에 반영한 것입니다. 폐암 비폐암 합계 흡연 6 6 12 비흡연 4 4 8 합계 10 10 20 기대빈도가 5 미만인 셀이 전체 셀의 절반인 50% 입니다. 따라서 20%가 넘기 때문에 카이제곱검정이 아닌 피셔의 정확검정을 수행해야 합니다. 먼저 데이터를 만들겠습니다. > r1=c(3,9) > r2=c(7,1) > data=rbind(r1,r2) > data.. 2021. 9. 10.
R에서 왜도(skewness)와 첨도(kurtosis) 계산하는 법 moments 패키지가 필요합니다. 설치하고 불러옵니다. install.packages("moments") library(moments) 데이터를 생성합시다. 표준 정규분포에서 표본 100개를 뽑겠습니다. data=rnorm(100) 왜도와 첨도를 구합시다. > skewness(data) [1] 0.241982 > kurtosis(data) [1] 4.390912 2021. 8. 9.
[R통계] 선형회귀분석 간단 예제와 결과 해석 (p값이 왜 이렇게 여러개?) 1. 데이터 독립변수는 키, 종속변수는 몸무게입니다. 10명의 데이터입니다. #data height=c(158, 163, 142, 198, 172, 155, 165, 168, 175, 182) weight=c(53, 77, 58, 101, 73, 58, 78, 71, 68, 79) 2. 회귀분석 lm함수를 이용하여 아래와 같이 입력합니다. (종속변수~독립변수) 형식으로 입력합니다. 결과를 변수 result 에 저장합니다. #linear regression result=lm(weight~height) 3. 그래프 그래프를 그리면 아래와 같습니다. plot(height,weight) abline(result) text(mean(height),mean(weight)*1.1, paste("y=",round(re.. 2021. 6. 15.
[R] 상관계수행렬 그리는 법 (corrplot 패키지 이용) 1. 패키지 설치 corrplot 패키지를 설치하고 불러옵니다. install.packages("corrplot") library(corrplot) 2. 데이터 iris 데이터를 이용합니다. > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa Species 는 수치형 데이터가 아니므로 제거해줍니다. > data=iris[,1:4] > head(data) Sepal.L.. 2021. 6. 14.
[R] 상관계수행렬 그리는 법 (pairs 함수 이용) 1. 데이터 iris 데이터를 이용합니다. > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa Species 는 수치형 데이터가 아니므로 제거해줍니다. > data=iris[,1:4] > head(data) Sepal.Length Sepal.Width Petal.Length Petal.Width 1 5.1 3.5 1.4 0.2 2 4.9 3.0 1.4 0.2 3 4... 2021. 6. 14.
[R강의] 정규분포에서 표본추출하는 방법 rnorm 함수를 사용합니다. 표본개수, 평균, 표준편차를 입력하면 됩니다. rnorm(n, mean = 0, sd = 1) 한국인 키라고 가정하고 평균 170, 표준편차 30을 넣겠습니다. 500명의 표본을 추출하겠습니다. data=rnorm(400,170,30) 히스토그램으로 그려봅시다. hist(data) 2021. 3. 24.
[R통계] 최솟값,최댓값,중앙값,평균,제1사분위수,제3사분위수 한번에 구하기(summary) summary 함수는 최솟값,최댓값,중앙값,평균,제1사분위수,제3사분위수 한번에 구해주는 함수입니다. > summary(1:10) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.00 3.25 5.50 5.50 7.75 10.00 2020. 12. 30.
[R통계] 분위수 구하는 방법 quantile 함수는 분위수를 구해주고, IQR 함수는 사분위수 범위를 구해줍니다. > quantile(1:10) 0% 25% 50% 75% 100% 1.00 3.25 5.50 7.75 10.00 > IQR(1:10) [1] 4.5 2020. 12. 30.
R로 QQ-plot 그리는 방법 (정규성검정) QQ plot 은 두 변수의 분위수 그래프 입니다. 넓은 의미로는 두 변수가 같은 분포를 따르는지 비교할 때 사용하는데, 좁은 의미로는 정규성검정에 이용됩니다. 정규성검정에 이용될 때는 우리가 가진 변수와 정규분포를 따르는 변수를 대입합니다. 두 변수를 비교할 때는 qqplot 함수를, 정규분포와 비교할 때는 qqnorm 함수를 사용합니다. 이번 글에서는 정규성검정으로써의 qqplot을 다룰 것입니다. qqnorm 함수를 사용해봅시다. 데이터는 내장데이터인 iris 의 Sepal.Length를 이용하겠습니다. 아래와 같은 코드를 입력하면 그래프가 그려집니다. qqnorm(iris$Sepal.Length) x축은 정규분포를 따르는 확률변수이고, y축은 Sepal.Length 입니다. Sepal.Length.. 2020. 12. 29.
[R통계] 회귀분석 결측치 처리에서 omit 과 exclude 의 차이 회귀분석을 할 때 결측치를 처리하는 옵션은 na.action 입니다. 입력값은 아래 두가지 입니다. na.omit na.exclude na.omit 과 na.exclude 모두 결측값을 제외하는데, 결과 출력에 차이가 있습니다. na.omit 은 결과출력에서도 결측치를 제외하고 na.exclude 는 결과츨력에서는 결측치를 포함합니다. na.omit 적용 예시 > x=c(1,2,3,NA,NA) > y=c(2,3,5,7,11) > fit=lm(y~x,na.action=na.omit) > resid(fit) 1 2 3 0.1666667 -0.3333333 0.1666667 na.exclude 적용 예시 > x=c(1,2,3,NA,NA) > y=c(2,3,5,7,11) > fit=lm(y~x,na.action.. 2020. 12. 26.
[R통계] 회귀분석 표현식에서 . 의 의미 종속변수가 y이고, 독립변수가 x1,x2,x3라고 합시다. 데이터가 아래와 같이 입력되어 있다고 합시다. > mydata=data.frame(y=c(1,2,3),x1=c(1,3,5),x2=c(2,4,6),x3=c(1,4,7)) > mydata y x1 x2 x3 1 1 1 2 1 2 2 3 4 4 3 3 5 6 7 회귀분석을 하려면 아래와 같이 표현식을 입력해야 합니다. lm(y~x1+x2+x3, mydata) 위 표현식을 쉽게 입력하는 방법이 있습니다. 점(.)을 사용하는 것입니다. 점은 모든 독립변수를 포함한다는 의미입니다. lm(y~., mydata) 점(.) 을 이용한 다른 예시도 살펴봅시다. 아래 두 표현식은 동일한 의미입니다. lm(y~.-x1,mydata) lm(y~x2+x3) 아래 두 표현.. 2020. 12. 26.
[R통계] 회귀분석에서 모형식을 입력하는 방법 회귀분석에서 모형식은 아래와 같이 입력합니다. y ~ x1 + x2 + ... y는 종속변수이고, x는 독립변수입니다. 종속변수가 y이고, 독립변수가 x1과 x2라고 한다면 R코드로는 아래와 같이 표현합니다. lm(y~x1+x2) 교호작용, 절편 등도 모형에 포함할 수 있습니다. 모형식에 사용되는 기호는 아래와 같습니다. 기호 의미 예시 1 절편을 포함 +1 + 변수를 포함 +x1 - 변수를 제거 -x1 : 교호작용 포함 x1:x2 * 각 변수 포함 + 교호작용 포함 x1*x2 | 조건부 x1 | x2 ^ 각 변수 포함 + 3차까지의 교호작용 포함 (x1+x2+x3)^3 I 괄호 안의 변수를 포함 I(x1*x2) - 항제거 x1-1 %in% x2가 x1에 내포됨, x1+x1:x2 와 동일 x1+x2%in.. 2020. 12. 26.
[R통계] 모든 확률분포 한눈에 보기(이산, 연속) 1. 이산확률분포 분포이름 확률질량함수 누적분포함수 누적분포함수의 역함수 임의추출 이항분포 dbinom(x, size, prob) pinom(q, size, prob) qbinom(p, size, prob) rbinom(n, size, prob) 기하분포 dgeom(x, prob) pgeom(q, prob) qgeom(p, prob) rgeom(n, prob) 음이항분포 dnbinom(x, size, prob, mu) pnbinom(q, size, prob, mu) qnbinom(p, size, prob, mu) rnbinom(n, size, prob, mu) 푸아송분포 dpois(x, lambda) ppois(q, lambda) qpois(p, lambda) rpois(n, lambda) 초기하분포 d.. 2020. 12. 26.
R에서 상관계수 구하는 방법 (cor) R에서 상관계수 구하는 방법 (cor) R에서 두 변수의 상관계수를 구할 때는 cor 함수를 사용합니다. > X=c(1,2,3,4,5)> Y=c(1,2,4,4,5)> cor(X,Y)[1] 0.9622504 cor 함수를 데이터프레임에 적용하면 상관계수 행렬을 출력해줍니다. > df=data.frame(X=c(1,2,3,4,5),Y=c(1,1,2,3,4),Z=c(1,3,5,6,7))> cor(df) X Y ZX 1.0000000 0.9701425 0.9847982Y 0.9701425 1.0000000 0.9235481Z 0.9847982 0.9235481 1.0000000 2020. 11. 30.
R 데이터프레임에 분산,공분산 함수를 적용해보자 R 데이터프레임에 분산,공분산 함수를 적용해보자 데이터프레임에 분산 또는 공분산 함수를 적용하면 공분산행렬을 출력해줍니다. 공분산 행렬은 각 데이터 사이의 공분산을 구해서 행렬형태로 만든 것입니다. 예시를 통해 이해해봅시다. 먼저 데이터프레임을 하나 정의합시다. > df=data.frame(c1=c(1,2,3),c2=c(10,20,30),c3=c(100,200,300))> df c1 c2 c31 1 10 1002 2 20 2003 3 30 300 분산 함수를 적용해봅시다. > var(df) c1 c2 c3c1 1 10 100c2 10 100 1000c3 100 1000 10000 위 결과에서 c1와 c1이 만나는 곳에 있는 10은, c1과 c2데이터 사이의 공분산입니다. cov 함수를 적용해도 동일한 결.. 2020. 11. 30.
R 데이터프레임 열별 평균, 표준편차 구하기 R 데이터프레임 열별 평균, 표준편차 구하기 데이터프레임에서 열 별로 평균 등의 통계량을 구해봅시다. 먼저 데이터프레임을 하나 정의하겠습니다. > df=data.frame(c1=c(1,2,3),c2=c(10,20,30),c3=c(100,200,300))> df c1 c2 c31 1 10 1002 2 20 2003 3 30 300 각 열의 평균을 구해봅시다. apply 함수를 사용합니다. 아래와 같은 형식으로 사용하면 됩니다. apply(데이터,계산방향,적용함수) 계산방향은 1이 가로방향, 2가 세로방향입니다. 적용함수는 평균을 구할 것이므로, mean 함수를 넣어줍니다. > apply(df,2,mean)[1] 37 74 111 우리는 세로방향의 평균을 구하고 싶은 것이므로, 아래와 같이 적용합니다. > .. 2020. 11. 30.
R에서 평균, 표준편차 등 구할 때 NA 오류 해결방법 R에서 평균, 표준편차 등 구할 때 NA 오류 해결방법 데이터에 NA가 포함되어 있어 평균, 표준편차 등이 계산되지 않는 경우가 있습니다. > x=c(1,2,3,4,NA)> mean(x)[1] NA 이런 경우에는 na.rm 옵션을 True로 설정해주면 됩니다. na.rm 은 NA인 경우를 제거(remove)하겠다는 의미입니다. > mean(x,na.rm=TRUE)[1] 2.5 2020. 11. 30.
R에서 평균, 중앙값, 표준편차, 분산, 공분산 구하는 방법 R에서 평균, 중앙값, 표준편차, 분산, 공분산 구하는 방법 R에서 평균, 중앙값, 표준편차, 분산, 공분산 구하는 함수는 아래와 같습니다. 평균 mean(x)중앙값 median(x)표준편차 sd(x)분산 var(x)공분산 cov(x,y) 아래는 예시입니다. > x=1:100> y=100:200 > mean(x)[1] 50.5 > median(x)[1] 50.5 > sd(x)[1] 29.01149 > var(x)[1] 841.6667 > cov(x,y)Error in cov(x, y) : 호환되지 않는 차원들입니다 공분산을 구하려면 x와 y의 길이가 같아야 합니다. > x=1:100> y=101:200> cov(x,y)[1] 841.6667 2020. 11. 30.
[R통계분석] Fleiss's kappa (범주형 데이터의 신뢰도분석,이상검사자) [R통계분석] Fleiss's kappa (범주형 데이터의 신뢰도분석, 3이상검사자) 신뢰도분석을 할 때, 연속형 데이터는 ICC를 사용합니다. 범주형데이터에서는 코헨의 카파와 플레이즈 카파를 사용합니다. 셋의 차이는 아래와 같습니다. 연속형 : ICC범주형,2검사자 : Cohen's kappa범주형,3이상검사자 : Fleiss kappa R을 통해 Fleiss Kappa 를 구하는 방법을 알아봅시다. 먼저 예시를 소개하겠습니다. 예시에 사용할 데이터를 패키지에서 제공하기 때문에 먼저 패키지를 설치해야합니다. irr 패키지를 설치하고 불러옵시다. >>> install.pakages("irr")>>> library("irr") 데이터를 불러와서 md라는 변수에 저장합시다. >>> data("diagnose.. 2020. 11. 10.
[R통계분석] 코헨의 카파 Cohen's kappa (범주형 데이터의 신뢰도분석,2검사자) [R통계분석] 코헨의 카파 Cohen's kappa (범주형 데이터의 신뢰도분석,2검사자) #패키지 설치하고 불러오기install.packages("vcd")library("vcd") #데이터 정리하고 변수에 저장data("SexualFun")md=SexualFun #코헨 카바 구하기result = Kappa(SexualFun) #출력하기(결과와 CI)print(result,CI=TRUE) #출력하기(결과,weight)summary(result) 신뢰도분석을 할 때, 연속형 데이터는 ICC를 사용합니다. 범주형데이터에서는 코헨의 카파와 플레이즈 카파를 사용합니다. 셋의 차이는 아래와 같습니다. 연속형 : ICC범주형,2검사자 : Cohen's kappa 범주형,3이상검사자 : Fleiss kappa R을.. 2020. 11. 10.
[R 통계분석] 표본 추출하는 방법 두가지 [R 통계분석] 표본 추출하는 방법 두가지 R에서 표본을 추출하는 방법은 크게 두가지가 있습니다. 1) 직접 모집단을 설정하고 표본 추출하기2) 확률분포에서 추출하기(정규분포, 초기하분포 등) 하나씩 알아봅시다. 1) 직접 모집단을 설정하고 표본 추출하기 sample 함수를 사용합니다. 사용 방법은 아래와 같습니다. sample(x, size, replace=FALSE, prob=NULL) 아래는 각 입력값의 설명입니다. sample(모집단, 표본크기, 중복여부, 각각이 뽑힐 확률) 예를 들어봅시다. 1부터 10의 정수 값을 가지는 모집단에서 크기 3인 표본을 중복을 허용하여 뽑아보겠습니다. > sample(1:10,3,replace=TRUE)[1] 4 1 4 2) 확률분포에서 추출하기(정규분포, 초기하.. 2020. 9. 16.
반응형