데이터 정보처리 입문 - Introduction to Data Processing
학교에서 배운 내용을 다시 복습할 겸, 책 하나를 내가 중요하다고 생각하고 모르는 것 기준으로 정리해보았다.
데이터 분석 절차
데이터 분석 소프트웨어
SAS: 자료의 처리기능이 뛰어남
SPSS
S-PLUS
R: 무료 다운로드, 무료 통계 소프트웨어이지만 기능이 뛰어남. 자료처리 및 그래픽스 분야에서도 탁월
S-LINK: 국내 기술로 개발되었으며, 사용이 매우 간편
Minitab
Excel 등등
연속형 자료 정리
그래프(히스토그램, 정도표, 상자그림, 줄기-잎 그림 등)나 기술통계량을 구하여 특성을 파악
① 기술통계량
(1) 중심위치의 측도
평균, 중앙값, 최빈값등
- 평균(가장 많이 사용)
- 중앙값: 자료를 크기 순으로 나열할 때 중앙에 놓이는 값
- 최빈값: 가료 중 가장 빈도가 많은 값
R에서는 아래와 같이 사용한다.
(2) 산포도의 측도(⇨ 자료가 흩어진 정도를 수치로 측정하는 것)
산포도의 측도: 분산과 표준편차, 변이계수, 범위, 사분위수범위등이 있다.
분산(자료값과 평균의 거리를 제곱하여 합을 구한 후 자료의 수로 나눈 것)
⇨ 자료가 평균을 중심으로 많이 흩어져 있으면 분산이 커지고, 자료가 평균 주위에 몰려 있으면 분산이 작아짐
표준편차(분산의 제곱근)
자료의 개수나 측정단위가 다은 두 개 이상의 자료에 대한 표쥰편차를 비교하는 것은 무의미하다.
⇨ 이런 경우에 사용하는 측도가 표준편차를 평균으로 나눈 표준화된 표준편자인 변이계수(C)
범위(최댓값 - 최솟값)
⇨ 계산은 간편하지만 극단점이 있는 경우, 올바른 산포의 측도가 되지 못한다.
사분위수범위(범위의 단점을 보완)
⇨ P% 백분위수: 자료를 작은 것부터 큰 것까지 순서대로 놓았을 때 대력 P%번째 자료(interquartile range, IOR)
제 3사분위수에서 제 1사분위수를 뺀 값
따라서, IQR = Q3 - Q1
R에서는
> IQR(aval)
② 연속형 자료의 그래프
(1) 히스토그램(연속인 자료를 일정한 계급으로 나누어 계급에 속한 도수를 정리한 도수분포표를 이용한 그래프)
> a = rnorm(200)
> hist(a, col="RED")
⇨ 연속인 자료의 분포를 살펴볼 때 이용되는 그래프이며, 많은 양의 자료를 볼 때 적합
(2) 줄기-잎 그림(분포의 대략적인 형태를 살펴보기 위한 그래프)
> score = scan("C:\data\datascore.txt")
> stem(score)
⇨ 군집의 존재 여부, 집중도가 높은 구간, 대칭성 여부, 자료의 범위 및 산포, 특이값의 존재 여부 등을 확일할 때 적합
(3) 상자그림(다섯숫자요약 - 최솟값, 최댓값, 중앙값, 제1사분위수, 제3사분위수 이용. 이 수치자료의 요약을 특이값과 함께 그래프로 표햔한 것)
⇨ 분포의 상태, 특이값의 유무, 여러 집단의 수치자료를 비교할 때 적합(2개의 데이터를 비주얼적으로 비교할 때 가장 적합)
R이란
자료처리, 통계분석, 그래픽 분야 등에 탁월한 기능을 가지고 있는 통계 시스템
특징
1. 통계 소프트웨어 패키지
2. 대화형 언어(입력 즉시 실행)
3. 객체지향 시스템
R에서 자료 읽기(scan, read.table, read.csv 등)
(1) 텍스트 자료
> ex = read.table("C:\data\ex.txt", header=T) // 첫 번째 케이스가 변수이름으로 되어있음을 의미
> head(ex) // 처음 6개의 케이스(컬럼)을 보여준다.(내용확인용)
(2) 엑셀 자료
R 메뉴 ⇨ [Package] ⇨ [Install Package] ⇨ CRAN mirror 사이트 선택 후 xlsx 패키지 선택
> library(xlsx)
> ex = read.xlsx("C:\data\ex.txt", 1) // 시트번호
기술통계량
> ex = read.table("C\data\ex.txt", header=T)
> attach(ex) // 객체 ex에 있는 변수를 R에서 직접 사용하기 위해서. 사용하지 않으려면 ex.$age
> names(ex) // 객체 ex 이름 보여주기
[1] "id" "age" "salary"
> mean(salary)
> sd(salary)
> summary(salary) // 다섯 수치요약(최소, 제1사분위수, 중앙, 제3사분위수, 최대)와 평균
그룹별 기술통계량
tapply(salary, sex, mean) // 성별(sex)의 값에 따라 변수(salary)의 평균(mean)을 구하는 명령
rownames(meanofSalBySex) = c("남", "여") // label 추가
남 여
241.6667 245.000
빈도표 및 분할표
> table(sex) // 이산형 변수 sex의 빈도표
> table(sex, edu) // 두 이산형 변수 sex와 edu의 분할표
> summary(sex, edu) // 성별(sex)및 교육(edu)의 분할표에 대한 독립성 검정 결과
그래프 그리기
> barplot(edu) // 막대그림
> pie(edu.freq) // 원그림
> title("교육정도 원그림") // 타이틀 추가
> pie(edu.freq, main="교육정도 원그림") // 함께 가능
> hist(salary, nclass=4) // 4개의 막대로 나누어 히스토그램 그리기
> stem(salary) // 줄기-잎 그림
산점도 그리기
> par(mfrow=c(1,1)) // 한 화면에 그래프 하나만
> plot(age, salary, col="BLUE", pch=19) // x축은 age, y축은 salary로 하는 산점도(색은 파랑, point charater-점표시의 종류)
> plot(age, salary, type="n") // 산점도에서 그림을 그리지 말고 준비(p, l, b등)
> points(age[sex==1], salary[sex==1], pch="M", col="BLUE") // 색과 point charater 바꾸기
>points(age[sex==2], salary[sex==2], pch="W", col="RED")
이외에도...
R에서는
① 스칼라와 벡터 연산
② 데이터 프레임
③ seq 함수
④ 행렬 연산
등이 가능하다.
나는 R(CUI)에서 사용한 명령어를 토대로 작성했지만, R Commander(GUI)도 있다.






댓글
댓글 쓰기