2014년 2월 25일 화요일

[Statistics with R] Descriptive Statistics #1


Descriptive Statistics (기술통계) - 주어진 데이터를 가지고 도표나 그래프를 그려보거나, 데이터의 중심 경향도나 퍼짐의 정도 등을 이용하여 데이터의 특성을 설명하는 통계 방법

* Inferential Statistics(추측통계) - 모집단에서 추출된 표본에서 나온 통계치로부터 모수를 추정하거나 가설을 검정함


1. 집계표와 집계 그래프

* Frequency Table (도수분포표) - 자료를 일정한 수의 범위로 나누어 분류하고, 각 범위별로 수량을 정리한 표.


(1) 변량 : 자료를 수량으로 나타낸 것

(2) Class(계급) : 변량을 일정한 간격으로 나눈 구간

(3) 계급의 크기 : 변량을 나눈 구간의 너비

(4) 계급값 : 계급의 중앙의 값.

(5) Frequency(도수) : 각 계급에 속하는 자료의 수

(6) Frequency Table(도수분포표) : 주어진 자료를 몇 개의 구간으로 나누고 각 계급에 속하는 도수를 조사하여 나타낸

** Example Script - R


* Contingency Table(분할표) - 각 개체를 어떤 특성(예를 들면, 성별, 나이)에 따라 분류할 때에 얻어지는 자료 정리표이다. 두 가지 변수만으로 구성될 경우 이차원 분할표 혹은 이원분할표가 만들어지고, 여러 가지 변수로 구성될 경우 다차원 분할표가 만들어진다. 두 특성을 분류기준으로 이용할 때 어느 것을 행(row)으로, 어느 것을 열(column)로 정하느냐 하는 것은 자의적이며, 이원분할표에서 두 변수간의 동질성 가정이나 독립성 여부는 카이자승 검정으로 결정한다.


- Marginal Frequency (주변도수) : 분할표에서 행이나 열의 합 - addmargins(data)
- Joint Frequency(결합도수) :  각 셀의 도수

- Marginal Probability(주변확률) : 결합분포표에서 행이나 열의 합계

- hist(), truehist()
- Pie Chart : pie()
- Bar Chart : barplot()
- Mosaic Plot 


* 비율이라는 수치가 2차원 공간에서 면적으로 시각화되어 이해를 쉽게 도와주는 것이고, 이것이 바로 수치 정보인 분할표를 그래프로 변환하는 배경이기도 하다.



[Statistics with R] Data Manipulation

* 데이터 처리를 위한 기본 정보

1. 기본 데이터 타입 ( Basic Type )

logical
논리 값, T or True, F or False
numeric
수치 값, duble, numeric, real (double-precision)
integer
정수 값
character
문자 값, 인용부호로 표기된 것
complex
복소수 값
raw
Bytes

R의 typeof(), mode(), storage.mode() 함수를 사용하여 기본데이터 타입을 체크/확인 할 수 있음

typeof
mode
storage.mode
logical
logical
logical
inetger
numeric
inetger
double
numeric
double
complex
complex
complex
character
character
character


2. 특수한 값

NA : 결측치 (Missing Value)
NaN : 부정(Not a Number), 어떤 값을 0으로 나눈 것
Inf, -Inf : 무한대 (infinite), 양의 무한대, 음의 무한대
NULL : 정의되지 않은 값

쓰다보면 정해진 상수를 사용하는 경우가 있음

pi : 원주율
LETTERS : "A"부터 "Z" 까지의 26개 대문자 알파벳 백터
letters : "a"부터 "z" 까지의 26개 소문자 알파벳 백터
month.abb : "Jan" 부터 "Dec" 까지의 12개월을 나타내는 약어 벡터
month.name : "January" 부터 "December" 까지의 12개월을 나타내는 이름 벡터



3. 데이터 객체

Vector(벡터) - 동일한 기본 데이터 타입으로 구성된 순서가 있는 데이터 구조이며 수학적인 의미의 벡터 이상의 기능이 있어서 문자 값이나 논리 값을 원소로 가질 수 있다.



Matrix(행렬) - 동일한 데이터 모드로 구성된 사각형 구조의 값들이 집합으로 수학에서 행렬을 표현할 수 있다.





Arrary(배열) - 동일한 데이터 모드로 구성된 배열 구조의 값들의 집합으로 행렬은 2차원 배열이라 할 수 있다.



List(리스트) - 데이터 모드가 다른 데이터들을 표현할 수 있는데 Component라고 불리는 각기 다른 데이터 객체로 구성된 데이터 구조체 이다.



Factor - 통계학에서 Categorical Data(범주형 데이터)인 명목척도와 서열척도를 표현하는 데이터 객체로 벡터의 특수한 형태라고 할 수 있다.


Data Frame(데이터프레임) - 일반적인 data set (데이터셋)을 표현하며, 데이터베이스 시스템의 테이블과 유사한 구조이다. 한개 이상의 변수로 구성되며, 각각의 변수의 모드는 같거나 다를 수 있다.



4. Data Import and Export ( Included R Data Save )

외부에 있는 데이터를 읽어 오게 되는 경우가 대부분 일 것이다. 간단하게 테스트 하는 형태로는 엑셀 파일이나 CSV, TEXT 파일 등일수 있으나 RDB로 부터 직접 읽어 드리는 방법도 존재 한다. 이번 포스팅에서는 간단한 형태의 파일을 읽어 오고 내보내는 기능을 보고 향후 포스팅에서 Oracle Database 를 직접 연결하여 가져오는 방법을 공유하도록 한다.




 R Studio - Windows 64Bit 환경 에서 테스트 하였음. 작업을 하다 보면 첨부 이미지와 같이 변수 데이터 들이 저장되어 있음을 볼 수 있다.

# R Studio Image Save
save.image("~/rSample/R_Book/Example_20140225.RData")

# R Studio Image Load
load("~/rSample/R_Book/Example_20140225.RData")


## Oracle Data Import
# Packages Install
install.packages("RODBC")
install.packages("sqldf")
install.packages("tcltk")

# Library Load
library(RODBC)
library(sqldf)
library(tcltk)


#Channel Setting
#channel <- odbcConnect("TNS 설정이름", uid="DB접속아이디", pwd="접속패스워드", believeNRows=FALSE)

channel <- odbcConnect("REAL", uid="USER_ID", pwd="PASSWD", believeNRows=FALSE)

#Data Load
tSales  <- sqlQuery(channel, "select sdate, sales_amt from dual")

str(tSales)
summary(tSales)



## 이 글은 " R을 이용한 통계학의 이해(자유아카데미) " 내용 중 일부를 발췌하였고 개인이 직접 추가한 자료를 포함 하고 있음을 알린다.

## 구매 자유아카데미 출판사 사이트  이곳을 클릭하여 연결

언제 부터 였던가 생각해보니 아르바이트 겸 외부 컨설팅을 의뢰 받고 맥북 프로를 처음 써봤을 때 부터 였던 것 같다. 지금은 거의 대부분의 작업을 맥으로 작업을 하다 보니 윈도우에서만 실행되는 일부 프로그램들 때문과 회사 내부 ERP프로그램이 윈도우 ...