본문 바로가기
반응형

분류 전체보기464

[엑셀 통계] 59. 두 그룹, 셋 이상 그룹의 등분산검정 (levene's test) 지난 40강에서 levene's test 를 이용 하여 두 그룹 등분산검정을 했던 글은 지웠습니다. 오류가 있었습니다. 이번 글이 더 일반적인 내용이라 40강 내용을 포함합니다. 엑셀에서는 F검정이라는 등분산검정을 제공합니다. F검정의 한계는 두 그룹의 비교밖에 할 수 없다는 것입니다. 세 그룹 이상을 비교해야하는 경우 Levene(레빈) 검정을 합니다. Levene 검정은 두그룹의 비교도 가능하고, 세 그룹 이상의 비교도 가능합니다. 엑셀에서 제공하지 않는 검정방법이기 때문에 직접 수식을 정의해서 사용해야 합니다. 귀무가설과 대립가설 귀무가설 : 모든 그룹의 분산은 같다. 대립가설 : 분산이 서로 같지 않은 그룹이 존재한다. p값이 0.05보다 클 경우 분산이 같다고 할 수 있음. 통계량 검정통계량인 .. 2021. 8. 31.
[R강의] 122. 분산분석 (일원분산분석) t검정은 두 집단의 평균을 비교할 때 사용하는 통계분석이었습니다. 만약 세 그룹 이상을 비교하려면 어떤 검정 방법을 사용해야 할까요? 이런 경우 사용하는 방법이 '분산분석'입니다. 분산분석은 세 집단 이상의 평균을 비교할 때 사용하는 통계분석입니다. 분산분석은 독립변수의 개수와 종속변수의 개수에 따라 여러 종류로 나뉩니다. 가장 간단한 형태의 분산분석은 독립변수도 하나이고, 종속변수도 하나인 '일원분산분석'입니다. 영어로는 One-way ANOVA 입니다. 예를 들어 A,B,C 세 반의 수학점수 비교에 사용되는 방법이 일원분산분석입니다. 독립변수는 반의 종류, 종속변수는 수학점수 입니다. 독립변수(반의 종류) = {A,B,C} 종속변수(점수) = 0~100 인 정수 독립변수는 범주형, 종속변수는 수치형임.. 2021. 8. 31.
[R강의] 121. 축제거, 눈금제거, 축이름제거 그래프에서 축,눈금,축이름 제거하는 방법을 알아봅시다. 아래와 같이 정규분포 그래프를 하나 그리겠습니다. set.seed(999) x=seq(-4,4,0.01) y=dnorm(x) plot(x,y,type='l') 축,눈금, 축이름 제거 방법입니다. 주석으로 대신합니다. set.seed(999) x=seq(-4,4,0.01) y=dnorm(x) plot(x,y,type='l', axes=FALSE, #축제거거 xaxt='n', #x축 눈금 제거 yaxt='n', #y축 눈금 제거 ann=FALSE #축이름 제거 ) x축 이름 또는 y축 이름만 제거하기 원할 경우 아래 옵션을 사용합니다. xlab 또는 ylab에 ''을 입력하면 됩니다. 아래는 x축 이름만 제거한 예시입니다. set.seed(999) x=.. 2021. 8. 13.
[R강의] 120. for문에서 스킵할때 쓰는 next for문을 돌릴 때 특정 루프를 스킵해야하는 경우가 있습니다. 이때 사용하는 명령어가 next입니다. i에 1부터 10까지 넣으며 i를 출력하는 for문에서 i가 3인 경우를 건너뛰고 싶다고 합시다. 아래와 같이 next 명령어를 사용하면 됩니다. for (i in 1:10){ if (i==3){ next } print(i) } 아래는 결과입니다. 3이 출력되지 않은 것을 알 수 있습니다. > for (i in 1:10){ + if (i==3){ + next + } + print(i) + + } [1] 1 [1] 2 [1] 4 [1] 5 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10 2021. 8. 13.
[엑셀 통계] 58. 공백 제거하는 방법 엑셀에서 데이터를 다루다보면 아래와 같이 공백이 생기는 경우가 있습니다. 일일히 지워주는 것은 상당히 번거롭습니다. 공백을 한번에 없애는 방법을 알아봅시다. 공백을 없앨 셀을 선택하고 Ctrl+F 를 누릅니다. 바꾸기를 누르고 찾을내용에 한칸을 띄워줍니다. 공백을 입력하는 것입니다. 모두바꾸기를 클릭하면 아래와 같이 공백이 제거됩니다. 2021. 8. 12.
[엑셀 통계] 57. 합이 일정한 임의의 숫자들을 추출하는 방법 (실수편) rand() 함수를 이용하여 원하는 개수의 임의숫자를 추출합니다. 예시에서는 20개를 추출하겠습니다. 합을 구해줍니다. 합해서 나오기 원하는 값을 적습니다. 추출한 값에 목표합을 곱하고, 추출한 값의 합을 나눠줍니다. 합이 50인 임의 실수가 추출되었습니다. 수학적으로 이해해봅시다. 추출한 20개의 합을 T라고 합시다. $a_{1}+a_{1}+\cdots+a_{20}=T$ 각 값에 50/T를 곱했습니다. $a_{1}\cdot \frac{50}{T}+a_{1}\cdot \frac{50}{T}+\cdots+a_{20}\cdot \frac{50}{T}$ 아래와 같이 묶어줍시다. $\frac{50}{T}\cdot (a_{1}+a_{1}+\cdots+a_{20})$ 괄호 안의 값은 T입니다. 따라서 위 수식의 값.. 2021. 7. 14.
[R강의] 119. 정수를 쪼개서 각각의 숫자를 벡터로 만들기 (strsplit) 12345 라는 수가 있습니다. 이 수를 c(1,2,3,4,5) 라는 벡터로 만들고 싶습니다. 숫자가 작을 때는 직접 하면 되는데 숫자가 커지면 힘들어집니다. 코드를 이용해서 해봅시다. 먼저 아래 숫자를 변수에 입력합니다. a = 12345 위 숫자를 문자로 인식한 뒤 한 단어씩 나눠서 리스트로 만들어줍니다. 결과는 a_ch 라는 변수에 입력하겠습니다. a_ch=strsplit(as.character(a), "") 콘솔창에서 확인해보면 아래와 같습니다. > a_ch [[1]] [1] "1" "2" "3" "4" "5" 리스트인 것을 알 수 있습니다. 인덱싱을 통해 벡터로 만들어줍니다. > a_ch2=a_ch[[1]] > a_ch2 [1] "1" "2" "3" "4" "5" as.numeric 를 이용하여.. 2021. 7. 12.
[R강의] 118. 표기법 설정하기 (지수표기 vs 일반표기) R에서 숫자를 출력할 때 표기하는 방법은 크게 두가지가 있습니다. 지수표기법과 일반표기법입니다. 1100을 표기한다고 할 때 1.1e^2 는 지수표기법, 1100은 일반표기법입니다. R에서는 어떤 룰을 가지고 두 표기법 중 하나를 선택합니다. 정확히 어떤 룰인지는 저도 잘 모르겠습니다. 예를 들면 아래와 같습니다. > 1000 [1] 1000 > 1000000 [1] 1e+06 > 2222 [1] 2222 > 222222222222222 [1] 2.222222e+14 한쪽 표기 방법을 선택하고 싶은 경우 options(scipen=값) 을 설정해주면 됩니다. 값이 양수로 커질 수록 일반표기법이 우세해 지고, 음수로 커질 수록 지수 표기법이 우세해집니다. > options(scipen=999) > 2222.. 2021. 7. 11.
[R강의] 117. 출력 유효숫자 개수 설정하기 콘솔 창에 123.4512345 를 입력해봅시다. > 123.4512345 [1] 123.4512 일곱개의 유효숫자가 출력됩니다. 유효숫자의 디폴트 셋팅 값이 7이기 때문입니다. 디폴트 셋팅 값을 확인해봅시다. getOption 함수를 사용합니다. > getOption("digits") [1] 7 유효숫자 개수를 바꿔봅시다. options 함수를 사용합니다. > options(digits=25) Error in options(digits = 25) : invalid 'digits' parameter, allowed 0...22 25개를 입력하면 에러가 뜹니다. 최대 22개까지 입력이 가능합니다. 22개로 설정해봅시다. > options(digits=22) 몇개까지 입력되나 확인해봅시다. > 123.451.. 2021. 7. 11.
[엑셀 통계] 56. 엑셀 유효숫자가 몇개까지 입력될까 엑셀에서는 유효숫자가 최대 15개까지만 표시됩니다. 12345를 네번 입력했는데 15개를 제외한 나머지 숫자는 0으로 바뀝니다. 엑셀에서는 IEEE 754 라는 부동소수점 표기방식을 사용하기 때문이라고 합니다. 자세한 내용은 생략. 숫자형식을 포기한다면 여러자리를 입력할 수는 있습니다. 앞에 '를 입력하거나, 텍스트 형태로 입력할 수 있습니다. 2021. 7. 11.
[R강의] 116. 01,02,03,.. 형태의 벡터 만드는 방법 01,02,03,04...와 같은 벡터를 만드는 방법입니다. sprintf 함수를 사용합니다. sprintf 함수는 포멧팅 방식을 설정할 수 있습니다. sprintf(포멧팅 방식, 인자) ex) 01~50 까지의 벡터를 01,02,03...으로 출력 > num=sprintf("%02d", 1:50) > num [1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" [20] "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" [39] "39" "40" "41" "42" .. 2021. 6. 28.
[R강의] 115. 데이터프레임에서 한 열을 기준으로 나머지열도 정렬하는법 아래와 같은 데이터프레임이 있습니다. 내장데이터인 CO2 데이터입니다. > head(CO2,10) Plant Type Treatment conc uptake 1 Qn1 Quebec nonchilled 95 16.0 2 Qn1 Quebec nonchilled 175 30.4 3 Qn1 Quebec nonchilled 250 34.8 4 Qn1 Quebec nonchilled 350 37.2 5 Qn1 Quebec nonchilled 500 35.3 6 Qn1 Quebec nonchilled 675 39.2 7 Qn1 Quebec nonchilled 1000 39.7 8 Qn2 Quebec nonchilled 95 13.6 9 Qn2 Quebec nonchilled 175 27.3 10 Qn2 Quebec .. 2021. 6. 11.
[R강의] 114. 여러 그래프의 제목과 축이름 글자 크기 한번에 바꾸는법 아래와 같이 세개의 그래프를 그렸다고 합시다. par(mfrow=c(1,3)) x=seq(-4,4,0.01) y=dnorm(x) plot(x,y,type='l',main="확률밀도함수 PDF",xlab="X",ylab="f(X)") x=seq(-4,4,0.01) y=pnorm(x) plot(x,y,type='l',main="누적분포함수 CDF",xlab="X",ylab="cumulative P") x=seq(0,1,0.01) y=qnorm(x) plot(x,y,type='l',main="역누적분포함수",xlab="cumulative P",ylab="X") 글자 크기를 바꾸려면 각 plot 내부에 cex 옵션을 정의해야 하는데 번거롭습니다. par 함수를 이용하면 한번에 바꿀 수 있습니다. par(mfro.. 2021. 6. 11.
[R강의] 113. 패키지들 설치경로 확인하기 콘솔 창에 아래 명령어를 입력합니다. .libPaths() 제 경우는 두개의 경로가 나왔습니다. > .libPaths() [1] "C:/Users/Javis/Documents/R/win-library/4.0" "C:/Program Files/R/R-4.0.3/library" 왼쪽 경로에는 새로 설치한 패키지들이 들어있었고, 오른쪽 경로에는 R설치시 디폴트로 설치되는 패키지들이 있었습니다. 패키지 설치결로를 변경할 때는 아래와 같이 입력하시면 됩니다. .libPaths("원하는 경로") 2021. 6. 10.
[R강의] 112. 상위 5개 숫자 추출하기 상위 5개 숫자를 출력하는 방법입니다. 설명은 주석으로 대신합니다. #데이터 A=c(1,4,23,5,2,122,3,7,2,65) #내림차순정렬 후 슬라이싱 A_top5=sort(A,decreasing = TRUE)[1:5] 2021. 5. 31.
[R 패키지] KoNLP 설치방법 KoNLP 한국어 텍스트마이닝을 하는 패키지다. Heewon Jeon 이라는 분이 개발하셨다. 2020.02.01 이후로 업데이트가 없고, 이유는 모르겠지만 CRAN 에서 삭제되었다. CRAN 저장소에만 있다. install.packages 로는 설치가 불가하다. 아래는 설치방법이다. Step1. rtools 설치 아래 경로로 가서 설치한다. https://cran.r-project.org/bin/windows/Rtools/ Using Rtools40 on Windows Starting with R 4.0.0 (released April 2020), R for Windows uses a toolchain bundle called rtools40. This version of Rtools includes .. 2021. 5. 26.
[R강의] 111. 산점도 그래프 회전 산점도 그래프를 회전하는 방법에 대해 알아봅시다. 아래 그래프를 그려볼 것입니다. 상관분석 예시 그림을 만들때 사용하였습니다. 먼저 정규분포 함수에서 임의추출하여 x와 y를 생성합니다. #데이터 x=rnorm(1000,10,3) y=rnorm(1000,10,1) 그래프로 그려보면 아래와 같습니다. 의도적으로 상하방향이 납작하게 설정하였습니다. 표준편차를 작게 해주면 됩니다. #데이터 x=rnorm(1000,10,3) y=rnorm(1000,10,1) #plot plot(x,y,xlim=c(0,20),ylim=c(0,20),main="0deg") 회전하기 위해 회전행렬을 정의합니다. (a,b)를 $\theta$ 만큼 회전한 점 (a',b')를 구하는 방법은 아래와 같습니다. $\begin{bmatrix} .. 2021. 5. 26.
[R강의] 110. 데이터분석 결과를 '표'로 출력하는 방법 두 가지 검정결과 등을 커멘드 창에서 입력해서 보는 것이 불편합니다. t검정을 예로 들면, t검정 결과가 오른쪽 plot 창에 출력되면 편리할 것입니다. 또는 새 탭에 표 형식으로 출력할 수도 있습니다. 두 방법 모두 설명드리겠습니다. 한가지 상황을 가정하겠습니다. A,B 두 집단의 키와 몸무게 비교하는 상황입니다. 아래와 같은 표를 출력하는 것이 목적입니다. A집단 B집단 p-value 키 평균±표준편차 평균±표준편차 p값 몸무게 평균±표준편차 평균±표준편차 p값 1. View로 출력하는 방법 설명은 코드 주석으로 대신합니다. library(plotrix) library(dplyr) #데이터 생성 A_Height=rnorm(100,183,3) B_Height=rnorm(100,172,5) A_Weight=rno.. 2021. 5. 26.
[엑셀 통계] 55. 생년월일 날짜로 바꾸는 법 (ex. 20201111 -> 2020-11-11) 아래와 같이 구분기호 없이 입력된 생년월일의 서식을 날짜로 바꾸는 방법입니다. Step1) 바꾸려는 셀을 선택하고 [데이터] 탭에서 [텍스트 나누기]를 클릭합니다. Step2) 다음을 누릅니다. 전부 체크 해제합니다. Step3) 다음을 누릅니다. [열 데이터 서식]에서 [날짜]를 선택해줍니다. Step4) 마침을 클릭하면 아래와 같이 날짜형태로 변경됩니다. 2021. 5. 14.
[엑셀 통계] 54. 모평균 구간추정,신뢰구간 (모분산이 알려진 경우) 신뢰구간 모평균 추정에서 95%신뢰구간과 99% 신뢰구간은 아래와 같습니다. $\bar{X}_{1} -1.96\cdot \frac{\sigma}{\sqrt{n}} \leq \mu \leq \bar{X}_{1} +1.96\cdot \frac{\sigma}{\sqrt{n}}$ $\bar{X}_{1} -2.58\cdot \frac{\sigma}{\sqrt{n}} \leq \mu \leq \bar{X}_{1} +2.58\cdot \frac{\sigma}{\sqrt{n}}$ $\bar{X}_{1}$ 은 우리가 뽑은 표본의 평균, $\mu$ 는 모평균, $\sigma$ 는 모표준편차입니다. 엑셀에서 구하기 1) 함수 소개 신뢰구간은 Confidence 함수를 이용하여 구합니다. 아래와 같이 사용합니다. CONFID.. 2021. 5. 9.
[엑셀 통계] 53. 엑셀로 파레토차트 그리는 방법 파레토 차트는 막대그래프와, 꺾은선 그래프로 된 누적백분위 그래프의 혼합형입니다. Step1. 데이터 살펴보기 다섯 사람의 소득데이터 Step2. 데이터 가공 1) 소득에 대해 내림차순 정렬 2) 비율 구하기 3) 누적비율 구하기 Step3. 그래프 그리기 이름,소득,선택하고 아래 그림의 순서로 진행합니다. Step4. 결과 파레토차트가 그려집니다. 비율,누적비율 데이터는 그래프그릴 때는 사용되지는 않지만 값 확인을 위해 구한 것입니다. 2021. 5. 7.
[엑셀 통계] 52. 평균,표준편차,중앙값 등 통계량 한번에 구하는법 평균,표준오차,중앙값,최빈값,표준편차,분산,첨도,왜도,범위,최솟값,최댓값,합,관측수를 한번에 출력하는 방법입니다. Step1 [데이터 탭] - [데이터분석] -[기술통계법]-[확인] Step 2. [입력범위에 자료 선택]-[출력범위 선택]-[요약통계량 체크]-[확인] 결과 2021. 5. 7.
[엑셀통계] 51. 특정 단어가 포함된 행 일괄 삭제 방법 특정한 단어가 포함된 행을 한번에 제거하는 방법입니다. 아래 엑셀파일을 사용하겠습니다. kostat 에서 다운받은 나이 별 암 발병 데이터입니다. 먼저 전체선택을 하고 우측의 필터를 클릭합니다. 아래와 같이 필터가 생깁니다. 성별에서 "계"를 없애고 싶다고 합시다. B열을 선택하고 Ctrl+F 를 클릭합니다. "계"를 입력하고 모두찾기를 클릭합니다. 아래 부분을 클릭하고 Ctrl+A 를 눌러 전체 선택해줍니다. 아래 그림처럼 [시트 행 삭제] 를 클릭합니다. 성별에서 "계"가 사라진 것을 알 수 있습니다. 2021. 5. 7.
[엑셀통계] 50. 아주 유용한 필터 기능 엑셀의 필터 기능은 데이터를 항목화 해주고 원하는 항목만 보이게 할 수 있는 기능입니다. Step1 표에 헤더가 있어야 하구요. 헤더에 해당되는 행을 선택합니다. Step2 아래 그림과 같이 정렬 및 필터를 클릭하고 필터를 눌러줍니다. Step3 각 행별로 생성되는 화살표를 클릭하여 원하는 항목을 보이고 숨길 수 있습니다. 2021. 5. 7.
[엑셀 Q&A] 산점도 일부 데이터로 추세선 그리는 방법 아래 상태에서 시작합시다. 빨간 부분으로만 그래프를 그리고 싶은 상황이라고 합시다. 그래프 상에서 일부 점을 선택해서 산점도를 그리는 방법은 없는 것 같습니다. 제가 찾은 방법으로 설명드리겠습니다. 그래프에 우클릭을 하고 데이터 선택을 클릭하면 아래 창이 뜹니다. 추가를 클릭합니다. 계열 이름에 추세선2라고 입력합니다. 아무 이름이나 입력해도 됩니다. 계열 X값과 Y값에 우리가 추세선을 그리고 싶은 점들을 왼쪽 데이터에서 선택합니다. 확인을 누르면 아래와 같이 다른 색으로 점이 생성됩니다. 이 점들만 선택하고 우클릭한 뒤, 추세선 추가를 누르시면 아래와 같이 추세선이 생성됩니다. +데이터를 연속적으로 선택하지 않고 띄엄띄엄 선택하려면 데이터 입력 시 컨트롤을 누르고 선택해주시면 됩니다. 2021. 4. 23.
[R 크롤링] 12. 코스피, 코스닥, 코넥스 목록 따로 가져오기 지난 글에서 CSV를 다운로드 받고 네트워크 정보를 얻어오는 부분을 봅시다. 구분에 '전체'가 체크되어 있습니다. CSV 버튼을 클릭하면 우측에 파일 두개가 생성됩니다. generate.cmd 파일을 클릭해봅시다. mktId 에 ALL이 입력되어 있습니다. 크롤링에도 이 값을 사용했습니다. 이번에는 KOSPI를 체크하고 같은 과정을 반복해봅시다. 이번에는 mktId가 STK로 바뀌었습니다. 지난 크롤링 코드를 가져옵시다. library(httr) library(rvest) library(readr) otp_url = 'http://data.krx.co.kr/comm/fileDn/GenerateOTP/generate.cmd' otp_form_data = list( mktId = 'ALL', share = .. 2021. 4. 7.
[R 크롤링] 11. 한국거래소에서 전체 상장종목 목록 가져오기(어려운 버전) Step1. 홈페이지 접속하기 한국거래소 홈페이지에 들어갑니다. http://www.krx.co.kr/main/main.jsp 상단 탭의 [정보데이터시스템]을 클릭합니다. 정보데이터시스템 화면에서 좌측 탭의 [종목정보]-[전종목 기본정보]를 클릭합니다. Step2. 네트워크 정보 확인 우클릭 [검사]를 클릭합니다. Network 탭을 클릭합니다. 다운로드 버튼을 클릭하고 CSV를 다운받습니다. 네트워크 탭에 아래 두 파일이 생깁니다. generate.cmd : OTP 생성 download.cmd : 생성한 OTP를 제출하고 파일을 다운로드함. Step3. OTP 받아오기 먼저 OTP를 받아옵시다. GenerateOTP를 눌러보면, 우측에 Request URL 이 있을 것입니다. POST 방식입니다. 스크.. 2021. 4. 7.
[R 크롤링] 10. R크롤링 함수 모음 1-1. HTML 가져오기 (GET 방식) #라이브러리 불러오기 library(httr) library(rvest) #GET 함수로 서버에 정보 요청하기 url = '주소' get_url = GET(url) #read_html 함수로 html 코드 읽기 my_html=read_html(get_url,encoding='utf-8') 1-2. HTML 가져오기 (POST 방식) #라이브러리 불러오기 library(httr) library(rvest) #GET 함수로 서버에 정보 요청하기 url = '주소' get_url = POST(url, body = list( method = ' ', ... )) #read_html 함수로 html 코드 읽기 my_html=read_html(get_url,encoding.. 2021. 4. 7.
[R 크롤링] 9. GET 방식과 POST 방식의 차이 웹브라우저의 원리는 URL 주소를 통해 서버에 정보를 요청하고 받아오는 것입니다. 요청하는 방식을 method라고 하는데요. 대표적인 방법에는 GET 방식과 POST 방식이 있습니다. 웹브라우저를 공부하는 강의가 아니므로 크롤링의 관점에서 필요한 정도의 설명만 드리도록 하겠습니다. 1) GET 방식 - URL 에 요청내용을 추가해서 넣음. 물음표 ? 뒤에 내용을 넣음 - 예시 : 네이버 증시에서 코스피 현황을 보는 URL은 아래와 같음. 물음표 뒤에 code=KOSPI 를 붙여서 요청함. https://finance.naver.com/sise/sise_index.nhn?code=KOSPI 코스닥이 요청되면 아래와 같음. https://finance.naver.com/sise/sise_index.nhn?c.. 2021. 3. 24.
[R 크롤링] 8. 웹브라우저의 원리 간단 설명 이번시간에는 웹브라우저의 원리를 간단히 설명드리겠습니다. 교보문고 홈페이지에 들어가서 '베스트' 버튼을 클릭해봅시다. 우리가 위에서 '베스트' 버튼을 클릭하는 순간 아래 URL이 서버로 요청(Request)됩니다. 서버는 교보문고에서 운영하는 서버입니다. 외주를 줬을 수도 있구요. 서버는 하나의 컴퓨터입니다. 서버에는 우리가 요청하는 정보들이 저장되어 있습니다. 교보문고의 서버에는 분야별 종합베스트셀러 정보가 있고, 우리에 요청에 응답(Response)하여이 정보를 우리 컴퓨터로 보내주는 것입니다. (더 자세히는 저도 아직 모릅니다;) http://www.kyobobook.co.kr/bestSellerNew/bestseller.laf?orderClick=d79 우리가 '베스트'를 클릭했을 때, 이동된 화.. 2021. 3. 24.
반응형