11월, 2014의 게시물 표시

베이지안 신뢰구간

이미지
베이지안 신뢰구간(credible set) 어떤 모수에 대한 베이지안 100(1-\alpha) % 신뢰구간은 변수 X의 관측치가 X=x로 주어질 때 다음을 만족하는 집합 C를 말하지요. 홍홍 C가 관측값 x에 의존하고 일반적으로 구간이기에.. 모수(\theta)가 연속변수이면 C=(c_1,c_2)로 \alpha_1+\alpha_2 = \alpha인 두 알파들에 대해 각각 c_1, c_2는 100 * \alpha_1 %, 그리고 100 * (1-\alpha_2) % 사분위 수가 되겠네요. 예를 들어 정규분포 N(\theta,2^2)에서 16개 표본을 추출하니 평균이 0.3이 나왔다고 합시다. 우리는 사전분포를 알게 되었지요. 평균값 \theta에 대해 전혀 정보가 없다고 했을 때가 평균 1이라고 가정하고 \theta를 알 때 변수 X의 분포를 합성하려면, 즉 이것에 대한 사후분포를 알아봐야하지요. 정규분포니까 간단히 유도해 볼 수 있겠네요. 당연히도 구한 평균과 1/4을 분산으로 가지는 정규분포를 따르네요. Conjugate prior ㅋㅋㅋ R을 여기에 맞춰 실행하면 > theta <- seq(-4,4,length = 500) 시뮬레이션으로 분포를 그리기 위해 X의 공간을 정의했습니다. seq()는 시퀀스를 만듭니다. > x_bar = 0.3 > x_sd = 0.5 사후확률과 관련된 정보를 입력하고... > plot(theta, dnorm(theta,x_bar,x_sd), type="l") 라인플롯을 그리지요. type="l"은 Line 정규분포의 density를 구하기 위해 dnorm, > abline(v=qnorm(c(0.049,0.999), x_bar, x_sd), lty=2) > abline(v=qnorm(c(0.025,0.975), x_bar, x_sd), lty=3) 확률값을 주고 x를 얻기 위해 qn

data.table 패키지와 빅데이터

R에는 data.frame이라는 객체가 있습니다. 사용하기 편리하고 여러 장점이 있지만 문제도 많습니다. 일단 여러분이 아주 큰 데이터를 읽어오려면(상상보다 더 큰...) 아마 컴퓨터가 아주 좋지 않으면 실패할 가능성이 있습니다. 이럴 때 좋은 것이 data.table 패키지입니다. data.table에 대한 설명은 data.table 메뉴얼 참고하세요. 큰 CSV 파일 읽기 > install.packages('data.table') > library(data.table) > data.my <- fread("mylargetextdata.csv") 이제 data.my는 data.table 객체입니다. 이를 data.frame 객체로 굳이 바꿀 필요가 있다면 > data.my2 <- as.data.frame(data.my) 이렇게 하면 됩니다. 키 값 정하기 데이터 베이스에서 데이터를 가져왔다면 primary key가 있겠죠? > setkey(data.my,primary_key)

Variance가 높을 경우? 디리슈레-다항분포 회귀식 사용

이미지
(본 내용은 Erik Thorsen의 "Multinomial and Dirichlet-multinomial modeling for categorical time series"를 바탕으로 작성했음을 밝힙니다.) Multinomial distribution을 사용하여 다음과 같은 경우의 회귀분석을 하려고 합니다. "연령별 로타바이러스(RotaVirus)에 취약한 정도를 알고 싶다!" 로타바이러스는 구토 설사 발열을 유발하는 고약한 놈으로 알려져 있고 주로 영유아에서 많이 발생한다고 합니다. 2000년부터 2014년에 이르는 기간 동안 시간이 지남에 따라 4세 미만, 5-9세, 10-14세, 15세에서 69세 그리고 70세 이상의 사람들 중에서 로타바이러스에 감염되는 비율에 관한 회귀식을 수립합시다. 그림을 보면 시기별 바이러스의 변동은 주기성을 가지고 변화합니다. 이를 반영하여 비선형회귀모형을 generalized linear model로 구축할 필요가 있습니다. 만약 MGLM 패키지가 설치되어 있지 않으면 > install.packages("MGLM") > require(MGLM) # Fit multivariate response GLM regression # dist = a description of the error distribution to fit # MN = Multinomial Distribution # DM = Dirichlet Multinomial distribution > Multinom_mod <- MGLMreg(as.matrix(RotaVirusBB[, agNames]) ~                           t + sin + cos, data = RotaVirusBB, dist = "MN") as.matrix(RotaVirusBB[,agNames])에 agNames가 정의된 벡터로부터 필요한 열을 추

stepAIC 활용, 모형 선택

AIC는 Akaike Information Criterion의 약자입니다. 모형은 단순하면서도 설명력이 높아야 좋습니다. AIC를 활용하여 단순하고 더 설명력이 높은, 더 적합한 모델을 선별하는 방법을 알아보겠습니다. 먼저 MASS 패키지가 필요합니다. > library(MASS) > quine.hi <- aov(log(Days + 2.5) ~ .^4, quine) 이 코드를 보면 aov()함수 안에 formula가 다음과 같습니다. log(Days + 2.5) ~ .^4 컴마(.)는 나머지 모든 변수를 의미하고 ^4이 되어 있으니 2way, 3way, 4way interaction effect을 고려하라는 이야기입니다. quine 데이터 셋은 New South Wales 학교의 결석에 관한 자료입니다. 이 데이터의 변수는 Eth:인종(원주민, 그렇지 않은 경우) Sex:남녀 Age:연령그룹(F0, F1, F2, F3) Lrn: 학습성취도(평균(AL), 느림(SL)) Days: 한 해의 결석 날짜 4way를 제외시켜보지요. > quine.nxt <- update(quine.hi, . ~ . - Eth:Sex:Age:Lrn) update함수는 이미 구한 fit에서 특정 효과를 제외할 수 있습니다. formular를 보면 .~. 이 있습니다. 이것은 앞서 있던 fit의 formula를 그대로 받는다는 의미이고, - Eth:Sex:Age:Lrn은 이것만 제외시키라는 것입니다. Fit의 결과를 보면 Call: aov(formula = log(Days + 2.5) ~ Eth + Sex + Age + Lrn + Eth:Sex + Eth:Age + Eth:Lrn + Sex:Age + Sex:Lrn + Age:Lrn + Eth:Sex:Age + Eth:Sex:Lrn + Eth:Age:Lrn + Sex:Age:Lrn, data = quine) Terms:

폭력과 정당함

싸움이 있으면 자기가 잘 했다. 자기는 맞았다 이런 주장을 곧잘 합니다. 저는 폭력에 매우 심각하게 반응하는 편입니다. 단적으로 폭력을 사용하는 사람은 사람 취급하지 않습니다. 고하를 막론하고 하나님 아래에 우리 인간이 있지 않습니까? 사람이 사람을 해하는 일에 주님이 기뻐하실리 없습니다. 다치면 아픕니다. 당연한 이야기로 들리지만 당신이 아프지 않다면 그 아픔을 온전히 이해하기 어렵습니다. 남에게 고통을 가할 목적으로 당신의 주먹과 발을 움직이면 안됩니다. 화 난 사람에게 "왜 화가 났습니까?" 라고 물어보면 논리적으로 이야기하는 사람이 꽤 드물어 보입니다. 그냥 화가 나서, 화가 나서 화를 냅니다. 제 눈에는 화 난 것을 즐기는 것으로 보입니다. 폭력도 마찬가지 입니다. 폭력을 즐기는 사람이 폭력을 저지르고 폭력을 두둔합니다. 폭력에 사로 잡히지도 말고 폭력을 두둔해서도 안되겠습니다. 폭력에 잘잘못은 없습니다. 그것 자체가 악입니다. 경찰이, 군인이 폭력과 살인을 저지른다고 이들의 무력 행사가 정의라고 보십니까? 이들의 무력을 우리 모두가 용인하기 때문에 그럴까요? 아니면 정말 주님의 율법에 정당한 폭력에 대한 뜻이 담겨 있는 것일까요? 당신이 주님과 예수님을 입에 담고서도 온전히 목숨을 부지할 경우가 아닌, 화를 내기 위해 힘을 뽐내기 위해, 목적을 위해 폭력을 정당하게 여긴다면 하나님 나라 계단에서 용서를 구할 기회조차도 가지지 못할 것입니다. 폭력을 두둔하지 말고 우리 모두 평화를 위해 기도합시다.

R 스크립트: 탐색적 분석, 크론바하 신뢰도, 요인분석

# 탐색적분석 # 내장 데이터 attitude를 사용합시다. # 큰 재무조직의 피고용인을 대상으로 한 데이터입니다. # FUNCTION DEFINITIONS f_chk_packages <- function() {   if(! require(psych, quietly = T)) install.packages("psych")   if(! require(GPArotation, quietly = T)) install.packages("GPArotation")  } f_des <- function(x) {   f_chk_packages()   cat("START =====================\n")   print(describe(x))   cat("END =====================\n") } f_cor <- function(x) {   cat("START =====================\n")   print(corr.test(x))   pairs.panels(x)   cor.plot(cor(x))   cat("END =====================\n") } f_factor <- function(x) {   print(alpha(x)) #   nfactors : 요인의 수 #   rotate   : 요인의 회전 방법 (varimax,oblimin,...) #   fm       : 알고리즘 (minres, wls, gls, pa, ml) 차례로 OLS, WLS, GLS, principle component, maximum likelihood   print(     fa(x,        nfactors=2,        rotate="varimax",        fm="pa")   ) } # SAMPLE SCRIPT head(attitude) f_des(attitude)

정의로움과 조직. 왜 당신은 절망하나.

조직과 정의의 문제는 참으로 미묘하다. 과거 "악의 조직"에 관한 책을 쓰고 세계 정복이 가능하냐는 질문을 하는 책이 있었다. 다시금 물어보지만 과연 악의 조직은 정의롭지 못한가? 좀더 명확히 질문을 해 보면 악의 조직의 구성원은 정의를 얼마나 귀중하게 생각하는가? 전쟁을 하기 때문에 군인이 사람을 죽이는 것이 정당하다고 이야기하는 사람들을 어릴 때 많이 보았다. 흔한 논술 문제의 주제이기도 하다. 조직의 목적이 있기 때문에 그 개인의 가치관에 위배되어도 정당성이라는 옷을 입혀 따뜻하게 마음을 녹이나? 정작 사람을 해치는 군인은 이런 정당성의 갑옷을 입기 어려울 수도 있다. 그것은 직접 체험해 본 사람만이 스스로에게 내릴 수 있는 일종의 위안이지 정당성을 부여할 문제는 아니라고 본다. 경영 현실에서 정의를 세우고자 하는 노력의 일환으로 '사회적' 가치와 기업의 가치를 연계하려는 뚜렷한 움직임이 보인다. 그러나 조직이 늙으면 힘이 없어지고 힘이 없으면 순응하듯, 정의에 대가를 지불해야 한다는 사실이 명확하게 보일 수록 조직의 정의는 대세론에 밀린다. 이리하여 중요한 것은 바로 조직의 내성과 시대정신이다. 어느 정도 변화에도 조직의 기틀과 가치가 무너지지 않을 정도로 허용선이 투명하여야 한다. 변화가 가져올 부작용에 대해서 미리 걱정하지 않아도 될 정도로 투명성과 신뢰성을 가져야 흔들림이 와해로 이어지지 않는다. 또한 변화주체자들 역시 시대 정신을 나누어 가져야 한다. 변화를 시키려거나 변화의 대상이 되는 자 혹은 그 단위 조직 모두 조금씩 시대 정신의 부담을 나누어 가져야 한다. 시대 정신이라는 것은 우리 세대 이후 세대를 위한 초석을 세우기 위해 현재 가진 것을 내려놓는 용기를 필요로 하지 않은가. 작은 용기에 박수를 보내고 기틀이 튼튼한 조직을 세울 때 우리는 비로소 정의와 조직 관계를 논할 토대 위에 있게 된다. 왜 젊은이들이 전세대의 악습을 되풀이 하고 정의롭지 못한 행태를 보이며 겉으로는 강하고 속으로는 두려움

모의주주총회

이미지
학생들이 개콘 따라하기...

2014 경영정보학회

A3 세션 좌장을 맡아 두 시간 가량 봉사했습니다. 학회 안내문 정말 오랫동안 보지 못했던 천은영 박사님도 뵙고 이인곤 교수님 발표도 듣고 중국에서 오신 여러 박사님들도 같이 해서 좋았습니다. 학회는 학생들의 경연 대회라고 해도 좋을 만큼 주로 학생이 발표를 합니다. 어제 저의 세션에서도 전부 학생 발표였습니다. 어려움을 극복하고 훌륭하게 발표를 마친 모든 분께 경의를 표합니다. 발표를 볼 때마다 나도 리서치랩을 가지고 싶다!라는 생각을 하지 않을 수가 없습니다. 어제 나온 주제들을 보면 소셜넷 내의 동질성과 사물인터넷의 결합이 업무 성과를 높인다는 가설 인프라가 열악한 사회환경에서도 열망과 신뢰가 정보기기 수용 정도를 높인다는 가설 조직환경에 대한 개인 태도가 열린 혁신의 성과에 영향을 준다는 가설 팀기반 노력과 조직규범적 노력이 정보기술 전유 노력을 통해 작전 성과를 높인다는 가설 이 제안되었습니다. 짤은 시간이었기에 충분한 토론과 대화를 하지 못한 점 대단히 아쉽습니다. 좋은 결과가 있기를 바랍니다.

도현명 만나기

임펙트 스퀘어 CEO 도현명 씨를 만나러 가는 중임다. 아... 뭔가 초청을 좀 하고 싶은데 학교에서 깔끔하게 지원해주지 않네요. 그래도 실망치 말고 고고씽?

Oracle OLAP Demo

R과 RStudio 설치법

이미지
수업 시간에 사용할 R과 RStudio입니다. 설치하는 방법을 보고 잘 설치하시기를 바랍니다.

봄날의 곰

이미지
늦은 시간 딱 두 시간만 일

lpSolve를 활용한 수송모형 해결 방법

이미지
수업 시간에 보여줬던 데모

학부생 논문 특강 후기

생각보다 사람들이 많이 와서 놀랐다. 보강으로 한 이번 강의는 319호 연구실에서 진행했다. 욕심을 좀 더 내면 아예 수업으로 만들었으면 어떨까 하는 것. 손으로 해 볼 수 있는 것을 수업 시간에 다루었으면 좋겠다는 학생들의 적극적인 피드백이 있었다. 당연히 맞는 이야기다. 아쉽게도 나에게 배정된 대학원생 조교가 없어서 강의를 효과적으로 진행하기는 참으로 어렵다.

포기할 때를 아는 법

반푼수가 집안 망친다는 이야기는 정말 명언이다. 대응책이라고 내놓은 아이디어를 보면서 실소를 금할 수 없다. 대체 목표도 효과성도 효율성도 고려하지 않고 그냥 던지는 이런 아이디어... 그러면서 비판을 받아들이지도 듣지도 못하는 태도까지. 이제 포기하시라. 떠날 때 아름다운 사람이 진정 아름답다.