close_btn
조회 수 14751 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

PCA 통해서 차원을 줄이고 큰 데이터를 더 효율적으로 처리한다고 알고있었는데

찾아보니 PC1, PC2..가 어떤것과 관련이 있는지를 보고 그 값에 대략적인 의미를 부여 할 수있는것 같습니다.


 data<-read.csv("NBA.csv",stringsAsFactors=T)


ppm<-data[,"games"] * data[,"point"] / data[,"minutes"] #분당 득점률

data<-cbind(data,ppm)


# erase<-which(colnames(data)=="Name")

erase<-which(colnames(data)=="games") #삭제할 index 찾고

erase<-c(erase,which(colnames(data)=="minutes"))

erase<-c(erase,which(colnames(data)=="point"))

data<-data[,-erase] #Name, games, point, minutes 변수 삭제


# step1

# 주성분분석에서는 변수별로 단위가 다른 raw data를 사용하지 않고

# 평균과 표준편차를 가지고 표준화한 데이터를 사용합니다.

# 그래야 scale이 다른 문제로 인한 데이터 왜곡을 피할 수 있기 때문입니다.

#라네요. 출처 -   http://rfriend.tistory.com/61

#아마 수업시간엔 log를 씌었던걸로 기억합니다. 이것도 해보고,,,저것도 해보고,,,

data_trans<-transform(data,

                height_s = scale(height),

                age_s = scale(age),

                assist_s = scale(assist),

                rebound_s = scale(rebound),

                fieldgoal_s = scale(fieldgoal),

                freethrow_s = scale(freethrow))

#근데 실행 전과 후에 다른게 없네요.


#step2

# 변수를 보고 이 값이 크면 좋은지, 작으면 좋은지를 판단합니다.

# 크면 좋은 변수와 작으면 좋은 변수는 서로 반대 방향으로 움직이는데

# 이를 같은 방향으로 수정해서 상관도가 높게 나와, 같은 주성분에 반영되도록합니다.

# height, age, assist, rebound, fieldgoal, freethrow 대부분 높으면 좋은 변수인데...

# 나이가 조금 걸리네요.나이 많으면 경험이 많아서 노련한데, 몸이 안따라주는것도 있고,,

# 나이가 적으면 좋다고 가정하고! 뭐 결과가 중요하겠습니까? 과정에서 배우는거죠.

# 사실 다 크면 좋은값이면 step2에서 할게 없습니다.

data_trans <- transform(data_trans, age_s2 = max(age_s) - age_s)

data_trans_2 <- data_trans[,c("Name", "height_s", "age_s2", "assist_s", "rebound_s", "fieldgoal_s", "freethrow_s","ppm")]


#step3

# 변수들간의 상관계수를 분석해보겠습니다.

# 주성분분석이 변수들 간의 상관관계가 높다는 것을 가정하고 있기 때문에

# 한번 확인해보도록 하겠습니다.

library(psych)

pairs.panels(data_trans_2[,-1])

#reboud와 assist가 60%정도로 상관관계가 높네요.


#step4

# 이제 주성분 분석해야죠. prcomp()를 사용합니다.

data_prcomp <- prcomp(data_trans_2[,c(2:7)]) #ppm은 빼고

summary(data_prcomp) #80% 이상의 성과를 내려면 PC4까지 써야하네요...(기대 이하..)

# 1요인이 표준편차가 1.4로 가장 크네요.


print(data_prcomp)

# 1요인은 assist와 rebound와 관련이 크고,,득점과 관련된것과 조금씩 관련이 있는데..?

# 2요인은 키와 관련이 크고

# 3요인은 자유투와 관련이 있고...

# 4요인은 나이와 득점과 관련이 크고

# 5요인은 필드골,도움과 관련이 있고...6요인은..어시스트,키


# 그렇다면 1요인은 득점에 관여를 많이 하는거니까 "활동성"이라고 이름을 붙일 수 있을것 같고

# 4요인은 나이와 득점에 관련된거니 "노련함"이라 할 수 있을것 같습니다.


#step5 그려보자

#여기서 변수 2가지만 사용한 이유는 2차원상에서 그리는 것이라서 2개를 해야할것 같았고

#1,4번을 선택한 이유는 그나마 변수에 의미를 부여할만한 이유가 있어서 입니다.

biplot(data_prcomp, cex = c(0.6, 0.7))

pc1 <- predict(data_prcomp)[,1] #활동성

pc4 <- predict(data_prcomp)[,4] #노련함

text(pc1, pc4, labels = data_trans_2$Name, 

     cex = 0.7, pos = 3, col = "blue")


#step6

# 차원을 줄인걸로 회귀분석을 해보자.

data.lm <- lm(ppm ~ PC1+PC2+PC3+PC4, family ="binomial", data = as.data.frame(data_prcomp$x))

summary(data.lm)

data.lm.const<-lm(ppm~1,data = as.data.frame(data_prcomp$x))

summary(data.lm.const)

# data.forward<-step(data.lm,scope=list(lower=data.lm.const,upper=data.lm),direction="forward")

# summary(data.forward)

# data.backward<-step(data.lm,scope=list(lower=data.lm.const,upper=data.lm),direction="backward")

# summary(data.forward)

# data.both<-step(data.lm,scope=list(lower=data.lm.const,upper=data.lm),direction="both")

# summary(data.forward)

pred <- predict(data.lm, type="response")

plot(ppm, pred)

abline(a=0, b=1)


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 우수 코드 게시판 이용 관련 공지사항 DataMarket 2014.05.21 39671
53 투빅스 5&6기 2주차과제 1번 회귀분석 -6기 한동훈 2 file 투빅스6기한동훈 2016.08.04 11245
52 투빅스 5&6기 2주차 과제 2번 마방진 만들기 - 6기 임진주 4 file 진주 2016.08.04 10959
51 투빅스 5&6기 1주차 과제 2번 재석 2016.07.28 9418
50 5&6기 1주차 과제 1번 - 6기 이윤섭 겨뽀 2016.07.28 10123
49 투빅스 5&6기 1주차 과제코드 Alan 2016.07.27 9558
48 크롤링 - 전국 이디야 매장정보를 중심으로 (5기 이승은) 2 file 켜져있는멀티탭 2016.03.26 26750
47 crawling - 5기 이제형 4 trevor 2016.03.24 14413
» PCA (주성분 분석) - 5기 이제형 trevor 2016.03.09 14751
45 NBA data 회귀분석 / Adult data 로지스틱 회귀분석, 나이브베이즈, 의사결정나무 - 5기 정현재 2 file 정현재 2016.03.03 17939
44 NBA 회귀분석 / adult 로지스틱회귀, 나이브베이즈, 의사결정나무 - 5기 최도현 3 file 알빈 2016.03.03 20271
43 K-Means Funtion (5기 이제형) 3 trevor 2016.02.25 13735
42 박이삭_기초스터디__반복문 및 apply함수 및 데이터프레임다루기 지니상 2016.02.12 10686
41 최도현_기초스터디_R기초 지니상 2016.02.12 11378
40 양우식_기초스터디_dplyr_sqldf 지니상 2016.02.12 12172
39 이정민_기초스터디_stringr패키지 지니상 2016.02.12 17661
38 고가영_기초스터디_파일불러오기 및 Rmarkdown 지니상 2016.02.12 13564
37 입출금 처리 프로그램 (4주차 과제) - 5기 방정훈 file Alan 2016.02.10 12431
36 연관성 분석(3주차 과제) & KNN 함수만들기(3주차 과제) - 4기 김선지 순지 2016.02.09 13668
35 연관성 분석(3주차 과제) - 5기 이정민 1 file 쩡마 2016.02.07 14120
34 KNN 함수만들기 (3주차 과제) - 5기 방정훈 Alan 2016.02.03 14396
Board Pagination ‹ Prev 1 ... 2 3 4 5 6 7 ... 8 Next ›
/ 8

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5