1. 데이터 이름 변경

R에서는 데이터 프레임의 열 이름을 변경하는 것을 포함하여 여러 데이터 객체의 이름을 변경할 수 있습니다. 가장 일반적으로 사용되는 방법은 데이터 프레임의 열 이름을 변경하는 것입니다.

# 데이터 프레임 생성
df <- data.frame(
  Name = c("Alice", "Bob", "Charlie"),
  Age = c(25, 30, 35)
)

# 열 이름 변경
names(df) <- c("Person", "Years")

# 변경된 열 이름 출력
print(names(df))  # 출력: "Person" "Years"

 

2. 데이터 추출

R에서는 인덱싱(indexing)을 사용하여 데이터 프레임 또는 벡터에서 특정 부분 집합을 추출할 수 있습니다. 이는 데이터 프레임의 특정 행이나 열을 선택하거나, 벡터에서 특정 원소를 선택하는 등의 작업을 포함합니다.

# 데이터 프레임 생성
df <- data.frame(
  Name = c("Alice", "Bob", "Charlie"),
  Age = c(25, 30, 35)
)

# 열 이름을 사용하여 특정 열 추출
ages <- df$Age
print(ages)  # 출력: 25 30 35


# 특정 행 추출 (인덱싱 사용)
row <- df[2, ]
print(row)
# 출력:
#    Name Age
# 2   Bob  30

 

 

3. 데이터 결합

R에서는 데이터를 수평적으로 또는 수직적으로 결합할 수 있는 여러 함수를 제공합니다. 가장 일반적으로 사용되는 함수는 cbind()와 rbind()입니다.

 

  • cbind(): 열(column)을 기준으로 데이터를 결합합니다.
# 데이터 프레임 생성
df1 <- data.frame(
  Name = c("Alice", "Bob", "Charlie"),
  Age = c(25, 30, 35)
)

df2 <- data.frame(
  Name = c("David", "Eve"),
  Age = c(40, 45)
)

# 열을 기준으로 데이터 프레임 결합
combined <- cbind(df1, df2)
print(combined)
# 출력:
#      Name Age  Name Age
# 1   Alice  25 David  40
# 2     Bob  30   Eve  45
# 3 Charlie  35  <NA>  NA

 

  • rbind(): 행(row)을 기준으로 데이터를 결합합니다.
# 데이터 프레임 생성
df1 <- data.frame(
  Name = c("Alice", "Bob", "Charlie"),
  Age = c(25, 30, 35)
)

df2 <- data.frame(
  Name = c("David", "Eve"),
  Age = c(40, 45)
)

# 행을 기준으로 데이터 프레임 결합
combined <- rbind(df1, df2)
print(combined)
# 출력:
#      Name Age
# 1   Alice  25
# 2     Bob  30
# 3 Charlie  35
# 4   David  40
# 5     Eve  45

 

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

🔷기본 함수

1. help

help 함수는 R의 도움말 시스템을 호출하여 특정 함수나 주제에 대한 문서를 제공합니다. ? 연산자도 동일한 기능을 합니다.

# 함수에 대한 도움말 보기
help(paste)
# 또는
?paste

2. paste

paste 함수는 여러 문자열을 결합하는 함수입니다. paste0 함수는 공백 없이 문자열을 결합합니다.

# 기본 사용법
str1 <- "Hello"
str2 <- "World"
result <- paste(str1, str2)
print(result)  # 출력: "Hello World"

# 구분자 지정
result <- paste(str1, str2, sep = ", ")
print(result)  # 출력: "Hello, World"

# paste0 사용 예시
result <- paste0(str1, str2)
print(result)  # 출력: "HelloWorld"

3. seq

seq 함수는 수열(sequence)을 생성하는 함수입니다. 시작 값, 끝 값, 증가값 등을 지정할 수 있습니다.

# 1부터 10까지의 수열 생성
sequence <- seq(1, 10)
print(sequence)  # 출력: 1 2 3 4 5 6 7 8 9 10

# 1부터 10까지 2씩 증가하는 수열 생성
sequence <- seq(1, 10, by = 2)
print(sequence)  # 출력: 1 3 5 7 9

# 1부터 10까지 총 5개의 숫자를 균등하게 배치
sequence <- seq(1, 10, length.out = 5)
print(sequence)  # 출력: 1 3.25 5.5 7.75 10

4. rep

rep 함수는 주어진 값을 반복하는 함수입니다. 반복 횟수 또는 패턴을 지정할 수 있습니다.

# 숫자 1을 5번 반복
repeated <- rep(1, 5)
print(repeated)  # 출력: 1 1 1 1 1

# 벡터를 3번 반복
repeated <- rep(c(1, 2, 3), 3)
print(repeated)  # 출력: 1 2 3 1 2 3 1 2 3

# 각 요소를 지정된 횟수만큼 반복
repeated <- rep(c(1, 2, 3), each = 2)
print(repeated)  # 출력: 1 1 2 2 3 3

5. rm

rm 함수는 R 환경에서 변수 또는 객체를 삭제하는 함수입니다.

# 변수 생성
x <- 10
y <- 20

# 변수 삭제
rm(x)

# 변수 목록 확인
print(ls())  # 출력: "y" (x는 삭제되었기 때문에 출력되지 않음)

6. ls

ls 함수는 현재 R 환경에 존재하는 객체(변수, 함수 등)의 이름을 반환합니다.

# 변수 생성
a <- 1
b <- 2

# 현재 환경의 객체 목록 확인
print(ls())  # 출력: "a" "b"

# 특정 패턴의 객체 목록 확인
print(ls(pattern = "a"))  # 출력: "a"

7. print

print 함수는 객체의 내용을 출력하는 기본 함수입니다. 주로 결과를 화면에 출력할 때 사용됩니다.

# 숫자 출력
print(123)

# 문자열 출력
print("Hello, World!")

# 벡터 출력
vec <- c(1, 2, 3)
print(vec)

 

 

🔷통계 함수

sum() : 벡터 또는 숫자의 합을 계산합니다.

mean() : 평균을 계산합니다.

median() : 중앙값을 계산합니다.

var() : 분산을 계산합니다.

sd() : 표준 편차를 계산합니다.

max(), min() : 최댓값과 최솟값을 계산합니다.

range() : 범위를 계산합니다.

summary() : 데이터의 기술 통계량을 요약하여 보여줍니다

skewness() : 입력된 값의 왜도를 구한다.

kurtosis() : 입력된 값의 첨도를 구한다.

 

vec <- c(1, 2, 3, 4, 5)
total_sum <- sum(vec)
print(total_sum)  # 출력: 15


avg <- mean(vec)
print(avg)  # 출력: 3


med <- median(vec)
print(med)  # 출력: 3


variance <- var(vec)
print(variance)  # 출력: 2.5


std_dev <- sd(vec)
print(std_dev)  # 출력: 1.581139


maximum <- max(vec)
minimum <- min(vec)
print(maximum)  # 출력: 5
print(minimum)  # 출력: 1


range_val <- range(vec)
print(range_val)  # 출력: 1 5


summary_stats <- summary(vec)
print(summary_stats)
# 출력:
#   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
#   1.00    2.25    3.00    3.00    4.00    5.00


library(e1071)
skew <- skewness(vec)
print(skew)


kurt <- kurtosis(vec)
print(kurt)

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

🔷 벡터

  • 벡터는 동일한 데이터 타입을 가진 요소들의 1차원 배열로, 숫자형, 문자형, 논리형 등 다양한 데이터 타입을 가질 수 있습니다.
  • 벡터는 c() 함수를 사용하여 생성할 수 있습니다. c는 concatenate의 약자로, 여러 값을 하나의 벡터로 연결
# 숫자형 벡터
num_vector <- c(1, 2, 3, 4, 5)
print(num_vector)  # 출력: 1 2 3 4 5

# 문자형 벡터
char_vector <- c("apple", "banana", "cherry")
print(char_vector)  # 출력: "apple" "banana" "cherry"

# 논리형 벡터
log_vector <- c(TRUE, FALSE, TRUE)
print(log_vector)  # 출력: TRUE FALSE TRUE

 

 

🔷 행렬

  • 행렬(Matrix)은 R에서 2차원 데이터 구조로, 동일한 데이터 타입을 가지는 요소들로 구성된 사각형 배열
  • 행렬은 주로 선형 대수와 데이터 분석에서 사용되며, R에서는 다양한 함수를 통해 행렬을 생성하고 조작할 수 있습니다.
> m1 <-matrix(c(1:6), nrow=2)
> m1
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6



> m2 <-matrix(c(1:6), ncol=2)
> m2
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6



> m3 <-matrix(c(1:6), nrow=2, byrow=T)
> m3
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6

 

행렬의 속성

  • nrow: 행의 수
  • ncol: 열의 수
  • dim: 행렬의 차원 (행의 수와 열의 수)
  • byrow 옵션에 T(TRUE)를 지정하면 값들이 열이 아닌 행으로 저장

 

🔷 배열

  • 배열은 2차원 이상의 행렬로 생각할 수 있으며, 3차원 이상도 가능합니다.
  • 배열을 사용하여 다양한 차원의 데이터를 관리
  • 하나의 배열에 포함된 데이터는 모두 같은 타입
  • 배열은 array() 함수를 사용하여 생성, 몇 차원의 구조를 갖는지 dim 옵션에 명시
  • 명시하지 않으면 1차원 벡터
# 3차원 배열 생성
# 3행 4열 2슬라이스
arr <- array(1:24, dim = c(3, 4, 2))
print(arr)


, , 1 #슬라이스1

     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12

, , 2 #슬라이스2

     [,1] [,2] [,3] [,4]
[1,]   13   16   19   22
[2,]   14   17   20   23
[3,]   15   18   21   24

 

 

  • dim = c(3, 4, 2)는 배열이 3개의 행, 4개의 열, 2개의 슬라이스를 가짐을 의미합니다.
  • 첫 번째 차원: 3 (행의 수)
  • 두 번째 차원: 4 (열의 수)
  • 세 번째 차원: 2 (슬라이스 또는 레이어의 수)

 

🔷 리스트

  • 리스트(List)는 R에서 서로 다른 데이터 타입의 요소들을 저장할 수 있는 데이터 구조
  • 벡터, 행렬, 데이터 프레임과 달리, 리스트는 숫자, 문자열, 논리값, 다른 리스트 등 다양한 타입의 데이터를 포함
  • 리스트는 성분 간에 이질적인 특징을 가지고 있다.

 

# 리스트 생성
my_list <- list(
  num = 42,
  str = "Hello, world!",
  vec = c(1, 2, 3),
  mat = matrix(1:4, nrow = 2),
  nested_list = list(a = 1, b = 2)
)

print(my_list)



$num
[1] 42

$str
[1] "Hello, world!"

$vec
[1] 1 2 3

$mat
     [,1] [,2]
[1,]    1    3
[2,]    2    4

$nested_list
$nested_list$a
[1] 1

$nested_list$b
[1] 2

 

 

🔷 데이터프레임

  • 데이터프레임(Data Frame)은 R에서 가장 많이 사용되는 데이터 구조 중 하나로, 표 형태의 데이터를 저장합니다.
  • 행(row)과 열(column)로 구성됩니다.
  • 각 열은 벡터 형태로 저장되며, 서로 다른 데이터 타입을 가질 수 있습니다.
  • 데이터프레임은 통계 분석, 데이터 시각화, 머신 러닝 등 다양한 작업에서 사용
# 데이터프레임 생성
df <- data.frame(
  Name = c("Alice", "Bob", "Charlie"),
  Age = c(25, 30, 35),
  Gender = c("F", "M", "M")
)

print(df)






     Name Age Gender
1   Alice  25      F
2     Bob  30      M
3 Charlie  35      M

데이터프레임의 속성

  • 행 이름: 각 행은 이름(기본적으로 숫자)을 가집니다.
  • 열 이름: 각 열은 이름을 가지며, 서로 다른 데이터 타입을 가질 수 있습니다.

 

 

 

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

🔷연산자

 

⚫대입연산자

# <- 사용
x <- 5
print(x)  # 출력: 5

# -> 사용
5 -> y
print(y)  # 출력: 5

# = 사용
z = 10
print(z)  # 출력: 10

# assign() 함수 사용
assign("w", 20)
print(w)  # 출력: 20

 

  • <-, <<-: 가장 일반적으로 사용되는 대입 연산자입니다.
  • ->, ->>: 덜 사용되지만 오른쪽에서 왼쪽으로 값을 대입할 때 사용됩니다.
  • =: 변수 대입보다는 함수의 인수 할당에 더 많이 사용됩니다.
  • assign(): 문자열로 변수 이름을 지정할 때 사용됩니다.

 

⚫비교연산자

 

# 변수 설정
a <- 7
b <- 5

# 비교 연산자 사용
print(a == b)  # FALSE
print(a != b)  # TRUE
print(a < b)   # FALSE
print(a > b)   # TRUE
print(a <= b)  # FALSE
print(a >= b)  # TRUE

 

  • ==: 두 값이 같은지 비교
  • !=: 두 값이 다른지 비교
  • <: 왼쪽 값이 오른쪽 값보다 작은지 비교
  • >: 왼쪽 값이 오른쪽 값보다 큰지 비교
  • <=: 왼쪽 값이 오른쪽 값보다 작거나 같은지 비교
  • >=: 왼쪽 값이 오른쪽 값보다 크거나 같은지 비교
  • is.character : 문자형인지 아닌지 비교
  • is.numeric : 숫자형인지 아닌지 비교
  • is.logical : 논리형인지 아닌지 비교
  • is.na : NA인지 아닌지를 비교
  • is.null : NULL인지 아닌지 비교

 

 

⚫ 산술 연산자

# 변수 설정
a <- 10
b <- 3

# 덧셈
addition <- a + b
print(addition)  # 출력: 13

# 뺄셈
subtraction <- a - b
print(subtraction)  # 출력: 7

# 곱셈
multiplication <- a * b
print(multiplication)  # 출력: 30

# 나눗셈
division <- a / b
print(division)  # 출력: 3.333333

# 거듭제곱
exponentiation <- a ^ b
print(exponentiation)  # 출력: 1000

# 모듈로 (나머지)
modulus <- a %% b
print(modulus)  # 출력: 1

# 정수 나눗셈
integer_division <- a %/% b
print(integer_division)  # 출력: 3

 

  • +: 덧셈
  • -: 뺄셈
  • *: 곱셈
  • /: 나눗셈
  • ^, **: 거듭제곱
  • %%: 모듈로 (나머지)
  • %/%: 정수 나눗셈
  • exp() : 자연상수의 거듭제곱

⚫ 논리연산자

 

# 변수 설정
a <- c(TRUE, FALSE, TRUE)
b <- c(FALSE, TRUE, FALSE)

# 논리 AND
result_and <- a & b
print(result_and)  # 출력: FALSE, FALSE, FALSE

# 논리 OR
result_or <- a | b
print(result_or)  # 출력: TRUE, TRUE, TRUE

# 논리 NOT
result_not <- !a
print(result_not)  # 출력: FALSE, TRUE, FALSE

# 단일 요소 논리 AND
x <- TRUE
y <- FALSE
result_single_and <- x && y
print(result_single_and)  # 출력: FALSE

# 단일 요소 논리 OR
result_single_or <- x || y
print(result_single_or)  # 출력: TRUE

 

& (논리 AND):

  • 의미: 두 논리값이 모두 TRUE일 때 TRUE를 반환합니다.

 

| (논리 OR):

  • 의미: 두 논리값 중 하나라도 TRUE이면 TRUE를 반환합니다.

 

! (논리 NOT):

  • 의미: 논리값을 반대로 변환합니다. TRUE는 FALSE로, FALSE는 TRUE로 변환합니다.

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

🔷 R의 데이터타입

 

⚫문자형 타입

  • character은 문자형 타입
  • 따옴표 혹은 쌍따옴표로 표시
> class('abc')
[1] "character"
> class("abc")
[1] "character"
> class('123')
[1] "character"
> class('TRUE')
[1] "character"

 

 

⚫숫자형 타입

  • 계산이 가능한 데이터를 숫자형 데이터
  • "numeric"
  • Inf 무한대, -Inf 음의 무한대
> class(Inf)
[1] "numeric"
> class(-Inf)
[1] "numeric"
> class(1)
[1] "numeric"
> class(-3)
[1] "numeric"

 

 

⚫논리형 타입

> class(TRUE)
[1] "logical"
> class(FALSE)
[1] "logical"

 

 

⚫NaN, NA, NULL

 

NA (Not Available):

  • 의미: 데이터가 결측되었음을 나타냅니다.
  • 용도: 주로 데이터셋에서 값이 존재하지 않거나 누락된 경우를 표시할 때 사용합니다.
vec <- c(1, 2, NA, 4)

 

 

NaN (Not a Number):

  • 의미: 수학적으로 정의되지 않은 결과를 나타냅니다.
  • 용도: 0을 0으로 나누는 등의 연산 결과로 발생할 수 있습니다.
res <- 0 / 0  # NaN

 

NULL:

  • 의미: 값이 전혀 없음을 나타냅니다.
  • 용도: 리스트나 데이터 프레임에서 값이 없는 상태를 표시하거나, 변수 초기화 등에서 사용됩니다.
val <- NULL

 

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

CMM, CMMI, SPICE, ISO 9000은 모두 소프트웨어 개발 및 조직의 프로세스 성숙도를 평가하고 개선하기 위한 프레임워크나 표준입니다. 각각의 특성과 목적을 이해하면 조직의 프로세스 개선 전략을 세우는 데 도움이 됩니다.

1. CMM (Capability Maturity Model)

정의

CMM은 소프트웨어 개발 프로세스의 성숙도를 평가하기 위해 미국 카네기 멜런 대학교의 소프트웨어 공학 연구소(SEI)에서 개발한 모델입니다.

주요 특징

  • 5단계 모델: 초기 단계(Initial), 관리 단계(Repeatable), 정의 단계(Defined), 관리적 단계(Managed), 최적화 단계(Optimizing)로 구성됩니다.
  • 목적: 소프트웨어 개발 조직의 프로세스를 체계적으로 개선하고 성숙도를 평가하기 위함.

단계 설명

  1. 초기(Initial): 프로세스가 예측 불가능하고 통제되지 않음.
  2. 관리적(Repeatable): 기본적인 프로젝트 관리 프로세스가 수립됨.
  3. 정의(Defined): 프로세스가 조직 전체에 표준화됨.
  4. 관리적(Managed): 프로세스가 정량적으로 관리됨.
  5. 최적화(Optimizing): 지속적인 프로세스 개선이 이루어짐.

2. CMMI (Capability Maturity Model Integration)

정의

CMMI는 CMM을 확장 및 통합하여 소프트웨어뿐만 아니라 다른 분야의 프로세스 성숙도를 평가하고 개선하기 위해 개발된 모델입니다.

주요 특징

  • 통합 모델: 소프트웨어 개발, 시스템 공학, 제품 개발 등 다양한 분야에 적용 가능.
  • 프로세스 영역: 22개의 프로세스 영역으로 구성되며, 각 프로세스 영역은 특정 목표와 실천을 포함.
  • 성숙도 수준: CMM과 마찬가지로 5단계로 구성.

단계 설명

  1. 초기(Initial): 프로세스가 불안정하고 예측 불가능함.
  2. 관리적(Managed): 프로젝트 관리 프로세스가 수립되고 실행됨.
  3. 정의(Defined): 조직 차원에서 표준 프로세스가 정의됨.
  4. 정량적으로 관리(Quantitatively Managed): 프로세스가 정량적으로 측정되고 관리됨.
  5. 최적화(Optimizing): 지속적인 개선을 통해 프로세스가 최적화됨.

3. SPICE (Software Process Improvement and Capability Determination)

정의

SPICE는 ISO/IEC 15504로도 알려져 있으며, 소프트웨어 개발 프로세스의 개선과 능력 평가를 위한 국제 표준입니다.

주요 특징

  • 프로세스 참조 모델: 프로세스 평가를 위한 참조 모델을 제공.
  • 프로세스 평가 모델: 프로세스의 성숙도를 평가하기 위한 상세한 평가 모델.
  • 국제 표준: ISO 표준으로 국제적으로 인정받음.

평가 수준

  1. 불완전(Incomplete): 프로세스가 실행되지 않거나 불완전함.
  2. 수행(Performed): 프로세스가 계획되고 실행됨.
  3. 관리(Managed): 프로세스가 관리되고 통제됨.
  4. 확립(Established): 프로세스가 조직 차원에서 표준화됨.
  5. 예측(Predictable): 프로세스가 정량적으로 관리됨.
  6. 최적화(Optimizing): 프로세스가 지속적으로 개선됨.

4. ISO 9000

정의

ISO 9000 시리즈는 국제 표준화 기구(ISO)에서 제정한 품질 경영 및 품질 보증에 관한 표준입니다.

주요 특징

  • 품질 경영 시스템(QMS): 조직의 품질 경영 시스템을 구축하고 관리하기 위한 지침을 제공.
  • ISO 9001: ISO 9000 시리즈 중 가장 널리 사용되는 표준으로, 품질 경영 시스템의 요구 사항을 정의.
  • 고객 만족: 고객 요구 사항을 충족하고 만족도를 높이는 데 중점.

주요 요소

  1. 품질 방침 및 목표: 품질 방침과 목표를 수립하고 이를 달성하기 위한 계획 수립.
  2. 문서화: 프로세스 및 절차의 문서화.
  3. 경영 책임: 경영진의 책임과 의무를 명확히 함.
  4. 자원 관리: 인적 자원, 인프라, 작업 환경 등을 관리.
  5. 제품 실현: 제품의 설계, 개발, 생산, 제공 프로세스를 관리.
  6. 측정, 분석 및 개선: 품질 성과를 측정하고 분석하여 지속적으로 개선.

요약

  • CMM: 소프트웨어 개발 프로세스 성숙도 모델.
  • CMMI: 다양한 분야에 적용 가능한 통합 성숙도 모델.
  • SPICE: 국제 표준에 따른 소프트웨어 프로세스 평가 모델.
  • ISO 9000: 품질 경영 시스템을 위한 국제 표준.

이러한 모델과 표준은 조직의 프로세스를 체계적으로 평가하고 개선하는 데 중요한 역할을 하며, 이를 통해 효율성과 품질을 높이고 고객 만족을 증대시킬 수 있습니다.

 

 

 

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

2024 이기적 빅데이터분석기사 필기 기본서

1. 거버넌스 체계 개요

🔷 분석 거버넌스 체계 개요

  • 거버넌스 (Governance) 는 '통치'라는 뜻으로 기업에서 의사결정을 위한 데이터의 분석과 활용을 위한 체계적인 관리
  • 업무 프로세스, 정책 및 정보를 만들고 관리하는 지속적인 프로세스로 비즈니스 결과를 위한 전략, 활동, 조직 및 기술을 포함
  • 단순히 대용량 데이터를 수집 • 축적하는 것보다는 어떤 목적으로 어떤 분석을 수행하고, 분석을 위해 어떻게 데이터를 활용할 것인지 결정하고, 데이터 분석을 기업의 문화로 정착시키고 데이터 분석 업무를 지속적으로 고도화하기 위해 데이터 관리 체계를 수립하는 것

 

🔷 분석 거버넌스 체계 구성 요소

♦️ 조직(Organization) : 분석 기획 및 관리를 수행

♦️ 과제 기획 및 운영 프로세스 (Process)

♦️ 분석 관련 시스템 (System)

♦️ 데이터 (Data)

♦️ 분석 관련 교육 및 마인드 육성 체계 (Human Resource)

 

2. 데이터 분석 성숙도 모델 및 수준 진단

① 데이터 분석 수준진단 개요

• 조직 경쟁력 강화를 위한 데이터 분석의 도입 여부와 활용을 위해 현 상태에 대한 명확한 점검 필요

② 분석 수준진단 목표

• 각 조직이 현재 수행하고 있는 분석 수준을 명확히 이해하고, 수준진단 결과를 바탕으로 미래 목표수준 정의

 

🔷 분석 준비도 (Readiness)

: 기업의 데이터 분석 도입의 수준을 파악하기 위한 진단 방법

 

[분석 준비도 평가(프레임워크)]

 

🔷 분석 성숙도 (Maturity)

 

 

 

🔷 분석 수준 진단 결과

[분석 준비도 및 성숙도 진단 결과를 4분면으로 구분]❤️❤️❤️

① 정착형 : 준비도는 낮은편, 조직, 인력, 분석, 업무, 분석 기법을 제한적으로 사용. 우선적으로 분석의 정착이 필요한 기업

② 확산형 : 6가지 분석 구성 요소를 모두 갖춤. 지속적 확산이 가능한 기업

③ 준비형 : 분석을 위한 조직 및 인력, 분석 업무, 분석 기법이 적용되지 않으므로 사전 준비가 필요

④ 도입형 : 분석업무 및 분석 기법 부족, 조직 및 인력 등 준비도가 높음. 데이터 분석을 바로 도입할 수 있는 기업

 

 

3. 분석 지원 인프라 방안 수립

 

개별 시스템

① 시스템 간 자체적 데이터 교환

② 시스템별 독자적인 데이터 관리

③ 확장 시 시스템간 인터페이스 폭증

 

플랫폼 구조

① 분석 플랫폼을 활용한 공동 기능 활용

② 중앙집중적 데이터 관리

③ 시스템 간 인터페이스 최소화

 

(●'◡'●)

플랫폼 : 일반적으로 하드웨어에 탑재되어 데이터 분석에 필요한 프로그래밍 환경과 실행 및 서비스 환경을 제공하는 역할 수행

 

4. 데이터 거버넌스 체계 수립

🔷 데이터 거버넌스 구성요소

 

구성요소 : 원칙, 조직, 프로세스

 

중요 관리 대상

- 마스터 데이터 : 자료 처리에 기준이 되는 자료

- 메타데이터 : 다른 데이터를 설명해 주는 데이터

- 데이터 사전 : DB에 저장된 데이터 정보를 요약

 

데이터 거버넌스 체계

① 데이터 표준화 : 데이터 표준 용어 설정, 명명 규칙(Name Rule), 메타데이터 및 사전 구축

② 데이터 관리 체계 : 효율성을 위함,  데이터 사전의 관리 원칙 수립

③ 데이터 저장소 관리 : 저장소 구성

④ 표준화 활동 : 모니터링, 표준 개선 활동

 

 

5. 데이터 조직 및 인력방안 수립

🔷 데이터 분석 조직 및 인력방안 개요

 

[분석조직]

목표 기업의 경쟁력 확보를 위하여 비즈니스 질문과 부합하는 가치를 찾고 비즈니스를 최적화하는 것
역할 전사 및 부서의 분석 업무를 발굴하고 전문적 기법과 분석 도구를 활용하여
기업 내 존재하는 빅데이터 속에서 인사이트를 찾아낸다.
발견한 인사이트를 전파하고 이를 실행
구성 기초 통계학 및 분석 방법에 대한 지식과 분석을 경험을 보유하고 있는 인력으로
전사 또는 부서 내 조직으로 구성하여 운영

 

 

🔷 데이터 분석 조직 유형

 

♦️ 집중형

- 전사 분석 업무를 별도의 전담 조직에서 수행

- 내부에서 전사 분석과제의 전략적 중요도에 따라 우선순위를 정함

- 현업 부서와 분석 업무가 중복/이원화 가능성 있음 (중복 업무 가능성 존재)⭐

 

♦️ 기능형

- 해당 부서에서 직접 분석 (DSCoE가 없음)

- 전사적인 관점에서 전략적 핵심 분석이 어려우며, 특정 현업부서에 국한된 협소한 분석을 수행할 가능성이 높음

 

♦️ 분산형

- 분석 전문 인력을 현업 부서에 배치

- 전사 차원에서 분석 과제의 우선순위를 선정하고 수행

- 분석 결과를 빠르게 적용 가능

 

(●'◡'●)

DSCoE (Data Science Center of Excellence) : 분석 분담 조직

 

 

 

6. 데이터 분석 관리 프로세스 수립 

 

[분석 과제 관리 프로세스]

①②③ : 발굴 단계

④⑤⑥⑦ : 과제 수행 단계

 

 

① 분석 idea발굴

② 분석 과제 후보 제안

③ 분석 과제 확정

④ 팀 구성

⑤ 분석 과제 실행

⑥ 분석 과제 진행 관리

⑦ 결과 공유/개선

 

7. 분석 교육 및 변화 관리

🔷분석 교육 및 변화관리의 개요

  •  변화에 대응하기 위해 기업은 적절한 분석 업무 도출
  • 가치를 높여줄 수 있도록 분석 조직 및 인력에 대한 지속적은 교육과 훈련 실시
  • 경영층이 사실 기반의 의사결정을 할 수 있는 문화를 정착시키는 변화관리를 지속적으로 계획하고 수행

🔷 분석 도입에 대한 문화적 대응

  • 과거에는 분석 업무를 기업의 분석가가 담당 ➡️ 현재는 모든 구성원이 데이터를 분석, 즉시 활용하는 분석 문화를 정착시키려 함
  • 새로운 체계를 도입할 때 도입 이전의 과거로 되돌아가려는 관성  존재 ➡️ 분석과 관련된 교육 및 마인드 육성을 위한 변화관리 필요

 

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

2024 이기적 빅데이터분석기사 필기 기본서

1. 마스터플랜 수립

🔷 분석 마스터플랜의 개념

: 분석과제를 목적이나 목표에 따라 방향성을 제시하는 설계도

 

♦️ 분석 마스터플랜 수립 절차

  • 중요도, 난이도 고려하여 우선순위 결정
  • 단기, 중장기로 나누어 로드맵 수립
  • 분석 마스터 플랜 시 일반적인 정보젼략계획 방법론을 활용, 다만 데이터 분석 기획 틍성을 고려하여 수행
  • 과제 도출 방법을 활용하여 데이터 분석 과제들을 빠짐없이 정의

♦️ 정보전략계획 (ISP : Information Stratogy Plannig)

  • 정보기술 및 시스템을 전략적으로 활용하기 위한 중장기 마스터 플랜을 수립하는 절차
  • 조직 내 • 외부의 환경을 충분히 분석하여 새로운 기회나 문제점 도출
  • 사용자의 요구사항을 확인하여 시스템 구축 우선순위 결정

 

 

🔷 분석 마스터플랜 수립 프레임워크 ❤️❤️❤️

 

 

🔷일반적인 IT프로젝트 우선순위 평가

 

🔷 빅데이터의 특징을 고려한 분석 ROI요소

 ROI (Return Of Investment)

: 투자 수익률, 가장 널리 사용되는 경영성과 측정 기준중 하나

 

ROI공식

 

쉽게 풀어쓴 식

 

 

  • 이익 (수익): 투자를 통해 얻은 총 수익.
  • 투자 비용: 투자에 들어간 총 비용.
  • 순이익: 이익(수익)에서 투자 비용을 뺀 값.

 

 

 

 

시급성 관점 : 비즈니스 효과(Vlaue) - 가치(투자)

난이도 관점 : 투자비용 요소(Investment) - 빅데이터 3V

 

🔷ROI를 활용한 우선순위 평가 기준

 

 

(●'◡'●)

KPI (Key Performance Indicator) :핵심 성과 지표

Poc(Proof of Concept) : 개념 증명이라는 뜻으로, 특정 개념이나 이론이 실제로 실현 가능한지 검증하는 과정

SI (System Integration) : 전산시스템을 필요로 하는 곳으로부터 하청을 받아 시스템의 기획, 개발, 유지보수 등을 대신 해주는 업종

SM (System Management) : 시스템 운영, 또는 유지보수 약자

 

 

 

🔷포트폴리오 사분면(Quadrant) 분석을 활용한 우선순위 평가기준

✔️ 시급성 중요시 : 3 - 4 - 1 - 2 

✔️ 난이도 중요시 : 3 - 1 - 4 - 2 

 

3과 2는 앞뒤 고정 가운데만 변경

 

 

(●'◡'●)

마스터플랜과 ISP 차이점

 

마스터 플랜(Master Plan)과 ISP(Information Strategy Planning, 정보 전략 계획)은 둘 다 조직의 목표 달성을 위한 계획 수립을 의미하지만, 그 적용 범위와 목적에서 차이가 있습니다.

차이점 요약

  1. 적용 범위:
    • 마스터 플랜: 조직 전체의 포괄적인 계획.
    • ISP: IT와 정보 시스템 중심의 계획.
  2. 목적:
    • 마스터 플랜: 조직의 전반적인 비전과 목표 달성.
    • ISP: 비즈니스 목표를 지원하는 IT 전략 수립.
  3. 시간적 범위:
    • 마스터 플랜: 보통 5년 이상의 장기 계획.
    • ISP: 3~5년 이상의 중장기 계획.
  4. 중심 요소:
    • 마스터 플랜: 조직의 비전과 전략적 방향.
    • ISP: 정보 기술과 관련된 전략적 요소.

(●'◡'●)

 

 

3. 이행계획 수립

 

🔷로드맵 수립

① 포트폴리오 사분면을 통한 우선순위 결정

② 과제별 적용 범위 방식을 고려한 최종 우선순위 결정

③ 단계적 구현 로드맵 수립

④ 단계별 추진 목표 정의

⑤ 추진 과제별 선후행 관계를 고려하여 추진 내용 정렬

 

 

🔷 세부 이행계획 수립

세부 이행계획 수립할 때 고전적인 폭포수(Waterfall) 방식도 있으나,

반복적인 모델링 과정을 통하여 프로젝트의 완성도를 높이는 방식을 주로 사용

 

주로 순차형 복형을 혼합하여 사용한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

2024 이기적 빅데이터분석기사 필기 기본서

1. 분석 프로젝트 관리

 

🔷 분석 프로젝트 

분석 프로젝트 : 과제형태로 도출된 분석 기회를 프로젝트화 하여 그 가치를 증명하기 위한 수단

 

🔷 분석 프로젝트 특성

  • 분석가의 목표는 분석의 정확도를 높이는 것뿐만 아니라 원하는 결과를 사용자가 원활하게 활용할 수 있도록 고려해야 한다.
  • 분석가는 데이터의 영역과 비즈니스 영역의 중간에서 조율을 수행하는 조정자의 역할을 수행해야 한다.
  • 도출된 결과의 재해석을 통한 지속적인 모델 정교화 작업을 반복하여 모델을 개선할 수 있도록 적절한 관리 방안 수립

 

🔷 분석 프로젝트 고려사항 5가지

데이터 크기
(Data Size) 
데이터가 지속적으로 생성되어 증가하는 점 고려
데이터 복잡도
(Data Complexity)
정형, 비정형데이터와 다양한 시스템에 산재되어 있는 원천 데이터들을 통합하는 진행 필요
속도
(Speed) 
활용 시나리오, 분석의 모형의 성능과 속도를 고려한 개발과 테스트 수행
분석 모형의 복잡도
(Anaytic Model Complexity)
정확도와 복잡도 Trade off
정확도와 정밀도
(Accuracy & Precision) 
분석 결과 활용은 정확도, 프로젝트 안정성이 우선인 경우 정밀도
정확도와 정밀도는 Trade off인 경우가 많다

 

 

(●'◡'●)

Time Boxing 기법

프로토타입 모델의 프로젝트 기획 및 관리 기법으로

현재 할당된 작업이 주어진 시간 동안 완수되지 못하였더라도 다음 작업으로 넘어가는 방법

 

 

[정확도와 정밀도]

 

 

 

 

 

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

2024 이기적 빅데이터분석기사 필기 기본서

1. 분석 과제 발굴 개요

🔷 분석 과제 '발굴' 과 '탐색'

 

 

⚫분석 과제 발굴

  • 해결해야 할 다양한 기업(혹은 분석의 주체)의 문제를 '데이트 분석 문제'로 변환하는 것을 포함하는 개념이다.
  • 분석 과제는 이해관계자들이 이해할 수 있게 프로젝트 수행 목적의 과제 정의서 형태로 도출

 

⚫ 분석 과제 탐색 방법

 

❤️ 하향식 접근법 (Top-Down Approach)

: 문제가 주어졌을 때 우리가 해결해야 할 과제가 무엇인지를 찾는 전통적인 Top-Down 수행 방법으로, 각 과정이 치계적으로 단계화 되어 문제를 해결하는 방식

 

❤️ 상향식 접근법 (Bottom Up Approach)

: 문제 정의 자체가 어려운 경우 데이터를 기반으로 문제의 재정의 및 해결방안을 탐색하고 이를 지속적으로 개선하는 방식,

다양한 데이터의 조합 속에서 인사이트를 찾아내는 Bottom-Up 방식

 

 

[분석 과제 발굴 방법론 개념도]

하향식 접근법은 현황 분석을 통해서 또는 인식된 문제로부터 기회나 문제를 탐색하고, 문제를 정의, 해결 방안을 탐색, 데이터의 타당서을 평가하는 과정을 거쳐 분석 과제를 도출하는 과정으로 구성되어 있다.

 

 

 

🔷디자인 씽킹

♦️ IDEO사의 디자인 씽킹

 

 

 

♦️ 스탠퍼드대학 d.school 디자인 씽킹

 

① 공감(Empathize)

② 문제 정의(Define)

③ 아이디어 도출(Ideate)

④ 프로토타입 (Prototype)

⑤ 테스트(Test)

⑥ 평가 (ASSESS)

 


 

 

2. 하향식 접근법 ❤️❤️❤️

🔷 ✔️[1단계] - 문제 탐색 단계

 

① 비즈니스 모델 기반 문제 탐색

  • 업무, 제품, 고객 단위로 문제를 발굴하고 이를 관리하는 규제와 감사, 지원 인프라의 두 가지 영역에 대한 기회를 추가로 도출하는 작업
  • 새로운 관점의 접근으로 새로운 유형의 분석 기회와 주제를 발굴

② 분석 기회 발굴 범위의 확장

거시적, 경쟁자, 시장니즈, 역량의 재해석

 

 

③ 외부 참조 모델 기반 문제 탐색

  • 유사 동종 업계에서 기존에 수행한 문제 탐색 및 분석 과제 등을 활용
  • 유사동종 벤치마킹
  • 산업별, 서비스별 분석테마 후보 그룹을 통해 빠르고 쉬운 (Quick & Easy)방식으로 분석 기회가 무엇인지 아이디어를 얻는 브레인스토밍 활용 방법

④ 분석 유스케이스 정의

  • 도출한 분석 기회들을 세부과제로 도출하기 전에 '분석 유스케이스 (Analytics Use Case)'로 정의
  • 문제에 대한 상세 설명과 기대효과를 명시하여 향후 데이터 분석 문제로의 전환 및 적합성 평가에 활용

 

[비즈니스 모델 캔버스]

 

 

🔷 ✔️[2단계] - 문제 정의 단계

  • 식별된 비즈니스 문제를 데이터적인 문제로 변환하여 정의
  • 필요한 데이터기법을 정의하기 위한 데이터 분석 문제로 변환
  • 데이터 분석 문제의 정의는 최종 사용자(End-User)관점에서 이루어져야 한다.

 

🔷 ✔️[3단계] - 해결 방안 탐색 단계

  • 정의된 데이터에서 분석 문제를 해결하기 위한 다양한 방안들을 모색
  • 기업 수준에서 분석이 가능한 시스템을 갖추었는지, 분석을 수행할 인력을 확보되었는지 탐색

분석 기법 및 시스템, 분석 역량, 아웃 소싱, 외주, 시스템 고도화

 

🔷 ✔️[4단계] - 타당성 평가 단계

  • 도출된 분석 문제, 가설에 대한 대안을 과제화하기 위한 타당성을 분석
  • 도출된 여러 대안 중 평가 과정을 거쳐 가장 우월한 대안을 선택

경제적 타당성 : 비용 대비 편익 분점 관점의 접근이 필요

- 비용 항목은 데이터, 시스템, 인력, 유지보수 등 분석 비용

- 편익은 분석 결과를 적용하여 발생 가능한 실질적 비용 절감, 추가적 매출과 수익 등의 경제적 가치 산출

 

데이터 및 기술적 타당성

- 데이터 분석 시 데이터, 분석 시스템 환경 분석 역량 필요

- 기술적 타당성 분석 시 역량 확보 방안의 사전수립 필요

- 비즈니스 분석가, 데이터 분석과, 시스템 엔지니어등과 협업

 

 


 

3. 상향식 접근법 ❤️❤️❤️

🔷 상향식 접근법 개요

 

⚫ 상향식 접근법 개념

  • 상향식 접근법은 분석 대상이 무엇인지 모를 경우 분석 과제 발굴을 위해 사용하는 방법
  • 원천 데이터로부터 통찰과 지식을 얻는 접근 방법

 

⚫ 상향식 접근법 특징

  • 다량의 데이터 분석을 통해 왜(why) 그러한 일이 발생했는지 역으로 추적하면서 문제를 도출하거나 재정의할 수 있는 방식
  • 데이터를 활용하여 생각지도 못했던 인사이트 도출 및 시행착오를 통한 개선이 가능
  • 일반적으로 비지도학습 방법에 의해 수행
  • d.school의 디자인 씽킹은 상향식 접근법에 속함

🔷 지도학습과 비지도학습 ❤️❤️❤️

 

✔️지도학습 : 정답이 있는 데이터를 활용하여 분석 모델을 학습

  • 지도학습은 레이블(Label)이 범주형인 분류와 연속형인 회귀로 나누어진다
  • ex) 머신러닝, 의사결정 트리, 인공신경망 모형, 분류 분석

 

✔️비지도학습 : 정답을 알려주지 않고 학습

  • 정답 레이블이 없는 데이터를 비슷한 특징을 가진 데이터끼리 군집화하여 새로운 데이터에 대한 결과 예측
  • 목적이 명확하게 정의된 특정 필드의 값을 구하는 것이 아니라, 데이터 자체의 결합, 연관성, 유사성 등을 중심으로 데이터의 상태를 표현
  • 일반적으로 상향식 접근법 데이터분석은 비지도학습에 의해 수행됨
  • 새로운 유형의 인사이트를 도출하기에 유용한 방식
  • ex) 장바구니 분석, 기술통계, 프로파일링, 군집분석, 주성분분석, 다차원척도

 

🔷프로토타이핑 접근법

프로토타이핑 접근법 : 일단 먼저 분석을 시도해보고 그 결과를 확인하면서 반복적으로 개선해나가는 방식

  • 상향식 접근법 중 하나로 시행착오 해결법이라고도 함
  • 사용자가 요구사항이나 데이터를 정확히 정의하기 어렵고 원천데이터도 명확하지 않을 때 주로 사용

⚫ 프로토타이핑 접근법의 필요성

♦️ 문제에 대한 인식 수준

♦️ 필요 데이터 존재 여부의 불확실성

♦️ 데이터 사용 목적의 가변성

 

 

 

 

⚫ 프로세스

특징

  • 잘 설계된 프로토타이핑을 지속하는 경우 실험이 가지고 있는 불확실성은 감소하고 의도했던 결과를 도출할 가능성이 높아진다.
  • 분석환경에서는 최대한 분석 결과를 보여주고 이를 가지고 지속적으로 반복하는 방법이 효과적이다.

구성

① 가설의 생성 (Hypotheses)

② 디자인에 대한 실험 (Design Experiments)

③ 실제 환경에서의 테스트(Test)

④ 테스트 결과에서의 통찰(Insight) 도출 및 가설 확인

 

 

 

 

 

 

 

[참고 도서]

출처 :

이지패스 2024 ADsP 데이터분석 준전문가

2024 이기적 빅데이터분석기사 필기 기본서