데이터셋을 활성화시키고, 분석 모형을 만들었다면, '모델 > 그래프 > 영향 그림...' 메뉴 기능을 사용할 수 있다. carData 패키지의 Prestige 데이터셋을 이용하여 연습해보자.
먼저, Prestige 데이터셋을 활성화 시키자. '데이터 > 패키지에 있는 데이터 > 첨부된 패키지에서 데이터셋 읽기...' 메뉴 기능을 선택하고, 다음 화면에서 carData 패키지에 포함된 데이터셋들 중에서 Prestige를 찾아서 선택한다. 그러면, R Commander 상단의 <활성 데이터셋 없음> 버튼이 'Prestige'로 바뀐다.
Prestige 데이터셋을 이용하여 LinearModel.1 모형을 만든다. '통계 > 적합성 모델 > 선형 모델...' 메뉴 기능을 이용할 수 있다.
'모델 > 그래프 > 추가-변수 그림...' 메뉴 기능은 데이터셋이 활성화되고, 분석 모형이 만들어진 이후 사용할 수 있다. carData 패키지의 Prestige 데이터셋을 이용하여 연습해보자.
먼저, Prestige 데이터셋을 활성화 시키자. '데이터 > 패키지에 있는 데이터 > 첨부된 패키지에서 데이터셋 읽기...' 메뉴 기능을 선택하고, 다음 화면에서 carData 패키지에 포함된 데이터셋들 중에서 Prestige를 찾아서 선택한다. 그러면, R Commander 상단의 <활성 데이터셋 없음> 버튼이 'Prestige'로 바뀐다.
Prestige 데이터셋을 이용하여 LinearModel.1 모형을 만든다. '통계 > 적합성 모델 > 선형 모델...' 메뉴 기능을 이용할 수 있다.
회귀선에서 멀리 떨어져 있다고 추천된 2개의 사례들을 Prestige 데이터셋에서 제거해보자. general.managers가 중복되기 때문에 모두 3개의 사례가 삭제된다. 사례 삭제는 R Commander 상단에 있는 <데이터셋 편집하기> 버튼을 누르고 해당 사례를 찾아 삭제하는 방식을 취했다.
데이터셋이 활성화되고 통계적으로 분석된 모형이 만들어진 경우, '모델 > 그래프 > 성분 + 잔차 그림...' 메뉴 기능을 사용할 수 있다. carData 패키지의 Prestige 데이터셋을 이용하여 연습해보자.
먼저 Prestige 데이터셋을 활성화 시킨다. '데이터 > 패키지에 있는 데이터 > 첨부된 패키지에서 데이터셋 읽기...' 메뉴 기능을 통해서 carData 패키지에서 Prestige 데이터셋을 찾아서 선택하면 된다. 그러면, R Commander 상단의 <활성 데이터셋 없음> 버튼이 'Prestige'로 바뀐다.
Prestige 데이터셋을 이용하여 LinearModel.1, LinearModel.2 라는 두 개의 모형을 차례로 만든다. '통계 > 적합성 모델 > 선형 모델...' 메뉴 기능을 이용할 수 있다.
어느 데이터셋이 활성화되고, 그 데이터셋을 활용한 분석 모형이 만들어지면, '모델 > 수치적 진단 > 변환 반응하기...' 메뉴 창이 활성화된다.
carData 패키지의 Prestige 데이터셋을 이용하여 연습해보자. 먼저 Prestige 데이터셋을 활성화시킨다. '데이터 > 패키지에 있는 데이터 > 첨부된 패키지에서 데이터셋 읽기...' 메뉴 기능을 통하여 carData 패키지에서 Prestige 데이터셋을 찾아서 선택한다. 다음, Prestige 데이터셋을 활용하여 선형 모델을 만든다. '통계 > 적합성 모델 > 선형 모델...' 메뉴 기능을 선택하여 모형을 만든다.
어느 데이터셋을 활성화시키면, '통계 > 요약 > 정규성을 향해서 변환시키기...' 메뉴 기능이 아래와 같이 활성화될 것이다.
carData 패키지에 포함된 Prestige 데이터셋을 이용하여 연습해보자.
'데이터 > 패키지에 있는 데이터 > 첨부된 패키지에서 데이터셋 읽기...' 메뉴 기능을 선택한후 carData 패키지에 있는 Prestige 데이터셋을 찾아서 선택한다. 그러면, R Commander 상단에 있는 <활성 데이터셋 없음> 이라는 버튼이 'Prestige'로 바뀌면서 '통계 > 요약 > 정규성을 향해서 변환하기...' 메뉴 기능을 이용할 수 있게 된다. 이 메뉴를 선택한다. 그러면, 아래와 같은 화면이 등장한다. Prestige 데이터셋에서 정규성을 향해서 변환시킬 변수를 선택하는 메뉴 창인데, income 변수를 선택해보자.
car 패키지에 포함된 powerTransform() 함수를 사용하여 출력창에 아래와 같은 결과를 생산한다. 출력내용에서 'Est Power'값으로 제시하는 0.1793을 확인한다. Prestige 패키지에 있는 income 변수에 0.1793 승(제곱)을 하면, 그 사례 값들은 정규 분포적 특성으로 변환될 수 있다는 의미이다.
'통계 > 요약 > 정규성 검정...' 메뉴 기능이 있다. 이 기능을 사용하여, Prestige 데이터셋의 income 변수와 정규성을 향해서 변환된 income 변수의 새로운 변수, 편의상 variable_Income,의 정규성 검정을 시도해보자.
먼저, 변환된 변수를 Prestige 데이터셋에 추가해야 한다. '데이터 > 활성 데이터셋에 있는 변수 관리하기 > 새로운 변수 계산하기...' 메뉴 기능을 통하여 income 변수가 변환된 variable_Income 변수를 만들어보자. '계산 표현식'에 income^0.1793이 입력된 것을 확인한다. 여기서 0.1793은 powerTransform() 함수를 통하여 앞서 추출한 income 변수의 승(제곱) 값이다.
Prestige 데이터셋에 variable_Income 이라는 새로운 변수가 추가된다. 이제 '통계 > 요약 > 정규성 검정...' 메뉴 기능을 선택하고, 차례로 두번의 정규성 검정을 진행한다. 첫번째는 income 변수로, 두번째는 variable_Income변수를 선택한다. 두개의 정규성 검정 결과를 비교하기 위해서다. 아래 화면은 두번째 검정, variable_Income 변수를 선택하는 메뉴 창이다.
두번의 정규성 검정에서 제시하는 유의 확률값을 살펴보자. variable_Income 변수의 정규성 검정 결과는 p-value=0.07573으로 variable _income 변수는 정규분포적 특징을 갖는다고 할 수 있다.
?powerTransform # car 패키지의 powerTransform 도움말 보기
# Box Cox Method, univariate
summary(p1 <- powerTransform(cycles ~ len + amp + load, Wool))
# fit linear model with transformed response:
coef(p1, round=TRUE)
summary(m1 <- lm(bcPower(cycles, p1$roundlam) ~ len + amp + load, Wool))
# Multivariate Box Cox uses Highway1 data
summary(powerTransform(cbind(len, adt, trks, sigs1) ~ 1, Highway1))
# Multivariate transformation to normality within levels of 'htype'
summary(a3 <- powerTransform(cbind(len, adt, trks, sigs1) ~ htype, Highway1))
# test lambda = (0 0 0 -1)
testTransform(a3, c(0, 0, 0, -1))
# save the rounded transformed values, plot them with a separate
# color for each highway type
transformedY <- bcPower(with(Highway1, cbind(len, adt, trks, sigs1)),
coef(a3, round=TRUE))
## Not run: scatterplotMatrix( ~ transformedY|htype, Highway1)
# With negative responses, use the bcnPower family
m2 <- lm(I1L1 ~ pool, LoBD)
summary(p2 <- powerTransform(m2, family="bcnPower"))
testTransform(p2, .5)
summary(powerTransform(update(m2, cbind(LoBD$I1L2, LoBD$I1L1) ~ .), family="bcnPower"))
## Not run:
# takes a few seconds:
# multivariate bcnPower, with 8 responses
summary(powerTransform(update(m2, as.matrix(LoBD[, -1]) ~ .), family="bcnPower"))
# multivariate bcnPower, fit with one iteration using starting values as estimates
summary(powerTransform(update(m2, as.matrix(LoBD[, -1]) ~ .), family="bcnPower", itmax=1))
## End(Not run)
# mixed effects model
## Not run:
# uses the lme4 package
data <- reshape(LoBD[1:20, ], varying=names(LoBD)[-1], direction="long", v.names="y")
names(data) <- c("pool", "assay", "y", "id")
data$assay <- factor(data$assay)
require(lme4)
m2 <- lmer(y ~ pool + (1|assay), data)
summary(l2 <- powerTransform(m2, family="bcnPower", verbose=TRUE))
## End(Not run)
R Commander를 사용하다보면, 기본 설정을 조금 바꾸고 싶은 생각이 들 때가 생긴다. 화면의 글씨가 너무 커 보이거나, 입력창과 출력창의 크기를 바꾸고 싶거나, 사용하는 폰트를 바꾸거나 등등의 고민이 생길 수 있다.
1. 아래 화면의 폰트 크기를 10에서 9로 바꾸고자 한다.
2. 입력창의 줄의 갯수를 10에서 9로 바꾸고자 한다.
3. 출력창의 줄의 갯수를 20에서 25로 바꾸고자 한다.
아래 메뉴 창에서 '대화록 글 폰트 크기(점)'을 9포인트로 바꾼다. '스크립트와 출력물 폰트 크기(점)'을 역시 9포인트로 바꾼다.
Commander 옵션 메뉴 창에서 '스크립트 창 높이 (줄)'을 9로 바꾼다. '출력물 창 높이 (줄)'을 25로 바꾼다.
바꾸고 싶은 설정 항목에 모두 수정을 가했다면, 'R Commander 다시 시작' 버튼을 누른다. 몇 몇 사항을 저장할 것인가를 질문한 뒤, R Commander가 다시 시작된다. 그렇다면 이 설정 변경을 R과 R Commander를 시작할 때마다 매번 반복해야 할까? 그렇지 않다. '도구 > Rcmdr 선택기능 저장하기...' 기능은 변경된 설정을 저장하여 다음에 R Commander가 시작될 때, 변경된 설정으로 시작하게 만드는 기능이다. '도구 > Rcmdr 선택기능 저장하기...'메뉴 기능을 선택하면 아래와 같이 새롭게 작성된 .Rprofile 파일을 저장할것인가를 묻는다. 화면 아래 오른쪽에 있는 예(OK) 버튼을 누르자.
그러면, 아래와 같은 다음 화면으로 이동한다. 사용자 디렉토리에 .Rprofile 파일에 변경된 설정을 저장할 것인가를 최종 묻는 것이다. Save 버튼을 누른다. 그러면 변경된 설정이 저장되어 다음부터 R Commander는 변경된 설정으로 시작하게된다.
'모델 > 부트스트랩 신뢰 구간...'메뉴 바로 위에 '모델 > 신뢰 구간...'메뉴 기능이 있다. 이 때 쓰이는 함수가 위의 출력물 결과창에서 보는 것처럼 Confint()이다. '부트스트랩 신뢰 구간...' 기능은 신뢰 구간을 구하는 Confint()함수에 LinearModel.1을 바로 객체로서 사용하는 것이 아니라, 위에 화면 상단에서 보듯이 .bs.samples를 객체로 사용한다. .bs.samples라는 객체는 Boot()를 사용하여 만들어진다. Boot()는 LinearModel.1 모형을 활용하여 필요한 정보를 추출하는데, 1번의 분석이 아닌 'R=999' 처럼 999회 반복 추출을 한다. 이 과정은 과거 컴퓨터의 성능이 낮을 때는 매우 많은 시간을 요구하는 기능이었으나, 컴퓨터 성능의 향상으로 시간이 많이 단축되었다.
그렇다면, 왜 'R=999'처럼 반복 추출을 통한 분석을 999회 실시하여 방대한 분석 자료를 만들까. 자료는 일반적으로 제한된 사례수에 의하여, 또는 이론적인 분포를 적용하기 어려운 불규칙한 특징을 갖기가 쉽다. 규칙을 정한 반복 추출 과정을 통한 분석 결과가 일정한 패턴을 갖기를 기대하면서 보다 이론적 분포에 가깝거나, 1회적 분석 결과가 갖는 오류 가능성을 축소시키고자 하는 목적으로 부트스크랩 기법을 사용하게 된다.
위의 출력물에서 Confint()의 객체를 LinearModel.1을 쓴 경우, .bs.samples를 쓴 경우, 95% 범위내에서 회귀 계수의 범위가 어떤 차이를 보이는지 비교할 수 있을 것이다. 아래 '모델 > 신뢰 구간...' 기능 설명을 참고할 수 있다.