top of page

오늘은 JMP를 이용해 업종별 매출액과 종업원 수, 자산 등이 나와 있는 예제 파일로 데이터 분석을 실시해보자. (예제 파일은 이메일로 요청하시면 보내드립니다.)

먼저 데이터테이블은 아래 사진과 같이 6개의 Columns와 31개의 Rows로 구성되어 있다. 변수는 각각 업종, 회사명, 매출액, 이익, 종업원 수, 자산 이렇게 나와 있다. 데이터 테이블이 어떻게 구성되어 있는지 한눈에 보려면, [Cols]-[Columns Viewer]을 눌러 확인할 수 있다.

그럼 이 데이터의 분포를 확인해 보자. 통계분석의 기본은 데이터가 어떻게 구성되어 있는지 파악하는게 가장 중요하다. 그리고 JMP의 Distribution 기능을 이용하면, 각 변수마다 대략적인 경향성을 파악할 수 있다.

이제 이 데이터들이 어떻게 분포하며, 어떤 평균값을 갖는지, 어떤 경향을 띄는지 파악 했다. 이제 아래의 가이드 라인을 따라 이 데이터를 활용한 여러 가지 분석을 실시하였다.



1. Formula 기능 활용하여 ‘매출액 대비 이익률’이 가장 높은 상위 회사 파악하기


먼저 새로 데이터 Columns을 만들어, ‘종업원 당 매출액’ 과 ‘매출액 대비 이익률’을 회사마다 계산해 보자. 새로 변수가 만들어질 공간에 마우스 커서를 놓고, 마우스 오른쪽 버튼을 눌러 새로운 Columns을 추가한다. 하나는 ‘종업원 당 매출액’ , 다른 하나는 ‘매출액 대비 이익률’을 만들어 준다.

종업원당 매출액은 매출액을 종업원 수로 나누면 된다. 또, 매출액 대비 이익률 또한 이익을 매출액으로 나누면 된다. 그럼 이를 Formula를 이용하여 해보자.

해당 Columns을 클릭하고, 우 클릭 하면, [Column Properties]-[Formula]를 누른다.

각각의 변수를 위의 얘기한 방식대로 작성 해 준다.


그러면 우리가 원하는 변수의 값들을 위와 같이 계산할 수 있다.


이제, Table의 Sort 기능을 이용해, ‘매출액 대비 이익률’이 높은 상위 회사를 찾아보자.

[Tables]-[Sort] 기능을 누른 뒤, 아래 그림처럼 변수를 선택하고, 숫자가 높은 순서대로 정렬해야 하니까, Descending 버튼을 눌러 (아래 빨간색 부분) ‘OK’를 눌러보자.

그러면 아래와 같이 새로운 데이터 테이블이 형성됨을 볼 수 있으며, ‘매출액 대비 이익률’이 높은 회사부터 순서대로 볼 수 있다.



2. 종업원의 수에 따라 대기업, 중기업, 소기업으로 분류하기


이번에는 Formula 기능을 이용해 ‘종업원 수’에 따라 기업을 분류해 보자. 위와 같이 새로운 테이블을 만들어, Formula에 수식을 아래와 같이 작성하였다. 종업원 수가 40000명 이상의 기업은 ‘대기업’ 20000명 이상, 40000명 이하는 ‘중기업’, 20000명 이하는 ‘소기업’으로 분류하였다.

Conditional 메뉴의 If 문을 이용하여,

이와 같이 수식을 만들어 ‘OK’.


그럼 아래와 같이 ‘기업분류’ 변수가 완성되었음을 볼 수 있다. 여기서 중요한 것은, JMP는 자동으로 DataType을 정해준다는 것이다. 왼쪽에 DataType을 보면, 기업분류 항목이 Nominal로 되었음을 알 수 있다.



3. Tables의 Summary기능을 이용하여, ‘업종’ 및 ‘기업 분류’ 별로 평균치 계산하기


이번엔 Summary 기능을 이용해 기존 테이블에 있는 연속형 자료의 평균을 구해 새로운 데이터 테이블을 만들어 보자. 먼저 업종별로 ‘평균 매출’, ‘평균 종업원 수’, ‘평균 자산’을 구해보자.

[Tables]-[Summary]를 눌러 아래와 같이 입력해 준다. Mean, 평균을 계산하려면, 먼저 변수를 클릭한 뒤, Statistics를 눌러 아래 Mean을 선택하면 된다.

그럼 아래와 같이 새로운 데이터 테이블이 형성 되었음을 보게된다.

같은 방식으로 ‘기업 분류’ 별 평균값들을 계산 해 보자.



4. Skewness, CV, Interquartile Range


이번엔 Distribution 과 Data Filter 기능을 이용해 Skewness, CV, Interquartile Range 값을 알아보자. 먼저 Skewness, CV, Interquartile Range, 이 세 가지 통계량의 의미는 무엇일까?

Skewness (비대칭도)

이는 확률, 통계이론에서 비대칭도, 왜도라고 불리는 값이며, 실수 값, 확률 변수의 분포 비대칭 정도를 나타내는 지표이다. 아주 대칭적인 분포에서는 이 Skewness가 0이 나온다. 그러나 분포가 오른쪽으로 치우치면 양수, 왼쪽으로 치우치면 음수의 값을 나타내게 된다. 표본 왜도에 대한 수학적 수식은 아래와 같다. (위키백과)

CV (Coefficient of Variation, 변동계수)

CV 값은 표준편차를 평균으로 나눈 값이며, ‘상대표준편차(RSD)’라고도 부른다. 이는 측정단위가 서로 다른 자료들을 비교할 때, 사용된다. 이 변동 값이 크면 클수록, 자료들 간 상대적인 차이가 크다는 의미이다.


Interquartile Range (IQR, 사분 범위)

Interquartile Range는 연속형 자료의 분포를 25%,50%,75%로 나눠, 50%를 기준으로 데이터 값이 얼마나 흩어 졌는지 나타내는 범위이다. 이는 Q3-Q1 값을 이용해 구해질 수 있다. 즉 75%인 부분에서 25% 부분을 빼, 50% 기준으로 앞뒤 25%내의 데이터 범위를 구할 때 사용된다.


그럼 JMP를 이용해 이 세가지 값을 확인해보자. 먼저 우리는 Data Filter 기능을 이용해 ‘제약회사’만 추출하여 통계량을 확인해 볼 것이다. [Rows]-[Data Filter]를 눌러서, ‘업종’을 누르고, add를 누른 뒤, ‘제약회사’를 선택한다.








제약회사만 선택된 모습을 볼 수있다. 이 상태에서 [Analyze]-[Distribution]을 누른 뒤, 매출액을 Y.Columns에 넣고 ‘OK’를 누르면 아래와 같이 데이터를 얻을 수 있다. 그래프를 보기 불편하면 왼쪽 상단 RPM(빨간색 삼각형버튼)을 누른뒤, Stack을 눌러준다.

그리고 Skewness, CV, Interquartile Range를 확인하기 위해, Summary Statistics옆 RPM을 키보드의 [Ctrl]키를 누름과 동시에 눌러 [Customize Summary Statistics]를 선택한다.

그럼 아래와 같은 창이 생성되는데, 여기서 우리가 필요한 Skewness, CV, Interquartile Range항목을 체크 해준뒤, ‘OK’버튼을 눌러보자.

그럼 아래와 같이 Skewness, CV, Interquartile Range 값을 얻을 수 있게 되었다.

통계적 결론

Skewness = 1.26

=> ‘제약회사’의 분포는 오른쪽으로 1.26배 정도 치우쳐 져 있다.


CV = 83.33

=> ‘제약회사’의 상대적 표준편차는 크다.


Interquartile Range = 4356.6

=>‘제약회사’의 사분범위는 중앙을 기준으로 앞뒤로, 4356 만큼 퍼져있다.



5. 회귀분석


이번엔 Fit Y by X 기능을 이용해 회귀분석을 해보자. 먼저 우리는 제약회사에서 ‘종업원 수가 많을수록 매출액이 많을 것이다‘라는 가정을 세워 보도록 하자. 여기서 둘 다 연속형 데이터 이므로, 회귀분석을 실시해 과연, 종업원 수가 많을수록 매출액이 많은지 확인 해 볼 것이다. 통계적 가설은 아래와 같이 세웠다.

귀무가설 H0 = 종업원 수와 매출액과의 관계는 상관이 없다.

대립가설 Ha = 종업원 수와 매출액과의 상관관계가 존재한다.

위의 DataFilter가 켜져있는 상태에서, [Analyze]-[Fit Y by X]를 누르고, 아래와 같이 채워준다.

그리고, 맨 위 왼쪽 RPM을 눌러 [Fit Line]을 누르면, 회귀식이 나오게 된다.

여기서의 회귀식은 y = 1059.68 + 0.092x 가 된다.


그럼 위의 구한 회귀 식이 과연 얼마나 맞아 떨어지는지 확인해 보자. 바로 아래 Lack of Fit 메뉴를 확인해 보자. 이 메뉴는 현재 실시한 분석결과가 얼마나 잘 맞는지 (어울리는지) 판단해 준다.

여기 Max RSq 값이 0.9969 가 나왔다. 즉, 이 분석에서 회귀분석이 어울릴 확률이 99.69% 라는 뜻이다. 다시 말하면, ‘이 데이터에 대한 회귀분석은 적절하다’라는 뜻이 된다. 그리고 아래 통계량도 확인해 보자

우리가 아까 가설을 세웠던 것에 P.value값이 나와있다. 첫 번째 항목에 Prob>F 값이 0.001 보다 작다. 즉 유의 수준 5%이내에서 보통가설이 참일 확률을 의미한다. 다시 말하면, ‘귀무가설이 기각되었다’라는 뜻이고 이는 우리가 세운 대립가설, ‘종업원 수와 매출액과의 상관관계가 존재한다.’ 이 가설이 참이 된다는 의미이다.


통계적 결론 : 귀무가설기각

사실적 결론 : 종업원 수와 매출액과의 상관관계가 존재한다.


그럼 우리가 위의 회귀 식을 이용하여, 예측을 할 수도 있을까. 아주 간단하다. 우리가 위에서 도출한 식 y = 1059.68 + 0.092x 이곳에 원하는 값을 넣으면 특정 결과를 예측해 낼 수 있다. 가령 종업원(x변수)이 7000명인 경우 매출액은 얼마로 예상 되겠는가? y = 1059.68 + 0.092x 이 식 x 에 7000을 넣으면, 1703.68 이라는 값이 나오게 된다.


(매출액) = 1059.68 + 0.092*(종업원수)



6. T-test


이번에는 두 집단 간 유의차가 존재한지 분석해 보자. 업종별 매출액 대비 이익률이 얼마나 차이 나는지 확인해 보기 위해 T-test를 사용해 볼 수있다. T test는 모집단에 대한 정보가 부족할 때, 표본의 수가 적을 때 주로 사용된다. 통계적 가설은 아래와 같이 세울 수 있으며, Fit Y by X 기능을 이용해 쉽게 결론을 낼 수 있다.


귀무가설 H0 = 제약회사와 컴퓨터 회사의 매출대비 이익률의 차이는 없다.

대립가설 Ha = 제약회사와 컴퓨터 회사의 매출대비 이익률의 차이가 존재한다.


[Analyze]-[Fit Y by X]를 눌러, X에 ‘업종’, Y에 ‘매출대비 이익률’을 넣고 ‘OK’. 그리고 왼쪽 위 RPM을 눌러 [t test]를 선택하면 아래와 같은 결과가 나온다.

우리는 가설을 ‘양측검정’ 즉, 두 집단의 차이가 존재하는지 확인하려 했기 때문에, 위의 결과에서 Prob >|t| 의 P.value를 확인하면 된다. P값이 5%보다 작으므로,


통계적 결론 : 귀무가설 기각

사실적 결론 : 제약회사와 컴퓨터 회사의 매출대비 이익률의 차이가 존재한다.


만약 우리가 대립 가설을, ‘제약회사보다 컴퓨터 회사의 매출대비 이익률이 낮을 것이다’라고 잡았다면, 어떻게 될까? 이때는 양측검정이 아닌 단측검정(좌측검정)을 실시해야 하며, 양옆으로 2.5%의 범위가 아닌 왼쪽으로 5% 범위를 확인하게된다. 위의 Prob >t 값이 5% 이상이므로, 단측 검정에서는 귀무가설기각실패, 즉 ‘제약회사보다 컴퓨터회사의 매출대비 이익률은 낮지 않다‘라는 결론을 얻을 수 있을 것이다.

결론적으로 위의 통계치를 사실적 결론으로 적으면 아래와 같다.


- 제약회사와 컴퓨터 회사의 매출대비 이익률의 차이가 존재한다.

- 컴퓨터회사보다 제약회사가 매출대비 이익률이 높다.

- 제약회사보다 컴퓨터회사의 매출대비 이익률은 낮지 않다.


이 세 가지 결론이 한번에 나올 수 있다는 것에 동의하는가? 즉 유의수준의 범위, 신뢰구간을 어떻게 정하고 어떤 분석을 하느냐에 따라 통계적 결론이 달라지며, 통계적 결론이 달라지므로 사실적 결론 또한 달라지게 된다.



7. Bubble Plot


마지막으로 Bubble Plot을 이용하여, 여러 가지 변수들간의 관계를 한눈에 보도록 하자.

[Graph]-[Bubble Plot]을 누르고, 아래처럼 채워 넣는다.

그럼 아래와 같은 결과를 확인할 수 있다.


오늘은 기업데이터를 이용해, 여러가지 통계분석을 실시해 보았다. JMP에 관련한 데이터 분석교육은 이노벨류파트너즈 컨설팅 기업이 전담해서 진행중이다. 빠른 통계분석과, 복잡한 코딩없이 문제를 파악하고 모델링하기에 최적화 되어있다. 매주 토요일마다 JMP를 활용한 빅데이터 분석 교육이 진행 되니, 아래의 홈페이지를 들어가 꼭 교육을 듣기를 추천한다.



대학생인 경우 저렴한 가격으로 교육을 받을 수 있으며, 현재 8월 과정도 단국대에서 진행중이다.


조회수 1,746회댓글 0개

오늘은 Row Data 없이 통계분석을 할 수 있는 JMP의 Calculator 기능에 대해 알아보자. JMP 메인 화면에서 작업창에 [Help]-[Sample Data]를 누르면 아래와 같은 화면이 나온다.

그리고 오른쪽 하단의 Calculators를 선택한다.

여기서 여러 가지 기능을 수행할 수 있다. 먼저 Sample Size를 결정해 보는 문제를 풀어보자.



Sample Size for Confidence Intervals


예제 1 . 저번 달 한 공장의 A라인에서 생산되는 제품의 불량률이 10% 일 때, 이번 달의 불량률 10%로 예상하고 조사하기 위한 최소 샘플 수를 (불량률을 확인 해야 하는 최소 Sample 개수) 신뢰구간 95%에 오차 3% 이내로 구하기.


이 예제의 경우 다양한 분야에서 활용할 수 있는 예제이다. 우리가 실험을 하거나 어떤 현상을 조사할 때, 특정 변수가 차지하는 비율을 알고 있다면, 이 기능을 이용해 신뢰구간 내 조사해야할 최소 sample 수를 구할 수 있다. [Calculators]-[Sample Size for Confidence Intervals]을 클릭해 보자.

이런 창이 하나 뜰텐데, 우리는 확인하려는 항목의 비율을 알고 있으므로, Proportion을 선택한다. 그리고 다음 띄워지는 창에 우리가 알고 있는 값들을 집어 넣는다.

Confidence Level 에 신뢰구간 95%, Expected Proportion에 변수가 차지하는 기댓값 10% , Desired Margin of Error 에 오차 범위 3%를 넣으면, 우리가 불량률 10%의 정보를 알기 위해 필요한 최소 sample 수가 385개인 것을 알 수 있다. 그럼 다음 예제도 한번 풀어보자.



예제 2. 모집단의 표준편차 10에서 신뢰구간 95%, 오차범위3%를 만족하는 분포를 조사할 때, 필요한 Sample Size를 구하라.


이번 예제의 경우 모집단의 표준편차가 주어져 있다. 이번엔 [Calculators] - [Sample Size for Confidence Intervals]에서 Mean을 눌러 아래와 같이 계산하면, 약 40만개의 sample이 필요하다는 결과가 나온다.



Hypothesis Test for One Mean


이번에는 수능을 예를 들어, 특정 sample이 모집단의 다른 보통의 sample과 비교해 차이를 보이는지 알아보자. 올해 치러진 수능에 총 40만명의 응시생이 지원했고, 그들의 총점은 정규 분포를 띄며, 전체 평균이 255점이라고 가정해 보자.


예제 3. 전체 학생들 점수의 표준편차가 5점이고, 나의 점수가 260점일 때, 내 점수가 보통 학생들 보다 높은가?


여기서 우리는 통계적 가설검정 이라는 개념을 알아야 한다. 간단히 설명을 하면, 통계적 가설 검정의 결론은 두 가지이다. ‘귀무가설 기각’과 ‘귀무가설기각실패’로 나눈다. 보통 우리가 특정 문제에 대해 가설을 세울 때, 두가지 가설을 세운다. 귀무가설(보통상태)와 대립가설(특정상태)로 설정하는데, 귀무가설은 ‘평범한 상태’를 의미한다. 위의 예제를 예로 들면, “나의 점수는 보통 학생들과 다를게 없다”라고 귀무가설을 세울 수 있다. 그러나 우리가 확인하고 싶은 결과는 “나의 점수는 보통학생들과 다르다 (또는 더 높다)” 라는 것이다. 이 가설이 바로 ‘대립가설’이 되는 것이고, 우리가 확인하고 싶은 가설이다. 결론적으로, “귀무가설 기각”이라는 결론이 나온다면, 대립가설이 맞으므로, “나는 보통학생들 보다 성적이 좋다”라고 판단 할 수 있을 것이다. (대립가설이 참인 결론) 그러나 “귀무가설 기각 실패”라는 결론이 나오면, “나는 보통학생들과 성적이 같다”라는 귀무가설이 참인 결론이 나올 것이다. 이 통계적 가설 검정의 개념은 다음에 다시 설명 해 보도록 하겠다.


- 가설

귀무가설 (보통 상태) H0 : 나의 수능 점수는 보통이다.

대립가설 (이상 상태) Ha : 나의 수능 성적은 보통학생들 보다 높다.


위의 문제를 풀기위해, [Calculators] - [Hypothesis Test for One Mean]-[Summary Statics]를 선택한다.

그리고 우리는 모집단의 정보를 알고 있으므로, Z-Test를 누를 것이다. (이 개념도 다음에 설명 해보도록 하겠다) 만약 모집단에 대한 충분한 정보가 없고, 적은 sample 수를 가질땐, T-Test를 사용하면 된다. 그럼 이제 빈칸에 우리가 알고 있는 통계량을 각각 집어 넣는다. Hypothesized Mean 에 전체 평균 255점을, Sample Average에 나의 성적 260점을, Population S.D 에는 모집단의 표준편차 5, Sample Size는 나의 점수만 확인하기 때문에 1, 그리고 유의수준 5% 로 설정한 뒤, 내가 다른 학생들 보다 높은 지 확인하기 위해 왼쪽 하단에 ‘Population mean is greater than hypothesized mean (one-tailed)’를 선택한다. 이는 ‘우측 단측 검정’에 사용되며, 내가 평균보다 얼마나 더 높은지 확인할 때, 사용된다. 마지막으로 ‘Reveal Decision’ 박스에 체크를 해준 뒤, 결과를 확인해 보자.

아래 빨간 글씨로 “Fail to Reject Null Hypothesis”라고 나온다. 첫 번째 예제의 통계적 결론은 “귀무가설 기각 실패”이다. 사실적 결론으로 말하자면, “나의 수능성적은 보통이다”라고 말 할 수 있다. 이렇게 통계적 결론을 내릴 때, 사용되는 지표로 P.value 값이 사용 된다. 위의 “Observed Significance (p-value)”의 값이 0.1587 , 약 15%가 나왔다. 이것이 의미하는 바는, 귀무가설이 참일 확률이 15%정도 된다는 뜻이다. 통계적 결론을 내릴 때, P.value는 5%이내에서 결정하게 되어있다. 즉 귀무가설이 참일 확률, 보통상태일 확률이 5% 미만일 때, 귀무가설기각, 즉 대립가설이 참이 된다. 만약 위의 P.value가 0.03으로 5% 미만으로 나왔다면, 통계적 결론은 “귀무가설기각”이 되었을 것이고, 사실적 결론은 “나의 수능 성적은 다른 학생들 보다 좋다”라고 결론 내렸을 것이다.


-통계적 결론

p.value가 5% 이상이므로, “귀무 가설 기각 실패”

-사실적 결론

나의 수능 성적은 보통이다.



예제 4. 전체 모집단의 표준편차가 5점이고, 어느 A 학원에서 무작위로 추출된 4명의 학생 평균 점수가 260점일 때, A학원 학생들의 평균점수가 모집단의 보통학생들 보다 높은가?


4번째 예제는 한명의 표본을 조사하는 것이 아닌, 특정 표본을 조사해 그것을 모집단과 비교하는 경우이다. 어떤 그룹에서 4명씩 그룹을 형성해, 그 4명의 평균을 모집단과 비교하는 것이다. Sample에서 그룹화를 시켜 모델링을하면, 산포가 줄어든다. 간단하게 예를 들면, 5점,10점,15점 세 명의 점수를 그룹핑 하면 평균은 10점이며, 5점과 15점의 점수는 없어지므로, 좀 더 평균에 가까운 데이터들만 모이게 된다. 이 경우도 같다. 4명씩 sample를 모아 추출하면, 한명의 점수를 가지고 모집단과 비교할 때 보다 좀 더 산포가 줄어들어, 다른 결과를 가져올 수도 있다.

3번 예제와 동일하게, [Calculators] - [Hypothesis Test for One Mean]-[Summary Statics]을 선택해, 알고 있는 통계량을 집어넣어 보자.


- 가설

귀무가설 (보통 상태) H0 : A 학원의 수능 점수는 보통이다.

대립가설 (이상 상태) Ha : A 학원의 성적은 보통학생들 보다 높다.

이번엔 sample size가 4, 즉 4명의 점수를 평균 내 하나의 대표점수 260점으로 사용하도록 빈칸을 채워 넣었다. 그리고 결과를 확인해 보니, “Reject Null Hypothesis”, 즉 “귀무가설 기각”이라는 결론이 도출되었다. P.value가 2.2%정도 나와, 유의수준 5%에 미치지 못했기 때문이다.


- 통계적 결론

p.value가 5% 이하이므로, “귀무 가설 기각”

- 사실적 결론

A학원의 수능 성적은 보통 학생들 보다 높다.



예제 5. 모집단의 표준편차가 알려지지 않고, A학원에서 무작위로 추출된 4명의 평균점수가 260점이며, A학원의 표준편차가 5일 때, A그룹의 점수는 모집단의 점수보다 높은가?


마지막 예제는 모집단에 대한 정보가 없을 때, A집단을 모집단과 비교해 보는 것이다. 위에서 잠시 설명했던 대로, 모집단에 대한 정보가 없을 때, 주로 T test를 사용한다. Z test 라고 체크 되어 있는 부분을 T test로 다시 체크한 뒤, 입력 해야할 값들을 집어 넣으면 결과가 계산되어 나온다.

- 가설

귀무가설 (보통 상태) H0 : A 학원의 수능 점수는 보통이다.

대립가설 (이상 상태) Ha : A 학원의 성적은 보통학생들 보다 높다.


- 통계적 결론

p.value가 5% 이상이므로, “귀무 가설 기각 실패”

- 사실적 결론

A학원의 수능 성적은 보통 학생들과 같다.


오늘은 JMP의 Calculator 기능을 이용해 예제를 풀며, 통계적 가설검정과 T test에 대해 잠시 알아보았다. 다음엔 더 구체적으로 T test와 통계적 가설검정에 대해 알아보도록 하자. JMP에 관련한 데이터 분석교육은 이노벨류파트너즈 컨설팅 기업이 전담해서 진행중이다. 빠른 통계분석과, 복잡한 코딩없이 문제를 파악하고 모델링하기에 최적화 되어있다. 매주 토요일마다 JMP를 활용한 빅데이터 분석 교육이 진행 되니, 아래의 홈페이지를 들어가 꼭 교육을 듣기를 추천한다.


http://www.innovalue.co.kr/


대학생인 경우 저렴한 가격으로 교육을 받을 수 있으며, 현재 8월 과정도 단국대에서 진행중이다.


조회수 801회댓글 0개

오늘은 JMP프로그램을 이용하여, 마케팅 데이터를 이용한 데이터 전처리 과정에 대해 알아보자. 해당 게시글은 JMP 11버젼을 이용해 작성한 내용이다. JMP 13버젼이나 14버젼은 메뉴형태나 위치가 다를 수 있으니 유의해서 사용해야 한다.

먼저 우리가 사용할 데이터는, 매장에서 실제 이용된 적이 있는 데이터를 풀이를 위해 간단하게 처리한 판매데이터이다. 이 데이터는 회원정보가 있는 파일과 회원들이 제품을 구매한 정보가 담긴 파일이 존재한다.

판매정보데이터

판매정보 데이터의 경우 회원 한명이 물건을 살때마다 데이터를 저장하였다. 공급일자는 회원이 물품을 구매한 일자 인데, 이 파일의 경우 3월까지 데이터가 존재한다. 데이터는 약 14만개 정도 되는 많은 량의 데이터이며, 변수는 15개 정도가 있다. 주차(week)는 매 주마다 판매량을 계산하기 위해 따로 만들었다.

고객정보데이터

고객정보데이터의 경우 주소, 생년, 연령, 성별 변수가 존재하며, 8천여명의 고객정보가 들어있다. 그럼 이제 이 두개의 데이터를 어떻게 합쳐야 할까? 판매데이터의 경우 량이 너무 많아 데이터 분석에 유의하지 않다. 그럼 먼저 판매데이터를 이용해, 고객의 구매정보를 간략하게 줄여보자.




Summary를 이용한 데이터 요약하기

먼저 판매데이터를 고객정보 기준으로 축소 시켜보자. 탐색창에 [Tables]-[summary]을 누른 뒤 아래와 같이 값을 설정하여 확인 버튼('Ok')을 누른다.

그럼 아래와 같이 데이터가 아래와 같이 정리됨을 볼 수있다. 14만개의 판매데이터가 고객정보데이터의 고객정보 수 만큼 정리가 됨을 볼 수 있다. 이 데이터는 각 고객마다 구매금액의 총량, 총 방문횟수, 반품할 확률을 확인할 수 있다.

그럼 이 데이터를 이용해, 일주일에 한명의 고객이 얼마나 방문했는지, 한번 방문할때, 얼만큼 구매했는지 구해보자. 먼저 이 데이터는 13주가량의 데이터가 모여있으므로, N caregories(공급일자)의 데이터 (이 데이터는 고객이 13주 동안 총 방문한 횟수와 동일하다.) 를 13주로 나눠 줄 것이다.


1. 'N categories(공급일자)' 변수이름을 '총 방문일'로 바꾼다.

2. 새로운 Columns (변수)가 들어갈 공간을 추가한다.

3. Formula를 이용하여 '총 방문일'을 13주차로 나눈다.


1. 변수 명 바꾸기

이름을 바꾸고 싶은 변수에 마우스커서를 가져다 놓고 오른쪽 버튼을 눌러 화면처럼 Columns info.. 버튼을 누른다. 이후 아래와 같이 변수 명을 바꿔준다.


2. Column 추가하기

그리고 이름을 바꾼 변수를 클릭해 놓은 상태에서 [Cols]-[Add Multiple Columns..]를 누른다.

그리고 추가할 변수의 이름을 기입한 뒤 'OK'


3. 주당 방문횟수 계산하기

그리고 다시 새로만들어진 변수명을 클릭한뒤, 마우스 오른쪽 버튼을 눌러 [Column Properties]-[Formula]를 눌러 총 방문일을 13으로 나눠 준다. (Formula는 Column info 메뉴에서도 들어갈 수 있다.)


이렇게 입력하고, Apply 버튼을 눌러보자. 그럼 아래와 같이 소수점 까지 계산된 결과가 나왔을 것이다.

이 소수점을 정리해 주기위해 변수명 '주당방문횟수'을 선택한 뒤, 마우스오른쪽버튼을 누르고 [Column info..] 메뉴에 들어가 아래 [Format] 칸을 눌러 [Fixed Dec]를 선택한다. 이 기능은 수를 몇자리 수까지 출력할지 정할 수 있는 기능이다.

Width를 12, Dec를 2로 기입하여 Apply를 누르면, 난잡했던 데이터가 위의 그림과 같이 정리되었다. 이로써 우리는 summary기능을 이용해 데이터를 압축하고, 하나의 변수를 우리가 분석하기 쉽게 다듬는 과정을 진행하였다. 처음 진행하는 사람들을 위해 보다 자세히 설명하였다. 하지만 아래 많은 처리과정을 너무 자세히 설명하려면, 글이 매우 길어지기 떄문에, 아래 부터는 위에서 사용한 기능들을 간략하게만 설명하면서 진행하도록 하겠다.

같은 방법으로 총구매금액을 총 방문횟수로 나누어, 한번 방문할때 고객이 얼마나 구매하는 지 알아보자. 위와 같은 방법으로 Sum (구매금액) 변수의 이름을 바꾸고, 새로운 Column을 추가해 데이터를 생성해 보자.


1. Sum(구매금액)의 이름을 '총 구매금액'으로 바꾼다

2. '총 구매금액'변수 옆에 새로운 Column을 추가한다

3. 새로 추가한 Column의 이름을 '1회 방문시 구매금액' 으로 바꾸고, Formula를 이용해 '총 구매금액'을 '총 방문횟수'로 나눈다.


이 데이터는 단위가 '원' 단위 이므로, 소숫점 아래의 수가 의미 없으므로 역시 Fixed Dec를 이용해 아래와 같이 만들어 준다.

그리고 Apply를 누르면, 소숫점이 없이 원 단위의 구매금액만 정확히 볼 수 있을 것이다.


이제 판매데이터에서 summary 기능을 이용해, 회원마다 방문횟수와 구매금액을 구해 회원데이터로 다듬었다. 이제 기존에 있던 고객정보 데이터와 한번 붙여보자. 다행이도 summary를 한 후에 데이터가 8,514개로 고객정보에 있는 데이터의 갯수와 일치한다. 아마 같은 회사에서 얻은 데이터이므로, 각 회원 번호마다 우리가 summary한 회원번호가 1:1로 매칭될 것이다. 여기서는 Join 기능을 이용하여 두개의 Table을 하나의 데이터 테이블로 합쳐보자.




Join을 이용한 데이터 합치기

먼저 고객정보데이터를 열어보자. 그리고 탐색창에 [Tables]-[Join] 버튼을 누른다.

아래와 같이 창이 뜨면, 우리가 합치고 싶은 Table을 눌러 Source Columns에 추가한다. 아까 summary를 했던 Table을 눌러준다. ('판매정보 By (고객번호))

그리고 두 테이블에 하나로 합칠 변수를 선택하여 옆에 Match 버튼을 눌러준다. 우리는 '고객 번호'라는 변수가 서로 같으므로, 두개의 변수를 선택한뒤 Match를 누르고 'OK'버튼.

그러면 아래와 같이 새로운 테이블에 본래 있던 고객정보와 우리가 Summary해서 만들었던 데이터가 하나의 파일에 정렬된 모습을 볼 수 있다.


우리는 판매데이터를 이용해 필요한 변수를 summary하여 요약해 새로운 테이블을 만들었고, 새로 만들어진 테이블에서 우리가 원하는 데이터를 formula 기능을 이용해 얻었고, 기존에 있던 고객정보 데이터화 join기능을 이용해 하나의 테이블로 만들었다.


다음엔 Tabulate 기능을 활용해 보고 Formula의 if 문을 이용해 데이터를 처리하는 법을 알아보자. JMP에 관련한 데이터 분석교육은 이노벨류파트너즈 컨설팅 기업이 전담해서 진행중이다. 빠른 통계분석과, 복잡한 코딩없이 문제를 파악하고 모델링하기에 최적화 되어있다. 매주 토요일마다 JMP를 활용한 빅데이터 분석 교육이 진행 되니, 아래의 홈페이지를 들어가 꼭 교육을 듣기를 추천한다.

대학생인 경우 저렴한 가격으로 교육을 받을 수 있으며, 현재 8월 과정도 단국대에서 진행중이다.


조회수 612회댓글 0개

bottom of page