2015-05-07 사회과학 연구방법론 - 연세대학교 정보대학원 수업내용

통계는 양적 연구에 필수적인 툴
SPSS 21 사용
이건 사실 다른 사람들에게 용역을 줄 수도 있는 부분.
다만, 데이터를 모아놓았어야 하며, 어떤 테스트가 필요한지는 알아야 하죠.
이번에는 PLS까지 할거에요.
기본 지식을 습득하는 시간.
석사 학위 논문은 충분히 돌릴 수 있음.
많이 알면 알 수록 좋긴함.
 
통계 용역을 해주면서 교수님들과 공동 저자로 논문을 많이 냈었음.
박사학위 졸업전에 tenure를 딸 정도로 많은 논문을 냈음.
 
실습 내용이 학기말 시험에 10% 반영
 
보통 3가지 결과가 들어가게 된다.
1. 샘플에 대한 소개를 해주는 통계가 필요.
 - 성별, 나이, 기타 등등
2. 신뢰도랑 타당도 체크
3. 가설 테스팅 결과.
 
분산: 내 데이터가 얼마나 퍼져있는가. (평균값과 개별값과의 차이)
 
지난학기 중간고사 성적이 76점 이번학기 중간고사 85점이더라.
이번 학기 수강생들의 학력이 더 높은 것인가?
평균 값만으로는 이야기 하기 힘들다. 분산을 이해하는 것이 중요하다.
Skewness 얼마나 치우처져 있는지. (봉우리가 오른쪽으로 치우처 있다 등)
Kurtosis 첨도. 얼마나 뾰족한지.
 

 
신뢰도가 낮은 bad apple을 빼고 통계를 돌림.
PLS는 CFA임
EFL과 크론바알파
PLS는 갑론을박이 많음.

 
솔직하기만 하면 된다.
 - 일반적인 방법으로 테스트를 했는데, 결과가 잘 안나왔다. 그래서 더 적합한 방법인 최신의 통계 기법을 사용했다. 라고 밝히기만 하면 된다.
 
실습은 모수통계로 전부함.
비모수통계.
 
<통계 1강>
기말고사 때, 실습 시험도 있음.
수업시간에 나온 것 말고도 보기 때문에
통계 퀴즈. 오픈 노트북. 통계시간 마지막 날에 봄.
기말고사는 오픈북이 아님. 비중이 좀 있음.
 
논문을 쓰는 데에 있어서 가장 기본적인 통계만 배운다.
 
통계의 근거가 어떻게 산출되었는지 알고 싶으면 다음의 강의를 참조할 것.
Basic Statistical technique in the IT industry
(이상우 교수님)
정량적 데이터 분석 및 설계
(김희웅 교수님, for Ph.D.)
 
타당성과 신뢰도가 제대로 확보되지 않은 설문 문항은 다른 연구자들에게 많은 피해를 주게 된다.
 
# EFA vs CFA
 
EFA (Exploratory Factor Analysis)  - 여러 논문에서 가져왔을 때
Necessary for Empirical research
CFA (Confirmatory Factor Analysis) - 이론에서 가져온 경우. 한 논문에서 가져온 경우.
단, SPSS에서는 CFA를 못함.
 
# 수렴타당성
For convergent validity
 
각 설문 문항이 각 변수를 정확하게 측정하고 있는가.
Factor loading 책에는 0.5로 되어 있다. 0.5가 넘으면 제대로 측정하고 있다고 할 수 있음.
 
분석 > 차원감소 > 요인분석> 요인회전

 
요인 - 비슷한 설문항목끼리 뭉쳐놓은 것.
 

 
변수 4개 설문항목 22개면, 고유값이 1 넘는게 적어도 4개 이상이어야 함. 그리고 총 분산의 누적 %가 60% 이상이어야 함.
 

 
스크리 도면 - 기울기의 완만함이 어디부터 시작하는지를 보면 해당 변수를 사용할 수 있는 여지가 있음.

항상 회전된 성분행렬을 본다고 생각할 것.
 

 
 - 다른 변수 측정항목이 모인 경우 삭제
 - 0.5 이하면 삭제
 - 멀티로딩 에러 삭제
 
Internal consistency: 처음부터 끝까지 한결같은 성질
논문의 주제가 바뀌더라도 해당 변수를 측정하고 있는지를 봐야함.
크론바 알파 값을 본다.
 
p171 에 신뢰성 검정
 

이 화면이 나오게 하려면,
 

이 단계에서 작은계수 표시 안 함 체크 풀면 된다.
 
# 상관분석
변수간의 유사성 측정을 위해 각 변수들의 평균 값을 계산하여 비교한다.
변환>변수계산> 평균 계산 식 코딩하고 결과값 도출
상관 계수 도출.
 

Pearson 상관계수 0.6 이상이면 변수간 유사성이 높기 때문에 다중공선성 확인이 필요하다라고 서술해야 함.
(전제가 독립변수임. 일반적으로 종속변수를 넣어서 검증하기도 함. 그러면 종속변수와 유사성이 발견되면 해당 변수는 빼도 된다.)
 
 
mCom4 가 종속변수
 
PLS를 사람들이 많이 쓰는데, EFA를 어떻게든 통과 시키는 것이 중요할 듯. 안된다면 PLS를 쓰긴 하겠지만…
(PLS는 CFA에서만 사용해야 하기 때문)
 

 
사회과학 분야는 추상적인 분야임. 0.4~0.6 이면 굉장히 높은 것임. 너무 높으면 연구할 필요가 없을 정도로 명확한 사회현상이라고도 할 수 있음.
가능성이 있다. 라는 표현에 가까움. 유의한
 

 
 
외울 것.

 
2014-11-25 [Linux] Hadoop 설치 가이드 1

<시작하세요 하둡 프로그래밍> 기초에서 실무까지 하둡의 모든 것 - 정재화 지음
 


사용자 추가/삭제
 

$ sudo adduser hadoop2

(useradd 아님)
 
사용자 계정 삭제
#userdel 계정명 // 사용자 계정 디렉토리와 파일은 삭제하지 않고 계정만 삭제
#userdel -r 계정명 // 사용자 디렉토리까지 함께 삭제
 
삭제명령
rm  
-r 해당 폴더안에 있는 모든 파일들까지 같이 삭제하고 자기자신 폴더까지 삭제하는 옵션입니다
-i 파일들이나 폴더를 삭제할때 삭제할것인가를 묻도록 하는 옵션입니다
-f 파일이 있든없든 오류를 표출하지 않고 무조건 삭제한다는 옵션입니다
rmdir 는 폴더만 삭제
rm -rf dir3 는 하위 파일/폴더도 삭제
사용자 계정 생성여부 확인법.
 
로그인

파일 디렉토리 조회

 
리눅스와 유닉스의 차이점
 
 
리눅스
유닉스
신뢰도
서버들이 수 년간 중단 없이 운행되곤 하지만, 일반적인 사용자에게 있어 리눅스는 매우 믿음직한 운영체제이다.
포털이나 대기업 사이트 같은 주요한 서버에 사용된다. 그만큼 유닉스는 신뢰도 문제에서 큰 점수를 받는 운영체제이다.
성능
과중한 네트워크 부하를 처리하여야 할 경우에는 최적화된 성능을 발휘하지는 못하지만, 서버 운영체제로서 적합하다.
서버 운영용 운영체제이다. ID와 비밀번호 관리 등의 기능과 암호화 능력 월등히 좋다.안정성과 메모리 관리 능력도 뛰어나다.
기술
지원
많은 기관들이 리눅스를 전문적으로 지원한다. 모든 주요 리눅스 업체들은 다양한 방법으로 고객을 지원 하며, 몇몇 업체는 중단없이 365일 서비스를 제공한다. 최후의 수단으로 소스를 수정하여 직접 문제를 해결할 수 있다.
하드웨어와 OS 자체가 통합적으로 개발되서 나오므로 IBM사에서 일괄 관리한다. 회사 브랜드가 걸려있어 리눅스에 비해서는 지원이 좋은 편이다.
구축
비용
몇몇 업체들은 상용 배포판을 매우 저렴한 가격에 제공한다. 어플리케이션과 문서들 또한 무상 혹은 저렴하게 구할 수 있다. 리눅스는 사용 제한이 없기 때문에, 구축하고자 하는 모든 시스템에 추가 비용없이 설치할 수 있다. 리눅스 시스템을 위한 총 구축비용은 매우 저렴하다고 할 수 있다
굉장히 비싸다. 유닉스는 장비 자체도 따로 나오는 경우가 태반이고, PC용 유닉스도 있지만 보통은 장비가 하나 개발되고 거기에 최적화된 유닉스를 개발해서 상품으로 나오는 경우가 많다. 따라서 장비 값만 해도 몇 억 씩 하는 경우가 대부분. 그러나 대기업에서는 큰 비용을 들여서라도 보안 등의 문제로 유닉스를 사용한다.
하드웨어
지원
리눅스는 다양한 하드웨어, 플랫폼들을 지원한다.
많은 상용 유닉스가 있지만, 리눅스에는 못 미친다.
 
root 권한 얻기
sudo -s

$가 #으로 바뀌면 관리자 권한을 획득한 것이 된다.
 
디렉토리 조회
ls -al
ll
재부팅
sudo restart 혹은
sudo init 6 혹은
sudo shutdown -r
 
하둡설치
 
하둡 다운로드 사이트
 
하둡 다운로드 명령어
압축풀기 명령어
tar xvfz hadoop-1.0.3.tar.gz
심볼릭 링크 생성
ln -s hadoop-1.0.3 hadoop
ls -l
 
현재 내가 받은 파일
 
vi 편집기 명령어
i 는 insert 모드 -> esc 는 종료하기 -> shift+q -> wq
 

 
 
인코딩 방식 변경(한글처리)
한글 폰트 생성
(없을시)
root@clus15:~# sudo locale-gen ko_KR.UTF-8
root@clus15:~# sudo locale-gen ko_KR

인코딩 설정 파일 변경
root 계정 로그인
root@clus15:~# vi /etc/default/locale
(혹은 vi /etc/sysconfig/i18n)
설정 내용
LANG="ko_KR.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"
설정 내용 적용
root@clus15:~# source /etc/default/locale
echo $LANG
에러발생시
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
복원
 
JDK설치
 
호스트파일 수정
sudo vi /etc/hosts 로컬 호스트 관련 내용은 전부 주석(#)처리 하고 저장
source /etc/hosts
JDK다운
sudo apt-get install openjdk-6-jdk
가능하면 오라클에서 자바 받아서 사용할 것. (위에 것 말고) jdk-6u33-linux-x64.bin
FTP업로드 후,
파일 이동
hadoop2@clus11:~$ sudo cp jdk-6u33-linux-x64.bin /usr/local
하위폴더까지 권한변경
sudo chmod -Rf 777 hadoop2
hadoop2@clus11:/usr/local$ sudo chmod -Rf 755 jdk-6u33-linux-x64.bin
JDK 설치
root@clus15:/usr/local# ./jdk-6u33-linux-x64.bin
환경변수지정
-- 수정 호출 root@clus11:/# sudo vi /etc/profile
-- 수정내용 ---
# 2014-11-26 JDK Enviroment Variables Enroll Section  created by  YUNHO MAENG
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASS_PATH="."
---수정내용 재부팅 없이 반영---cd
source /etc/profile
---지정 확인---
java -version

자바 심볼릭 링크
cd /usr/local/
ln -s jdk1.6.0_33 java
 
SSH 인증
 
 
0. SSH 설치가 되어 있지 않을 경우 설치진행
 
     Redhet 또는 CentOS Linux의 경우

# yum -y install openssh-server openssh-clients
 
     Ubuntu Linix의 경우

# sudo apt-get install openssh-server openssh-clients
 
 
1. SSH 사용 포트 확인
netstat -anp | grep sshd
 

 
위 그림처림 기본포트인 22번 포트 사용 확인
 
 
2. SSH 설정 포트 설정 변경
 

cat /etc/ssh/sshd_config | grep -n 22

 
위 그림을 참고하면 /etc/ssh/sshd_config 파일의 13번째 라인의 #Port 22 값을 주석 해제 후 원하는 포트로 변경하도록 하자
 

vi /etc/ssh/sshd_config
 
변경 전 : #Port 22   ----->   변경 후 Port 2222
 
3. SSH 변결된 설정 적용
 
  Redhet 또는 CentOS Linux의 경우
# service sshd restart   또는  # /etc/rc.d/init.d/sshd restart 
    
Ubuntu Linix의 경우
#sudo service ssh restart
 
 
4. SSH 변경된 포트 확인
아래의 명령어를 통해 기존 22번 포트에서 사용자가 수정한 포트(본문에서는 22222번으로 변경)로 변경되었는지 확인한다.
 

netstat -anp | grep sshd
 
 
5. Iptable 편집(IPtable을 사용하는 경우 옵션)

#vi /etc/sysconfig/iptables
 
아래 내용 추가

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22222 -j ACCEPT
 
서비스 재시작

#/etc/init.d/iptables restart
 

ssh 인증관련 동영상 강의
rsa 옵션 확인

ssh인증키 생성
hadoop2@clus15:~$
ssh-keygen -t rsa
클라이언트에서도 만들어야 작동.
생성결과예시
The key fingerprint is:
12:50:fa:80:1c:32:43:11:5c:cb:c5:9a:a5:3d:c1:36 hadoop2@clus15
ssh인증키 전송
hadoop2@clus15:~$
scp ~/.ssh/id_rsa.pub hadoop2@clus16:id_rsa.pub
authorized_keys 에 추가
cat $HOME/id_rsa.pub >> $HOME/.ssh/authorized_keys
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
패스워드 요구시
sudo chmod -Rf 755 .ssh

폴더생성하고 권한 설정
mkdir .ssh
chmod 700 .ssh
(데이터노드)
ssh 폴더로 이동
mv id_rsa.pub ~/.ssh/id_rsa.pub
cp id_rsa.pub  ~/.ssh/authorized_keys
ssh 서버재시작
sudo /etc/init.d/ssh restart
service ssh restart
Delete old ssh host keys
# /bin/rm -v /etc/ssh/ssh_host_*
Reconfigure OpenSSH Server
# dpkg-reconfigure openssh-server
Host SSH info update
ssh-keygen -R hostname
ssh-keygen -R 163.152.47.62
example ssh-keygen -R 163.152.47.64
This will update the offending of your host from the known_hosts
ssh 변경시 에러날
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
클라이언트에서 해당 명령어 실행
hadoop2@clus16:~/.ssh$ sudo vi known_hosts
hadoop2@clus16:~/.ssh$ source known_hosts
ssh 서버 정지
sudo service ssh stop
ssh접속시도
hadoop2@clus15:~$ ssh clus16
공개키 전송
hadoop2@clus15:~$ cd ~/.ssh
hadoop2@clus15 .ssh$ cp id_rsa.pub authorized_keys
하둡 실행
start-all.sh
 
하둡 환경설정 파일 수정
 
경로
$HADOOP_HOME/conf
/home/hadoop2/.profile
# 2014-11-26 set HADOOP_HOME enviroment variable here created by YUNHO MAENG
HADOOP_HOME=/home/hadoop2/hadoop-1.0.3                                       
hadoop-env.sh
hadoop2@clus11:~/hadoop-1.0.3/conf$ sudo vi hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.6.0_33
# 2014-11-26 HADOOP_HOME setting created by YUNHO MAENG
export HADOOP_HOME_WARN_SUPPRESS="TRUE"
masters
hadoop2@clus11:~/hadoop-1.0.3/conf$ sudo vi masters
localhost -> clus15로 변경
slaves
hadoop2@clus11:~/hadoop-1.0.3/conf$ sudo vi slaves
localhost -> clus16 로 변경
clus11 추가
clus16
clus11
core-site.xml
hadoop2@clus11:~/hadoop-1.0.3/conf$ sudo vi core-site.xml
<configuration>
 <property>
  <name>fs.default.name</name>
  <value>hdfs://clus15:9000</value>
 </property>
 <property>
  <name>hadoop2.tmp.dir</name>
  <value>/home/hadoop2/hadoop-data/</value>
 </property>
</configuration>
hdfs-site.xml
hadoop2@clus11:~/hadoop-1.0.3/conf$ sudo vi hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
 
<property>
<name>dfs.http.address</name>
<value>clus15:50070</value>
<description>
The address and the base port where the dfs namenode web ui will listen
on.
If the port is 0 then the server will start on a free port.
</description>
</property>
 
<property>
<name>dfs.secondary.http.address</name>
<value>clus16:50070</value>
<description>
The secondary namenode http server address and port.
If the port is 0 then the server will start on a free port.
</description>
</property>
mapred-site.xml
hadoop2@clus11:~/hadoop-1.0.3/conf$ sudo vi mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>clus15:9001</value>
</property>
환경 설정 파일 전송
scp /home/hadoop2/hadoop/conf/* hadoop2@clus16:/home/hadoop2/hadoop/conf
하둡 실행
hadoop2@clus15:~/hadoop-1.0.3$ ./bin/hadoop namenode -format
hadoop2@clus15:~/hadoop-1.0.3$ ./bin/start-all.sh
실행 확인
hadoop2@clus15:~/hadoop-1.0.3$ ./bin/hadoop dfsadmin -report
하둡 예제 실행
예제 파일 업로드
hadoop2@clus15:~/hadoop-1.0.3$ ./bin/hadoop fs -put conf/hadoop-env.sh conf/hadoop-env2.sh
  ./bin/hadoop fs -put news.txt output/news2.txt
hadoop2@clus15:~$ ./hadoop-1.0.3/bin/hadoop fs -put ex/2008.csv output/2008.csv
워드카운트 실행
hadoop2@clus15:~/hadoop-1.0.3$ ./bin/hadoop jar hadoop-examples-*.jar wordcount conf/hadoop-env2.sh wordcount_output
   ./bin/hadoop jar hadoop-examples-*.jar wordcount output/news2.txt wc_output_1127
워드카운트 출력 결과 조회
hadoop2@clus15:~/hadoop-1.0.3$ ./bin/hadoop fs -cat wordcount_output/part-r-00000
   ./bin/hadoop fs -cat wc_output_1127/part-r-00000
   ./bin/hadoop fs -cat wc_output_2008.csv/part-r-00000
하둡 멈춤
hadoop2@clus15:~/hadoop-1.0.3$ ./bin/stop-all.sh
항공 출발 지연 데이터 분석
다운로드
업로드
hadoop2@clus15:~$ ./hadoop-1.0.3/bin/hadoop fs -put ex/2008.csv input/2008.csv
실행
./bin/hadoop jar wikibooks-hadoop-examples.jar wikibooks.hadoop.chapter05.DepartureDelayCount input dep_delay_count
확인
./bin/hadoop fs -cat dep_delay_count/part-r-00000 | tail -10
 
이클립스에 하둡 개발환경 만들기
 
프로젝트 생성
Package Explorer -> 우클릭 -> new -> 자바 프로젝트 ->next 3번째 탭 Library -> Add External jar -> jar파일들추가 -> finish
 

 

 
build.xml
Package Explorer -> 우클릭 -> New -> File -> build.xml 이름 적고 생성.
<?xml version="1.0" encoding="utf-8"?>
<project name="HadoopExamples" default="build">
 <!-- version info -->
 <property name="major-version" value="1" />
 <property name="minor-version" value="0" />
 <property name="build-number" value="0" />
 <property name="version" value="${major-version}.${minor-version}.${build-number}" />
 
 <!-- name info -->
 <property name="company-name" value="Korea Univ" />
 <property name="project-name" value="hadoop-examples" />
 <property name="general-lib" value="${company-name}-${project-name}.jar" />
 <property name="general-src" value="${company-name}-${project-name}-src.zip" />
 
 <!-- source directory info -->
 <property name="build-Path" location="." />
 <property name="src.dir.src" location="${build-Path}/src" />
 <property name="src.dir.bin" location="${build-Path}/bin" />
 <property name="src.dir.build" location="${build-Path}/build" />        
 
 
 <!-- build info -->
 <target name="build" depends="build-lib, build-src" />
 
 <target name="clean-all" depends="clean-lib, clean-src" />
 
 <target name="clean-lib">
 <delete file="${src.dir.build}/${general-lib}" />
 </target>
 
 <target name="clean-src">
 <delete file="${src.dir.build}/${general-src}" />
 </target>
 
 <target name="build-lib" depends="clean-lib">
 <jar destfile="${src.dir.build}/${general-lib}" basedir="${src.dir.bin}">
 <manifest>
 <attribute name="${project-name}-Version" value="${version}" />
 </manifest>
 </jar>
 </target>
 
 <target name="build-src" depends="clean-src">
 <zip zipfile="${src.dir.build}/${general-src}" basedir="${src.dir.src}">
 </zip>
 </target>
 
</project>
 
Ant build
생성된 xml 파일 우클릭 -> Run As -> Ant Build
 

 
 
Heartbeat 방화벽 설정
iptables 방화벽 포트 접근 허용
# master.namenode, secondary_namenode
 
1
2
3
4
5
6
[root@master ~]# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50030 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50090 -j ACCEPT
 
# 테이터노드(datanode) : datanode 서버들 별로 포트 접근 허용
1
2
3
4
5
6
[root@master ~]# vi /etc/sysconfig/iptables
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50010 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50020 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50060 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50075 -j ACCEPT
 
번 외
 
설치 확인법
(Standalone)
hadoop2@clus15:~$ cd $HADOOP_HOME
globus@clus15:/home/hadoop2/hadoop-1.0.3$ ./bin/hadoop jar hadoop-examples-1.0.3.jar wordcount README.txt wordcount_output
(hadoop2@clus15:~$ $HADOOP_HOME/bin/hadoop jar hadoop-examples-1.0.3.jar wordcount README.txt wordcount_output)
 
Maven설치
$ sudo apt-get install maven2
 
FTP에서 파일 수정하기
파일 읽기/쓰기/실행 권한을 루트 디렉토리에 준다.
 globus@clus15:/home$ sudo chmod 777 hadoop2
r : 읽기권한(4) , w : 쓰기권한(2), x : 실행권한(1)
권한값 읽기 : [ -rw-rw-r-- ] => 664로 읽을 수 있다. (r+w(6), r+w(6), r(4))

이 후, Xshell의 새 파일 전송 버튼을 누르면 FTP클라이언트가 실행된다. 

 
 




2016 08-11 아산서원 나눔특강 - 빅데이터 분석을 통한 조혈모세포 기증에 대한 대중 인식과 실제

  1. 1. 나눔특강
  2. 2. 1.도입
  3. 3. 바늘 들어가는 거 무서워서 헌혈할 때 못보는 너무나 평범한 사람의 조혈모 세포 기증기 조혈모세포 기증 하는 모습 기증 이 후 감사패  1주일이라는 시간과 아픔, 각종 우려와 잘못된 인식, 5개월간의 금주 끝에 무사히 조혈모 세포 기증을 마침  어떤 과정을 거쳐서 결심하게 되었는지 나누기 위해 이 자리에 섬.
  4. 4. 2.조혈모세포기증
  5. 5. 빅데이터란, 기존 Data Analytics를 실시간/결과 도출/구체적 운영 제안 범위로 까지 확장시킨 것.  자료의 활용적 측면에서도 2차 자료(Secondary Data)를 활용하는 경우가 많음  애초에 분석을 위해 누적된 데이터가 아니기 때문에 객관성을 보완.  “검색할 때 사람들은 거짓말을 하지 않는다” *장영재(2012), DBR, “엄청난 정보로 새 패러다임을 열다. 구글의 무인자동차 처럼” **정재화(2012). "시작하세요! 하둡 프로그래밍 기초부터 실무까지 하둡의 모든 것." 빅데이터를 활용한 대중 인식파악 예시**빅데이터 분석과 일반 데이터 분석간 차이* The United States (is vs are)
  6. 6. 일반적으로 ‘백혈병’ 이라고 하면 ‘골수기증’을 흔하게 떠올리기 마련.  <너는 내 운명> 에서는 친모와 시어머니가 동시에 백혈병에 걸리는 데, 여주인공은 둘 중 선택을 해야 하는 상황(실제로는 매우 희박함).  미디어 속 ‘골수 기증’은 매우 고통스럽고 후유증도 심각한 것으로 묘사되는 경향이 있음. 사진출처: KBS 비현실적인 골수 조직 일치도‘백혈병’과 ‘골수기증’이 주요 갈등 요소
  7. 7. 미디어의 영향으로 ‘조혈모 세포’에 대한 인식은 현재 ‘골수’에 대한 인식에 비해 5배나 낮은 상황  R을 활용한 드라마 ‘너는 내운명’과 ‘골수’, ‘조혈모세포’ 간의 다중회귀분석 실시  Model의 F-statistic P-value가 𝟎. 𝟎𝟎𝟎𝟎𝟗𝟑∗∗∗ 으로 기준 값인 0.001보다 작아 매우 유의한 결과  모델의 각 경로의 P 검정 결과, 골수는 𝟎. 𝟎𝟎𝟕∗∗ 로 유의한 것으로 조혈모 세포는 𝟎. 𝟎𝟏𝟏∗ 로 다소 유의한 것으로 나타남. 출처: Google Trend (2016.08) 조회 결과 참고: 서민구(2014), 길벗, “R을 이용한 데이터 처리&분석 실무” 2008. 8월 드라마 <너는 내운명> 관심도 1차 최고점 2010. 9월 드라마 <너는 내운명> 관심도 2차 고점 2011. 7월 드라마 <너는 내운명> 관심도 3차 고점 2008. 5월 드라마 <너는 내운명> 방영시작 Adjusted 𝑹 𝟐=0.11 평균 드라마 시청률 30.8% 시청률 감안 𝑹 𝟐=0.34 골수 관심도 – 조혈모세포 관심도 = 40 시청률 감안 𝑹 𝟐 값이 관심도 차이를 근접히 반영
  8. 8. ‘골수’와 ‘조혈모세포’, ‘백혈병’에 대한 SNS 분석 결과 기증에 대한 막연한 두려움이 주로 드러남  2016-07-09 ~ 2016-08-09간 수집된 트위터와 네이버, 다음 블로그의 12,603건 분석 결과  ‘정치용어’, ‘골수팬’ 등 ‘기증’과 연관성이 떨어지는 탐색어를 정제 하였음. 데이터 출처: 다음소프트(2016), 소셜 매트릭스, “탐색어 추이”, 기간: 2016-07-09 ~ 2016-08-09 SNS 탐색어 맵 분석 결과 골수 닳다 부작용 심하다무서운 반대 하다 조혈모 세포 좋지않다 & 해로운 부작용 & 걱정 힘들다 부족한 무서운 & 무섭다 고통 & 공포 슬프다 백혈병 부작용 싫어 하다 충격 & 울다 위험한 & 위험 어렵다 & 어려운 고통 & 힘들다 발암 물질
  9. 9. 이에 따른 골수기증 및 조혈모세포 기증에 대한 괴담도 퍼지기 시작.  다른 장기마냥 골수를 주면 나는 없어진다. (거짓)  골수가 실제 환자에게 전해지는 것이 아니라 제약회사에 팔려진다. (거짓)  조혈모세포 재단이 막대한 수술비로 이익을 보고 있다 (거짓) 출처: JTBC (2016), 팩트체크, “혈액재고 비상…헌혈에 대한 오해와 진실”, https://www.youtube.com/watch?v=tzaC7yhjN_0
  10. 10. 조혈모세포 이식 수술의 의료수가는 국내의 경우 법으로 정해져 있으며, 의료보험시 매우 저렴한편  국내의 경우, 환자 부담금이 의료보험시 750~1,500만원선 (보건복지부, 2014)  미국의 경우, 가족외 타인에 의한 Bone Marrow (allogeneic) 이식 수술 비용은 $925,000 한 화로 약 10억원 이상(NFT, 2014) 출처: 보건복지부(2014), 보도자료, “비승인 조혈모세포이식 환자 최고 1,500만원 부담 감소” NFT(2014) U.S. organ and tissue transplants Milliman Research Report. http://www.transplants.org/faq/how-much-does-transplant-cost
  11. 11. 국가별 장기기증 현황 및 국내 기피 이유조혈모 세포 기증희망자 막연한 두려움과 문화적 요소로 인해 기증등록자, 기증동의율 모두 열악한 상황  인구의 1%인 50만명까지 필요한 상황이나 0.56%인 29만명에 그치고 있다(대한적십자사, 2015). 독일의 경우 인구의 5.7%인 460만명이나 등록되어 있음(질병관리본부, 2013).  타인간 조직 일치 확률은 1/20,000 로 국내 이식 대기자 현황에 비해 턱없이 부족한 형편 출처: 질병관리본부(2013), 희망의씨앗 정책매거진, Vol 6 대한적집사자(2015), 조혈모세포 기증 소개 및 현황, https://www.bloodinfo.net/stemcelldonation_intro.do
  12. 12. 질환별 이식현황기증방법별 현황 골수기증은 조혈모세포 기증 방법 중 하나로, 최근에는 말초혈 조혈모세포 기증이 주로 이루어짐  조혈모세포이식은 환자의 골수를 고용량의 항암제, 방사선으로 제거한 다음, 건강한 조혈모세포 를 넣어주어 다시 골수를 제건하는 방법. 조혈모세포는 적혈구, 백혈구, 혈소판을 만드는 어미세 포로 뼈 속의 골수에 많이 있는데, 말초혈액과 제대혈에도 존재함(삼성서울병원, 2016).
  13. 13. 약 1~2주 정도에 걸쳐서 기증은 이루어지며, 수술 2주전에는 취소가 불가능하니 신중한 결정필요. 03-1. 기증자: 입원전까지 금주 등 건강관리 03-2. 기증자: 1주일간 6대의 그라신 투여, 사람에 따라 통증 편차 심함. 진통제 제공. 03-3. 기증자: 중심정맥관 삽입술/골수 기증 진행할지 결정. 04-1. 수혜자: 타인의 조혈모세포를 이식받기 위해 수술 2주전에 방사선 전처리함. 이 때, 기증을 취소하면 환자는 100% 사망함. 신중히 결정해야 하는 이유. 05-1. 기증자: 2주뒤 혈액검사 결과가 정상으로 나오면, 음주도 가능. 05-2. 수혜자: 신생아들에게 실시하는 예방접종 실시, 면역 체계 재구축. 1년 생존시 95% 완치 05-3. 수혜자: 혈액형이 기증자를 따라 변화하기 시작. 5년 생존시 완치 판정
  14. 14. 아무리 확률이 낮아도… 의료사고 및 사망까지 고려할 수도 있는 상황으로 부터 오는 두려움  스카이 다이빙에는 기쁘게 나서던 자신이 어째서 망설이는지에 대한 의문  사고가 나더라도 별도의 보험으로 보호가 되고, 병원에서도 신속히 조치해주는 것을 약속  혹여나 잘못되더라도 웰다잉이 아닐는지… 출처: MedicalTimes(2015), “중심정맥관 삽입술 시 대량 출혈, 의료진 책임 20%”, http://www.medicaltimes.com/News/1101370 스카이 다이빙에 앞선 신체포기각서중심정맥관 삽입으로 인한 사망사고
  15. 15. 꼭 반드시 내가 해야하는 일과 그렇지 않아도 되는 일이 있음. 나눔 실천에도 마찬가지  ‘조혈모 세포’ 기증은 다른 누군가가 대체 불가능한 속성을 지니고 있음 출처: Rainforest Alliance (2012), Follow the Frog, URL: https://www.youtube.com/watch?v=3iIkOi3srLo
  16. 16. 수혜자가 사회에 해를 끼치면 어떻게 하나?  수혜자는 성인 백혈병 여성이었기 때문에, 골수 기증을 받은 성인 125명을 대상으로 18년간 이 루어진 삶의 질 추적연구를 참고하였음.  “74% of long-term survivors of bone marrow transplanation reported their current QOL was the same or better than before transplantation, 80% rated their current health status and QOL as good to excellent, and 88% said the benefits of transplantation outweighed the side effects.”*  대부분의 환자가 삶의 질이 나아진 것을 확인할 수 있었음 *출처: Bush, N. E., Haberman, M., Donaldson, G., & Sullivan, K. M. (1995). Quality of life of 125 adults surviving 6–18 years after bone marrow transplantation. Social science & medicine, 40(4), 479-490.
  17. 17. 수혜자에게 코디네이터를 통해 전달한 편지와 서적 사회를 위한 일이 수혜자의 일탈로 인해 사회에 해가 되지 않도록 당부.  기증자의 개인정보는 제거 했으나, 희생한 일들을 강조하여 일탈하지 않도록 의무감 부여.  석사졸업시험 연기, 5개월간의 금주, 부모님과의 갈등 등.  사회에 도움이 되는 일은 선택사항으로 명시
  18. 18. 3.서원생으로의자각과사회적책임
  19. 19. 함께 면접을 봤으나 합격하지 못한 여학생은 서럽게 한참을 울었다…  제가 앉아 있던 서원의 그 자리가 월등히 뛰어나서 앉아 있던 것이 절대 아니라 생각함.  운이 좋았을 수도 있고, 면접과 시험날 붙을 만한 사람의 컨디션이 안좋았을 수도.  설사 모든게 완벽했다 하더라도 떨어진 친구들이 납득할만 해야한다고 생각함.
  20. 20. 사회에서 길러진 사람이 아니면, 본전 생각이 날 수 밖에 없는 사회  개천에서 용이 나도 개천을 돌아보지 않는 사회.  너무도 힘들게 그 자리에 가서 본전 생각이 날 수 밖에 없음. SKY 진학률과 중식지원 받는 학생 비율 관계 *출처: JTBC (2012), '개천서 용 날 수 없나' SKY진학률 비교해보니, http://news.jtbc.joins.com/article/article.aspx?news_id=NB10106361
  21. 21. 4.큰변화를이끌어낼수있는작은실천들
  22. 22. 당신이 두려움을 이기면, 누군가는 죽음을 이깁니다.  가까운 헌혈장소를 방문하여 상담 후 '조혈모세포 기증희망자 등록 신청서'를 작성한 후 조직적 합성항원형 검사를 위한 혈액검체 5ml를 채혈하면 가능.  가능 기관: 대한적십자사, 가톨릭조혈모세포은행, 한국조혈모세포은행협회, 생명나눔실천본부, 한마음한몸운동본부 출처: 대한적십자사(2016), “기증희망 등록방법 및 유의사항” https://www.bloodinfo.net/stemcelldonation_method.do 유의 사항기증 희망 등록기준 만 18세 이상에서 40세 미만의 건강한 분들 1. HIV 감염 또는 에이즈(AIDS) 2. 조절이 안 되거나 입원이 필요한 정도의 중증의 천식 3. 각종 악성종양 4. 투약이 필요한 당뇨병 5. 지난 1년 안에 2회 이상의 발작 경험이 있는 간질 6. 심장발작(heart attack), 심혈관 우회로 수술, 기타 심장 병 7. 간 질환, 간염, 성병, 결핵 8. 빈혈, 고혈압, 저혈압 9. 정신질환, 지적장애인 다만, 정신과전문의가 본인 동의능력을 갖춘 것으로 인 정하는 사람은 그러하지 아니한다. 10. 저체중(남:50kg 미만, 여: 45kg 미만) 1, 2, 3, 4, 6, 8, 9번 항목은 현재질병이 없고 과거 어 느시점에서도 기왕력이 없어야함 5, 7번 항목은 현재질병이 없고 과거 1년간 기왕력이 없 어야함. 10번 항목은 현재 없으면 됨. 조혈모세포 이식은 환자와 그 가족에게는 생명의 희망입 니다. 기증희망 등록 후 연락이 안 되거나, 가족반대 또는 본인 의 기증거부로 인해 이식이 불가능하게 될 경우 이식을 기 다려온 환자들 에게 더 큰 상처가 됩니다. 기증희망 등록을 하고자 하시는 경우 본인의 의사를 가족 에게 알리시고, 기증에 대한 정확한 상담을 통한 결정을 부탁드립니다. 그리하여 10년…20년 후 조직적합성항원형이 일치하는 환자분이 나타났다는 연락을 받으셨을 때 그 약속이 지켜 질 수 있기를 부탁드립니다. 환자분이 나타났다는 연락을 받을 수 있도록 개인정보 수정을 꼭 해주시기 바랍니다.
  23. 23. 뇌사시 기증 가능한 장기 및 절차 죽은 자가 산 자에게 할 수 있는 마지막 선행이자 가장 숭고한 행위.  이식대기자 등록방법: 환자 등록신청(http://konos.go.kr/) → 이식의료기관(코디네이터)→ K-net 프로그램에 입력 *출처: 보건복지부, 대한의약회
  24. 24. 2014-05-04 Volunteer for 5k Race for Hope 2013-12-28 소아암 봉사활동 2014-04-10 EndPoverty 2030 참여 및 지지 Unicef 정기 후원
  25. 25. 5.맺음말
  26. 26. 마음을 가다듬고, 저 광야를 가는 무소의 외뿔처럼 홀로 가라 〈숫타니파타〉 中  큰 변화를 이끌어 낼 수 있는 작은 실천들은 두려움과 편견속에 스스로를 던지는데에 있습니다.  세상을 긍정적으로 변화시키는 일은 때로는 어렵고 두렵게만 다가올 것입니다.  저는 아산서원이 여러분들에게 있어 그러한 편견과 두려움을 깨는 하나의 계기가 되길 바랍니다.
  27. 27. 나눔특강Q&A


2015-03-05 하둡 (Hadoop) 한글 지원 (UTF-8) 지원

 
Hadoop 한글 인코딩 문제
이 문제는 한 9개월 전에 Hadoop으로 미니 프로젝트를 하면서 날려본 문제다.
문제를 해결하기 위해 백방으로 알아보고(심지어 더그커팅에게 문의까지…) 엄청난 삽질을 했지만 문제 해결을 위한 결정적 단서를 김형준님께서 주셨었다.
알다시피 자바는 유니코드, utf8기반이다
그래서 로그 처리를 하고 역색인 파일을 만드는데 입력 파일을 utf8로 변환을 해서 Hadoop 5대의 머신에 넣고 설치를 했다
뭐 처음에 영문으로만 간단하게 테스트 하고 본격적으로 한글 자료들을 Hadoop에 먹이기 시작했는데 한글이 알아보기 힘들정도로 깨져서 나오는 것이였다.
writer, reader를 고쳐보고 별짓을 다해도 안되서 고민하던중 Hadoop의 설정 파일을 고치면서 해결을 했다. (개인적으로 오픈소스 프로그램의 소스를 고치는것은 지양해야 한다고 생각한다. 소스코드의 다른 하나의 branch를 만드는 것이기 때문이다.)
문제의 요점이 아래와 같은데…
Hadoop을 돌리면 JVM에서 수많은 자식 JVM을 생성하는데 그 자식 JVM이 어미의 설정을 따르지 않아서 생기는 문제였다
그래서 아래와 같은 파일경로의 설정을 추가해주면 된다.
{$HADOOP_HOME}/conf/hadoop-site.xml 
 

<property>        
    <name>mapred.child.java.opts</name>
    <value>-Xmx200m -Dfile.encoding=utf-8</value>
    <description>Java opts for the task tracker child processes.  Subsumes
    ‘mapred.child.heap.size’ (If a mapred.child.heap.size value is found
    in a configuration, its maximum heap size will be used and a warning
    emitted that heap.size has been deprecated). Also, the following symbols,
    if present, will be interpolated: @taskid@ is replaced by current TaskID;
    and @port@ will be replaced by mapred.task.tracker.report.port + 1 (A second
    child will fail with a port-in-use if mapred.tasktracker.tasks.maximum is
    greater than one). Any other occurrences of ‘@’ will go unchanged. For
    example, to enable verbose gc logging to a file named for the taskid in
    /tmp and to set the heap maximum to be a gigabyte, pass a ‘value’ of:
        -Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc
    </description>
  </property>

아주 간단한데… 이걸 발견하기 위해 고생 참 많이 했었다.
ps. 오래전에 형준님이 요청하신 포스팅이였는데 이제야 올려 드린다. ^^;
 
 

+ Recent posts