자료를 벡터로 입력하기 위해서 사용하는 함수 : c()
평균 구하는 함수 : mean()
표준편차 구하는 함수 : sd()
상관관계 구하는 함수 : cor()
두 데이터의 관련성을 그림으로 나타내기 위한 함수 : plot()
cor()과 plot()은 비교하려는 두대상의 데이터 수가 맞지않으면 오류발생
#Input data
age <- c(3,12,9,3,9,11,2,5,3,1)
weight <- c(6,1,10,2,10,4,6,7,3,8)
mean(age)
mean(weight)
sd(age)
sd(weight)
cor(age,weight)
plot(age,weight)
Data -> information -> Knowledge -> Wisdom -> Nirvana
정보와 지식의 차이는 지식은 살아있는 정보 즉, 삶에 적용되는 정보를 말한다.
기존 데이터와 빅데이터의 차이는 3V로 설명가능
빅데이터는 용량(Volume), 속도(Velocity), 다양성(Variety) 이 있는 자료를 말한다.
빅데이터 분석과정 : 빅데이터 수집관리 -> 데이터 분석 -> 의사결정 단계
데이터마이닝
대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 분석하여 가치있는 정보를 추출하는 과정
빅데이터 분석절차
하이프 사이클
하나의 변수를 다루는 통계분석 : 단일변량통계분석
여러개의 변수를 다루는 통계분석 : 다변량통계분석
변수는 양적변수와 질적변수로 나뉜다.
양적변수 또 이산변수와 연속변수로 나뉜다.
척도는 측정의 정밀성에 따라 명목척도, 서열척도, 등간척도, 비율척도 등으로 분류된다.
명목척도와 서열척도로 측정된 자료는 비정량적 자료 또는 질적자료라고하며
등간척도와 비율척도로 측정된 자료는 정량적 자료 또는 양적자료라고한다.
질적자료에 적용 가능한 방법은 비모수통계기법이고 양적자료에 적용가능한 방법은 모수통계기법이다.
- 명목척도
관찰대상을 구분할 목적으로 사용되는 척도
ex)성별 - 서열척도
관찰대상이 지닌 속성에 따라 순위를 결정한다.
ex) 좋아하는 운동종목 - 등간척도
관찰치가 지닌 속성 차이를 의도적으로 양적 차이로 측정하기 위해 균일한 간격을 두고 분할하여 측정하는 척도
ex) 온도 (화씨 섭씨 개념 아래이미지 참고) - 비율척도
각 척도의 특수성에 비율 개념이 첨가된 척도
ex) 거리, 무게, 시간, 학점계산
대한민국의 대표적인 공공데이터 포털
-공공데이터 포털
-한국복지패널
-서울 열린 데이터 광장
해외 데이터 포털
-미국 공공데이터 포털
-영국 공공데이터 포털
-일본 공공데이터 포털
R프로그램에서 SPSS파일을 불러오기위해서는 foreign 라이브러리를 설치하고 불러오면된다.
foreign은 SPSS, SAS, STATA등 다양한 통계분석 소프트웨어의 파일을 불러올 수 있다.
SPSS파일을 불러오기 위해서는 read.spss라는 명령어를 사용한다.
'to.data.frame=T' 는 데이터 프레임에 필드명을 표시하는 경우를 말한다.
데이터분석과정에서 절반이상은 데이터의 전처리, 변환, 필터링이 차지하는데 이작업을 수월하게해주는 패키지가 dplyr이다.
dplyr패키지에서 주로 사용하는 함수는 filter(), select(), mutate(), arrange(), summarise()등이 있다.
- filter()
지정한 조건식에 맞는 데이터 추출을 할 때 사용 - select()
열을 추출할경우에 사용 - mutate()
열 추가할 때 사용 - arrange()
정렬할 때 사용 - summarise
집계할 때 사용
library(foreign)
library(dplyr)
welfare<-read.spss(file="D:/beta16_spss/koweps_c01_2006_beta16.sav",
to.data.frame = T)
welfaredata<-welfare
str(welfaredata)
R 데이터 구조
- 벡터
- 매트릭스
- 배열
- 데이터프레임
- 리스트
-벡터 예제-
a[c(1,3)] 은 a벡터의 첫번째와 세번째 요소를 나타내는 것.
a <- c(1,2,3,4,5,6,7)
b <- c("one", "two", "three")
c <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
a[3]
a[c(1,3,5)]
a[2:6]
-매트릭스 예제-
행렬들은 matrix()함수로 생성됨.
예제1
#5*4행렬을 생성하는 명령어
y <- matrix(1:20, nrow=5, ncol=4)
y
cells <- c(1, 26, 24, 68)
rnames <- c("R1", "R2")
cnames <- c("C1", "c2")
mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE,
dimnames=list(rnames,cnames))
mymatrix
mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=FALSE,
dimnames=list(rnames,cnames))
mymatrix
예제2
-배열 예제-
dimensions는 각차원별 최대행렬을 나타낸다.
dimnames는 선택사항으로 차원별 레이블을 나타낸다.
-데이터프레임 예제-
데이터프레임은 data.frame()함수로 만들 수 있다.
factor()함수는 통계적 분석과정이나 그래프분석에서 요인을 명목변수와 양적요인으로 처리할 수 있다.
위 데이터로 다음과 같이 factor()함수를 적용해보았다.
summary()함수는 각 변수의 기초 통계량을 나타내라는 명령어이다.
-리스트 예제-
리스트는 벡터, 매트릭스, 데이터프레임, 기타리스트 등의 조합을 포함하며 list()함수를 사용해 생성한다.
데이터베이스 만들기
엑셀데이터 불러오기
웹에서 파일 불러오기
url()함수사용
loc <- "http://archive.ics.uci.edu/ml/machine-learning-databases/"
ds <- "pima-indians-diabetes/pima-indians-diabetes.data"
url <- paste(loc, ds, sep="")
url
diabetes <- read.table(url, sep=",", header = FALSE)
names(diabetes) <- c("npregant", "plasma", "bp")
통계프로그램에서 데이터가져오기
- Excel
library(xlsx)
mydata <- read.xlsx("C:/myexcel.xlsx", 1)
mydata <- read.xlsx("C:/myexcel.xlsx", sheetName = "mysheet")
- SPSS
get file = 'C:\mydata.sav'.
export outfile='C\mydata.por'.
library(Hmisc)
mydata <- spss.get("C:/mydata.por", use.value.labels=TRUE)
- SAS
libname out xport 'C:/mydata.xpt';
data out.mydata;
set sasuser.mydata;
run;
library(Hmisc)
mydata <- sasxport.get("C:/mydata.xpt")
- Stata
library(foreign)
mydata <- read.dta("C:/mydata.dta")
DB 관리시스템에 접근하기
R에서 DBMS에 접근하는 가장 일반적인 방법은 RODBC패키지를 설치하는 방법이다. 이것은 R이 ODBC드라이버에 접근하도록 해준다. RODBC의 주요 함수는 다음 표와 같다.
데이터베이스 연결하기
library(RODBC)
myconn <- odbcConnect("mydsn", uid="Rob", pwd="aardvark")
crimedat <- sqlFetch(myconn, "Crime")
pundat <- sqlQuery(myconn, "select * from Punishment")
close(myconn)
웹에서 데이터 불러오기
데이터는 웹스크래핑 또는 API를 경유한 웹으로부터 얻을 수 있다.
그래프로 회귀분석과 분포도 그리기
#attach와 detach를 하는 이유는 각기 다른 데이터에 속한 변수들이 충돌하지 않도록하기위함
attach(mtcars)
plot(wt,mpg)
#abline은 추정회귀선
#lm은 회귀분석 명령어
abline(lm(mpg~wt))
title("regression of MPG on Weight")
detach(mtcars)
히스토그램 만들기
attach(mtcars)
hist(mtcars$mpg)
detach(mtcars)
attach(mtcars)
hist(mtcars$mpg, breaks=12, col="red")
detach(mtcars)
정규분포 만들기
x <- rnorm(100, mean=60, sd=9)
hist(x, freq=F)
curve(dnorm(x, mean=60, sd=9), add=T)
표준정규분포 만들기
x <- pretty(c(-3,3),30)
y <- dnorm(x)
plot(x,y,type="l",
xlab = "Normal Deviate",
ylab = "Density")
-표준정규분포 내에 일정 범위 음영 표시-
ggplot2는 데이터 시각화에 뛰어난 효과를 낸다.
library(ggplot2)
dnorm_limit <- function(x) {
y <- dnorm(x)
y[x < 1.96 | x > 1.96] <- NA
return(y)
}
p <- ggplot(data.frame(x=c(-3,3)), aes(x=x))
p + stat_function(fun=dnorm_limit, geom="area", fill="red", alpha=0.2) +
stat_function(fun=dnorm)
-Box Plot 사용하기-
Box Plot은 집단 간의 양적 수치를 보여줄 수 있어 유용하다. 일반적으로 x축은 질적변수를, y축은 양적 수치를 배열한다.
attach(mtcars)
boxplot(mpg~cyl, data=mtcars, main="Car Milage Data",
xlab="Number of Cylinders", ylab="Miles per Gallon")
detach(mtcars)
-커널밀도 사용하기-
attach(mtcars)
d <- density(mtcars$mpg)
plot(d, main="Kernel Density of Miles Per Gallon")
polygon(d, col="red", border="blue")
detach(mtcars)
-집단간 커널밀도 비교명령어-
library(sm)
attach(mtcars)
cyl.f <- factor(cyl, levels = c(4,6,8),
labels = c("4 cylinder", "6 cylinder", "8 cylinder"))
sm.density.compare(mpg, cyl, xlab="Miles Per Gallon")
title(main="MPG DIstribution by Car Cylinders")
colfill <- c(2:(2+length(levels(cyl.f))))
legend(locator(1), levels(cyl.f), fill=colfill)
-파이차트 사용하기-
slices <- c(10,12,4,16,8)
lbls <- c("US", "UK", "Australia", "Germany", "France")
pct <- round(slices/sum(slices)*100)
lbls <- paste(lbls, pct)
lbls <- paste(lbls, "%", sep="")
pie(slices,labels=lbls, col=rainbow(length(lbls)),
main="Pie Chart of Countries")
'R' 카테고리의 다른 글
R / 로지스틱 회귀분석 (0) | 2020.08.06 |
---|---|
R / 회귀분석 (0) | 2020.08.06 |
R / 상관분석 (0) | 2020.08.06 |
R / 분산분석(ANOVA) (0) | 2020.08.06 |
R / 표본검정 및 교차분석 (0) | 2020.08.05 |