반응형

4.2 범주형 자료의 검정

# 4.2) 비타민 c가 감기치료에 효과가 있는지 점검. 대조군(control) 그룹 140명에게는 플라시보를 주고 처리군(treat) 그룹 139명에게는 매일 비타민 c를 투여하였다. 아래 분할표를 가지고 비타민 C가 감기에 효과가 있는지 점검

 

 

감기 걸림

감기 안 걸림

대조군(placebo)

31

109

140

처리군(비타민 C 복용군)

17

122

139

48

231

279

 

H0 복용군과 비복용군의 감기 이환율 같다
H1
복용군과 비복용군의 감기 이환율 다르다

 

1) 자료 입력

> vitamin = matrix(c(31,109,17,122),nrow=2,byrow=T)

> dimnames(vitamin) = list(vitamin=c('ctr','trt'),flu=c('y','n'))

> vitamin

          flu

vitamin  y   n

    ctr 31 109

    trt 17 122

> round(vitamin/sum(vitamin),2)

            flu

vitamin    y    n

    ctr 0.11 0.39

    trt 0.06 0.44

> addmargins(vitamin)

          flu

vitamin  y   n Sum

    ctr 31 109 140

    trt 17 122 139

    Sum 48 231 279

 

2) 데이터 시각화

> par(mfrow=c(1,2))

> dotchart(vitamin)

> dotchart(t(vitamin))


> par(mfrow=c(1,1))

> mosaicplot(vitamin)


결과 해석: 비타민 복용군과 비복용군의 감기 이환율이 동일하지 않음을 알 수 있다.


 

3)카이제곱 검정 실행

#카이검정

> chisq.test(vitamin)

 

Pearson's Chi-squared test with Yates' continuity correction

 

data:  vitamin

X-squared = 4.1407, df = 1, p-value = 0.04186

 

결과해석
대립가설 H0 : 복용군과 비복용군의 감기 이환율 같다

귀무가설 H1 : 복용군과 비복용군의 감기 이환율 다르다

p-value : 0.04186

결정: p-value값이 0.05보다 작으므로 H0를 기각, 비타민 복용군과 비복용군 간 이환율은 다르다.

 

 

관찰도수, 기대도수, 잔차를 보는 법 

#관찰도수

> names(chisq.test(vitamin))

[1] "statistic" "parameter" "p.value"   "method"    "data.name" "observed"  "expected"

[8] "residuals" "stdres"  

> chisq.test(vitamin)$observed

flu

vitamin  y   n

ctr 31 109

trt 17 122


#기대도수

> chisq.test(vitamin)$expected

flu

vitamin        y       n

ctr 24.08602 115.914

trt 23.91398 115.086


#피어슨잔차

> chisq.test(vitamin)$residual

flu

vitamin         y          n

ctr  1.408787 -0.6421849

trt -1.413846  0.6444908


출처: 보건정보데이터 분석(이태림 저)

반응형
Posted by 마르띤
,
반응형

데이터 마이닝 기법의 구분

데이터마이닝에서 사용되는 기법은 크게 지도학습(supervised learning)과 자율학습(unsupervised learning)으로 나눌 수 있음

 

 - 지도학습의 목표는 입출력 간의 관계를 결정하는 시스템에 대한 유용한 근사 시스템을 구하는 것으로 정의할 수 있음. Y = aX + b

- 자율학습에서는교사의 역할에 해당하는 실제 출력값이 존재하지 않음. 따라서 데이터에 존재하는 여러 가지 형태의 특징을 찾는 데 그 목표를 둔다.

 

<데이터 마이닝의 기법>



 


독일신용평가 데이터 셋

독일신용평가 데이터(German Credit Data)는 머신러닝 저장소에 탑재되어 있는 데이터로 분류의 예제로 많이 활용된다.

> setwd('c:/Rwork')

> german<-read.table('germandata.txt')

> head(german,2) # 값들의 변수명이 없음.


> names<-c("check","duration","history","purpose","credit","savings","employment","installment",   "personal",   "debtors",    "residence",  "property",   "age", "others",       "housing",    "numcredits", "job", "residpeople",      "telephone",       "foreign"     ,"y")

> colnames(german)<-names

> head(german,2)

 

> german$y<-factor(german$y,levels=c(1,2),labels=c('good','bad'))

> head(german,2)

  

> summary(german)

#  residence,numcredits,residpeople 실제 범주형이지만 수치형으로 인식. 범주형으로 변환 필요

 

> class(german$residence) #integer 수치형

[1] "integer"

> class(german$check) #factor 범주형

[1] "factor"

> german$residence = factor(german$residence)

> german$numcredits = factor(german$numcredits)

> german$residpeople = factor(german$residpeople)

> class(german$residence) #factor 변환

[1] "factor"

> class(german$numcredits) #factor 변환

[1] "factor"

> class(german$residpeople) #factor 변환

[1] "factor"

> table(german$residence)

1   2   3   4

130 308 149 413 

 

출처: 데이터마이닝, 장영재

반응형
Posted by 마르띤
,
반응형

어느 집단에서 10명의 표본을 추출하여 다음과 같은 4개 문항에 대하여 설문조사를 실시했다.

문항 1: 귀하의 성별은? 1) 남자 2) 여자

문항 2: 귀하의 나이는? (단위: )

문항 3: 귀하의 교육 정도는? 1) 무학 2) 초등졸 3) 종졸 4) 고졸 5) 대졸

문항 4: 귀하의 월 수입은? (단위: 만 원)


설문조사를 실시하여 얻은 응답 데이터를 csv 파일로 저장하고 간단한 작업을 해보자.

 

> setwd('c:/Rwork')

> survey<-read.csv('설문조사 데이터.csv',header=T,sep=',')

> survey

일련번호 변수.1.성별. 변수.2.나이. 변수.3.교육정도. 변수.4..수입.

1         1            1           21                4             100

2         2            2           22                5             100

3         3            1           33                2             200

4         4            2           33                4             120

5         5            1           28                4              70

6         6            1           21                5             100

7         7            2           39                4             190

8         8            1           32                5             220

9         9            2           44                1             170

10       10            1           55                3             310

> summary(survey)

일련번호      변수.1.성별변수.2.나이변수.3.교육정도. 변수.4..수입.

Min.   : 1.00   Min.   :1.0   Min.   :21.0   Min.   :1.00     Min.   : 70.0 

1st Qu.: 3.25   1st Qu.:1.0   1st Qu.:23.5   1st Qu.:3.25     1st Qu.:100.0 

Median : 5.50   Median :1.0   Median :32.5   Median :4.00     Median :145.0 

Mean   : 5.50   Mean   :1.4   Mean   :32.8   Mean   :3.70     Mean   :158.0 

3rd Qu.: 7.75   3rd Qu.:2.0   3rd Qu.:37.5   3rd Qu.:4.75     3rd Qu.:197.5 

Max.   :10.00   Max.   :2.0   Max.   :55.0   Max.   :5.00     Max.   :310.0 

> colnames(survey)<-c('변수','성별','나이','교육정도',' 수입')

> survey

변수 성별 나이 교육정도 수입

1     1    1   21        4     100

2     2    2   22        5     100

3     3    1   33        2     200

4     4    2   33        4     120

5     5    1   28        4      70

6     6    1   21        5     100

7     7    2   39        4     190

8     8    1   32        5     220

9     9    2   44        1     170

10   10    1   55        3     310

> plot(survey$나이, survey$` 수입`)

 


 

> par(mfrow=c(1,2))

> plot(survey$나이, survey$` 수입`,pch=20)

> plot(survey$나이, survey$` 수입`,pch="+")

  

반응형

'KNOU > 1 통계학개론' 카테고리의 다른 글

변수의 종류  (0) 2016.06.28
Posted by 마르띤
,
반응형

통계학 관련 공부를 할 때 모든 책의 첫번째 챕터에서 변수의 종류를 다룬다. 처음 통계를 공부할 때 읽으면 아~ 이런게 있구나 하고 별것 아닌걸로 생각하고 변수들의 정의와 개념을 잘 익히지 않고 그냥 넘어가자 후반부로 가면 갈 수록 다시 책을 앞으로 넘겼다, 뒤로 넘겼다를 반복하였다. 통계학을 공부 할 때 반드시 알아야 할 변수의 종류. 아무리 강조해도 지나치지 않을 변수의 개념 공부.

 

1. 질적 변수(qualitative variable): 조사 대상을 특성에 따라 범주로 구분하여 측정된 변수로 범주형 변수(categorical data)라고도 함. 이러한 질적 변수에 대해 덧셈 등 수학적 연산결과는 아무런 의미가 없기 때문에 연산의 개념을 적용시킬 수 없다. 즉 남자 =1, 여자 =2 변수에서 1.5는 아무런 의미가 없다. 전화번호나 생일 역시 더하거나 나눈다고 하여 의미 있는 값을 얻을 수 없다. 질적 변수가 분석 대상일 때는 각 범주에 속한 개수나 퍼센트 등을 다룬다. 보통 원그래프나, 막대그래프를 이용한다.

 - 명목형(nominal): 변수나 크기가 순서에 대한 의미가 없고 이름만 의미를 부여할 수 있는 경우

   예) 성별(남자 = 1, 여자 =2), 자동차 브랜드(현대=1, 기아=2, 르노삼성=3, GM=4)

 - 순서형(ordinal) – 변수가 어떤 기준에 따라 순서에 의미를 부여할 수 있는 경우

   예) 교육수준(초졸=1, 중졸=2, 고졸=3, 대졸 이상=4), 건강 상태(양호=3, 보통=2, 나쁨=1)

 

2. 양적 변수(quantitative variable): 길이, 무게와 같이 양적인 수치로 측정되거나 몇 개인가를 세어 측정하는 변수로 덧셈, 뺄셈 등의 연산이 가능하다. 히스토그램, 줄기-잎 그림, 점 도표, 시계열 그래프 등을 이용한다.

 - 이산형(discrete): 변수가 취할 수 있는 값을 하나하나 셀 수 있는 경우

   예) 방 갯수, 퀴즈 문제 중 맞힌 개수, 보험 설계사가 계약을 체결할 때 까지 만난 사람 수

 - 연속형(continuous): 변수가 구간 안의 모든 값을 가질 수 있는 경우

 예) 실수 구간 안의 모든 값. 신생아의 키

 

 

어떤 변수의 경우는 이산형 또는 연속형으로 취급되는데, 나이가 그 좋은 예이다. 나이는 시간이 지남에 따라 계속 늘어나는 연속형 변수이지만, 1년 단위로 측정되면 이산형 변수이다. 

 

(1) 파이썬 코드

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# 예제 데이터 생성
data = pd.DataFrame({
    'Gender': ['Male', 'Female', 'Male', 'Female', 'Male', 'Female'],
    'Age': [25, 30, 22, 35, 28, 40],
    'Height': [175, 160, 180, 155, 170, 165]
})

# 질적 변수: 성별(Gender)
# 양적 변수: 나이(Age), 키(Height)

# 질적 변수 시각화 (막대 그래프)
plt.figure(figsize=(10, 5))
sns.countplot(x='Gender', data=data)
plt.title('Count of Individuals by Gender')
plt.show()

 

 

# 양적 변수 시각화 (히스토그램)
plt.figure(figsize=(10, 5))
sns.histplot(data['Age'], bins=20, color='skyblue')
plt.title('Distribution of Age')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()

 

# 양적 변수 시각화 (상자 그림)
plt.figure(figsize=(10, 5))
sns.boxplot(x='Height', data=data, color='lightgreen')
plt.title('Box Plot of Height')
plt.xlabel('Height')
plt.show()

 

 

 

반응형
Posted by 마르띤
,