Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
                            Tags
                            
                        
                          
                          - 언어분석
 - 예측
 - R
 - VIF
 - 코딩테스트
 - 자기상관
 - post man
 - KNNImputer
 - by oneself
 - 전처리
 - 워홀
 - 디시전트리
 - 이변량 분석
 - 등분산검정
 - 기본가정
 - 정규성
 - 회귀분석
 - contrasts can be applied only to factors with 2 or more levels
 - 등분산성
 - 이상치
 - 오류
 - disgusting
 - sql
 - 다중공선성
 - cook's distance
 - 회귀모형
 - 엑셀
 - 분류
 - 선형성
 - 기술통계분석
 
                            Archives
                            
                        
                          
                          - Today
 
- Total
 
excelsu의 공부 기록 블로그
[회귀] R 회귀 코드(전처리, 검증, 예측 포함) 본문
##더미화
dumraw<-transfrom(rawdata,
새로운변수명=ifelse(조건,1,0),
새로운변수명=ifelse(조건,1,0),
새로운변수명=ifelse(조건,1,0))
##첫번째열(더미화 시킨열)삭제
dumraw<-dumraw[,-c(1)]
##na인 데이터 0으로 채우기
dumraw$na있는데이터<-ifelse(is.na(dumraw$na있는데이터),0,dumraw$na있는데이터)
##모델생성
m1<-lm(y~., dumraw)
summary(m1)
##회귀 잔차 그래프들
par(mfrow=c(2,3))  ##그래프 해석은 링크 참조
plot(m1,which=c(1,2,3,4,5,6))
##이상치 제거(제거할것인지 고민필요)
dumraw<-dumraw[-c(제거할 데이터의 인덱스),]
##제거하고 다시 확인
m2<-lm(y~., dumraw)
summary(m2)
##na제거
str(dumraw)##데이터형 확인
colSums(!is.na(dumraw))##na가 아닌값 개수 확인
colSums(is.na(dumraw))##na 개수 확인
dumraw<-[complete.cases(dumraw),]##제거
colSums(is.na(dumraw))
##변수선택(데이터 탐색할때 주로 사용, 필요한 변수 삭제 위험성 있음)
fit.con<-lm(y~1,dumraw) #처음 시작점
fit.forward<-step(fit.con,scope=list(lower=fit.con,upper=m2),direction="forward")
summary(fit.forward)
fit.backward<-step(m2,scope=list(lower=fit.con,upper=m2),direction="backward")
summary(fit.backward)
fit.both<-step(fit.con,scope=list(lower=fit.con,upper=m2),direction="both")
summary(fit.both)
##추정, 예측
pre<-predict(fit.backward,newdata=dumraw,interval="prediction") ##오차항 고려한 신뢰구간
pre<-as.data.frame(pre)  ##데이터 프레임으로
head(pre)
pre<-cbind(pre,dumraw$y)
head(pre)  ##신뢰구간 데이터프레임에 추가
##예측값이 맞았는지 확인
tf<-NA
pre<-cbind(pre,tf)
pre$tf[pre$'dumraw$y' >= pre$lwr & pre$'dumraw$y' < pre$upr] <- T
pre$tf[is.na(pre$tf)] <- F  
head(pre)
sum(pre$tf=="TRUE")/dim(pre)[1]##같은 데이터로 예측했기때문에 값이 높게 나옴 데이터 분리해서 예측해보기
##---------검정
## 등분산 검정
bartleett.test(dumraw) ##0.05 이하 이분산 이산치 제거 필요
levene.test(y~., dumraw, location="mean") ## 패키지 설치 필요
## 잔차 정규성 검정
res=residuals(fit.backward)
shapiro.test(res)
## 분산분석
anova(fit.backward)## p값 높은것들 제거???
##다중공선성
library(car)
vif(fit.backward)
##다중공선성 상관관계(피어슨 상관관계) 그래프
round(cor(dumraw,method="pearcon"),3) # na있으면 use="complete.obs"
plot(dumraw)
pairs(dumraw,panel=panel.smooth)
회귀 모형을 만들고 플랏을 만들었을 시 나오는 그래프들의 해석링크입니다.
https://excelsu.tistory.com/20
[회귀] plot 검정
이미지 참조 : https://m.blog.naver.com/leedk1110/220775742538 첫째그림 : 잔차vs적합도(잔차산점도)->등분산성확인 (특정 패턴없을시), 선형성 확인(흩어진 형태 무작위,상하 대칭) 둘째그림 : qq-plot -> 정..
excelsu.tistory.com
'R' 카테고리의 다른 글
| [디시전트리] R로 디시전트리(회귀) 사용해보기 (0) | 2022.07.28 | 
|---|---|
| [오류] make.names(col.names, unique=TRUE) 유효하지 않은 멀티바이트 문자열이 있습니다. (0) | 2022.07.07 | 
| [오류] 회귀분석 coefficients : (7 not defined because of singularities) (0) | 2022.07.04 | 
| [R오류]number of rows in use has changed remove missing values (0) | 2022.07.01 | 
| [회귀] plot 검정 (0) | 2022.07.01 |