사용할 데이터는 Revolution 폴더안의 Sample Data로, "mortDefaultSmall2009"라는 이름의 csv파일이다.
데이터의 행 수는 총 10000개 이고, 'creditScore', 'houseAge', 'yearsEmploy', 'ccDebt', 'year', 'default' 로 총 6개의 변수(열)를 가지고 있다.
현재 사용한 데이터는 2009년 데이터이지만, 실제는 2000년부터 2009년까지 10년간의 sample data가 있다.
뒤에 데이터 합치기와 같은 부분에서 다른 연도의 데이터도 사용될 것이다.
# (1-1) data의 위치지정 Revolution R을 다운할 시, 자동으로 생성되는 Sample
# data중 하나인 데이터로, sampleData폴더의 'mortDefaultSmall2009'
# csv파일을 사용
text_mort <- "C:/Revolution/R-Enterprise-6.1/R-2.14.2/library/RevoScaleR/SampleData/mortDefaultSmall2009.csv"
# (1-2) rxImport를 사용한 data import
data_mort <- rxImport(inData = text_mort, outFile = "mort2009.xdf", overwrite = TRUE)
# (1-3) rxLogit을 사용한 로지스틱 회귀분석
mort_logit <- rxLogit(default ~ creditScore + houseAge + yearsEmploy + ccDebt,
data = data_mort)
# (1-4) rxPredict 를 사용하려 rxLinMod, rxLogitm rxGlm의 잔차의 예측값을
# 구함(이 중, rxLogit의 예제 이용)
mort_predict <- rxPredict(mort_logit, data = data_mort, overwrite = TRUE)
summary(mort_predict)
## Call:
## rxSummary(formula = form, data = object, byTerm = TRUE, reportProgress = 0L)
##
## Summary Statistics Results for: ~creditScore + houseAge +
## yearsEmploy + ccDebt + year + default + default_Pred
## File name: C:\Users\choi\Desktop\mort2009.xdf
## Number of valid observations: 10000
##
## Name Mean StdDev Min Max ValidObs MissingObs
## creditScore 700.6322 5.083e+01 4.990e+02 8.720e+02 10000 0
## houseAge 19.9087 7.573e+00 0.000e+00 4.000e+01 10000 0
## yearsEmploy 5.0335 2.023e+00 0.000e+00 1.400e+01 10000 0
## ccDebt 5040.3651 1.989e+03 0.000e+00 1.252e+04 10000 0
## year 2009.0000 0.000e+00 2.009e+03 2.009e+03 10000 0
## default 0.0235 1.515e-01 0.000e+00 1.000e+00 10000 0
## default_Pred 0.0235 7.646e-02 8.898e-07 9.773e-01 10000 0
# (1-5) rxLinMod에서 나온 모형을 rxPredict을 이용하여 잔차 예측
linMod <- rxLinMod(creditScore ~ yearsEmploy, data = data_mort)
Pred_rx <- rxPredict(modelObject = linMod, data = data_mort, computeResiduals = TRUE)
head(Pred_rx)
## creditScore houseAge yearsEmploy ccDebt year default default_Pred
## 1 701 23 2 3661 2009 0 9.010e-04
## 2 683 12 5 3384 2009 0 2.380e-04
## 3 705 30 5 3210 2009 0 2.824e-04
## 4 769 13 5 2843 2009 0 6.005e-05
## 5 741 11 7 1532 2009 0 8.553e-06
## 6 731 14 4 5302 2009 0 2.245e-03
## creditScore_Pred creditScore_Resid
## 1 699.6 1.446
## 2 700.6 -17.620
## 3 700.6 4.380
## 4 700.6 68.380
## 5 701.3 39.669
## 6 700.3 30.735
rxLinMod을 사용해서 만든 모형에 rxPredict으로 잔차의 예측값이 구해졌음을 확인할 수 있다.
# (1-6)lm을 사용하여 만든 모형
# lm함수를 사용하기 위해서는 data frame이 필요하므로, 새로 생성해줌
dataframe_mort <- rxImport(inData = text_mort, overwrite = TRUE)
mortLM <- lm(creditScore ~ yearsEmploy, data = dataframe_mort)
mortLM
##
## Call:
## lm(formula = creditScore ~ yearsEmploy, data = dataframe_mort)
##
## Coefficients:
## (Intercept) yearsEmploy
## 698.844 0.355
rxPredict(modelObject, data = NULL, …)
Default S3 method:
rxPredict(modelObject, data = NULL, outData = NULL,
computeStdErrors = FALSE, interval = “none”, confLevel = 0.95,
computeResiduals = FALSE, type = c(“response”, “link”),
writeModelVars = FALSE, removeMissings = FALSE,
overwrite = FALSE, checkFactorLevels = TRUE,
predVarNames = NULL, residVarNames = NULL,
intervalVarNames = NULL, stdErrorsVarNames = NULL, predNames = NULL,
blocksPerRead = rxGetOption(“blocksPerRead”),
reportProgress = rxGetOption(“reportProgress”), verbose = 0,
xdfCompressionLevel = rxGetOption(“xdfCompressionLevel”), …)
Hankuk University of Foreign Studies. Dept of Statistics. Daewoo Choi Lab. Yeeseul Han.
한국외국어대학교 통계학과 최대우 연구실 한이슬
e-mail : han.lolove17@gmail.com