R 프로그래밍 기초란? 벡터·행렬·데이터프레임·결측값 처리와 lm() summary 해석 쉽게 이해하기

1장 R 프로그래밍은 무엇을 먼저 알아야 할까#

ADsP에서 R 문제는 복잡한 프로그램을 직접 개발하는 능력보다 코드를 읽고 결과를 해석하는 능력이 중요합니다.

특히 자주 등장하는 내용은 다음과 같습니다.

  • Vector
  • Matrix
  • Data Frame
  • List
  • NA·NaN·NULL
  • is.na()
  • na.rm=TRUE
  • install.packages()
  • library()
  • lm()
  • summary()

이 가운데 summary(lm(...)) 결과를 해석하는 문제는 회귀분석 개념과 R 문법을 함께 묻기 때문에 특히 중요합니다.

먼저 R의 데이터 구조부터 이해해보겠습니다.

2장 벡터 Vector란 무엇인가#

벡터 Vector는 R에서 가장 기본적인 데이터 구조입니다.

여러 값을 한 줄로 묶어 저장할 수 있으며 모든 원소가 같은 자료형을 가져야 합니다.

숫자형 벡터는 다음처럼 만들 수 있습니다.

x <- c(1, 2, 3, 4, 5)

문자형 벡터는 다음과 같습니다.

y <- c("a", "b", "c")

논리형 벡터도 만들 수 있습니다.

z <- c(TRUE, FALSE, TRUE)

c()는 여러 값을 하나의 벡터로 결합할 때 사용하는 함수입니다.

핵심#

Vector = 1차원 + 같은 자료형

입니다.

3장 벡터의 모든 원소가 같은 자료형이라는 뜻#

벡터에서는 숫자와 문자를 서로 완전히 독립된 자료형으로 유지하면서 섞어 저장하는 구조가 아닙니다.

제공된 학습자료에서 가장 중요한 시험 포인트는:

벡터는 같은 자료형

이라는 점입니다.

따라서 시험에서:

서로 다른 자료형을 자유롭게 포함할 수 있는 1차원 구조는 Vector이다.

라고 나오면 틀린 설명입니다.

서로 다른 자료형을 하나의 구조 안에 보관하는 대표적인 형태는 List입니다.

4장 행렬 Matrix란 무엇인가#

행렬 Matrix는 행과 열로 이루어진 2차원 데이터 구조입니다.

벡터처럼 행렬 안의 원소들도 같은 자료형을 사용합니다.

예를 들어 다음 코드를 보겠습니다.

mat <- matrix(1:6, nrow=2, ncol=3)

결과는 다음과 같은 형태입니다.

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

즉:

2개의 행

3개의 열

을 가진 행렬입니다.

핵심#

Matrix = 2차원 + 같은 자료형

입니다.

5장 Vector와 Matrix의 차이#

두 구조 모두 기본적으로 같은 자료형의 값을 담지만 차원이 다릅니다.

구조 차원 자료형
Vector 1차원 같은 자료형
Matrix 2차원 같은 자료형

따라서:

Vector = 한 줄

Matrix = 행과 열

이라고 기억하면 쉽습니다.

6장 데이터프레임 Data Frame이란 무엇인가#

데이터프레임은 R에서 데이터 분석을 할 때 매우 자주 사용하는 구조입니다.

행과 열을 가진 2차원 구조라는 점에서는 Matrix와 비슷하지만 중요한 차이가 있습니다.

데이터프레임은 열마다 서로 다른 자료형을 가질 수 있습니다.

예를 들어:

df <- data.frame(
  id = 1:3,
  name = c("김철수", "이영희", "박민수"),
  score = c(85, 92, 78)
)

여기에는:

  • id → 숫자
  • name → 문자
  • score → 숫자

가 함께 들어 있습니다.

7장 데이터프레임 출력 이해하기#

위 데이터프레임을 출력하면 제공된 학습자료에서는 다음과 같이 나타납니다.

  id   name score
1  1 김철수    85
2  2 이영희    92
3  3 박민수    78

하나의 데이터프레임 안에 숫자형과 문자형 열이 함께 존재합니다.

따라서:

Data Frame = 2차원 + 다른 자료형 가능

이라고 기억하면 됩니다.

8장 Matrix와 Data Frame 차이#

시험에서 매우 자주 혼동하는 부분입니다.

Matrix#

2차원

같은 자료형

Data Frame#

2차원

서로 다른 자료형 가능

즉 둘 다 표 형태이지만 자료형을 섞을 수 있는지가 중요한 차이입니다.

구조 차원 다른 자료형 사용
Matrix 2차원 불가
Data Frame 2차원 가능

9장 리스트 List란 무엇인가#

List는 서로 다른 자료형을 함께 저장할 수 있는 1차원 구조입니다.

예:

list(1, "a", TRUE)

하나의 List 안에:

  • 숫자
  • 문자
  • 논리값

이 함께 존재합니다.

제공된 학습자료의 핵심 정리는 다음과 같습니다.

List = 1차원 + 다른 자료형 가능

입니다.

10장 R 데이터 구조 한눈에 비교하기#

구조 차원 자료형 예
Vector 1차원 같은 자료형 c(1, 2, 3)
Matrix 2차원 같은 자료형 matrix(1:6, 2, 3)
Data Frame 2차원 다른 자료형 가능 data.frame()
List 1차원 다른 자료형 가능 list(1, "a", TRUE)

시험에서는 다음처럼 압축해서 기억하면 쉽습니다.

Vector = 1차원·같음

Matrix = 2차원·같음

Data Frame = 2차원·다름 가능

List = 1차원·다름 가능

11장 결측값 NA란 무엇인가#

R에서 NA는 Missing Value, 즉 결측값을 의미합니다.

데이터가 존재해야 하지만 값이 빠져 있는 상태입니다.

예를 들어 다음 데이터가 있다고 하겠습니다.

data <- c(10, 20, NA, 40, 50, NA, 70)

총 7개의 위치 가운데 두 곳에 값이 없습니다.

이때 그 위치를 NA로 표현합니다.

핵심#

NA = 결측값

입니다.

12장 NaN이란 무엇인가#

NaN은 Not a Number의 약자입니다.

제공된 학습자료에서는:

수학적으로 정의되지 않은 값

으로 설명합니다.

대표적인 예는:

0/0

입니다.

결과는:

NaN

이 됩니다.

핵심#

NaN = 수학적으로 계산할 수 없는 값

입니다.

13장 NULL이란 무엇인가#

NULL은 제공된 학습자료에서:

비어 있는 객체

로 설명합니다.

즉 단순히 데이터 하나가 빠진 상태를 뜻하는 NA와 구분해야 합니다.

핵심#

NULL = 빈 객체

입니다.

14장 NA·NaN·NULL 비교#

값 의미
NA 결측값 Missing Value
NaN 수학적으로 정의되지 않은 값
NULL 비어 있는 객체

시험에서는 세 개를 서로 바꾸어 출제할 수 있습니다.

가장 간단하게:

NA = 값이 없음

NaN = 계산 불가

NULL = 객체가 비어 있음

으로 기억할 수 있습니다.

15장 NaN은 그냥 결측값인가#

제공된 학습자료에서는 다음 문장을 함정으로 제시합니다.

NaN은 결측값이다.

틀립니다.

학습자료 기준에서는:

NaN = 수학적으로 정의되지 않은 값

으로 구분합니다.

대표적인 사례는:

0/0

입니다.

16장 NULL은 결측값인가#

제공된 학습자료에서는 다음 문장도 함정으로 제시합니다.

NULL은 결측값이다.

틀립니다.

NULL은:

빈 객체

입니다.

따라서 시험에서는:

NA와 NULL을 같은 개념으로 보면 안 됩니다.

17장 NA가 있는지 확인하는 is.na()#

결측값을 확인할 때는 is.na()를 사용할 수 있습니다.

data <- c(10, 20, NA, 40, 50, NA, 70)

is.na(data)

제공된 학습자료의 결과는 다음과 같습니다.

FALSE FALSE TRUE FALSE FALSE TRUE FALSE

즉 NA가 있는 위치에서는 TRUE가 나옵니다.

18장 NA 개수 세기#

NA가 몇 개인지 세려면:

sum(is.na(data))

를 사용할 수 있습니다.

앞의 데이터에서는 결과가:

2

입니다.

왜냐하면 is.na()가 NA 위치를 TRUE로 반환하고 이를 sum()으로 계산하기 때문입니다.

핵심#

NA 개수 = sum(is.na(x))

입니다.

19장 NA가 있는 상태에서 평균을 계산하면#

다음 데이터를 사용한다고 하겠습니다.

data <- c(10, 20, NA, 40, 50, NA, 70)

그대로 평균을 계산하면:

mean(data)

제공된 학습자료에서는:

NA

가 반환됩니다.

결측값을 포함한 상태에서는 정상적인 평균값을 바로 얻을 수 없습니다.

20장 na.rm=TRUE는 반드시 기억하자#

NA를 제외하고 평균을 계산하려면 다음처럼 사용합니다.

mean(data, na.rm=TRUE)

na.rm은 NA를 제거하고 계산하도록 하는 옵션입니다.

제공된 학습자료에서는 이 사용법을 필수 암기 대상으로 제시합니다.

핵심#

NA 제외 계산 = na.rm=TRUE

입니다.

21장 na.rm의 의미#

na.rm=TRUE에서 핵심은:

NA를 제거하고 계산

한다는 것입니다.

따라서 평균뿐 아니라 NA를 처리할 수 있는 여러 R 함수에서 비슷한 형태로 사용할 수 있습니다.

시험에서는 코드 자체를 보여주고:

결측값을 제외하고 평균을 계산하는 명령은?

이라고 물을 수 있습니다.

정답은:

mean(x, na.rm=TRUE)

입니다.

22장 na.omit()으로 NA 제거하기#

제공된 학습자료에서는 결측값을 제거하는 방법으로:

na.omit(data)

도 제시합니다.

이 함수는 NA가 포함된 데이터를 제외한 결과를 얻는 데 사용할 수 있습니다.

따라서:

확인 → is.na()

제거 → na.omit()

이라고 연결하면 쉽습니다.

23장 complete.cases()란 무엇인가#

제공된 학습자료에서는:

complete.cases(data)

도 함께 제시합니다.

이는 NA가 없는 위치를 확인하는 데 사용합니다.

즉 완전한 데이터가 있는 위치를 논리값 형태로 확인할 수 있습니다.

결측값 관련 함수를 함께 정리하면 다음과 같습니다.

목적 함수
NA 여부 확인 is.na()
NA 개수 확인 sum(is.na())
NA 제외 계산 na.rm=TRUE
NA 제거 na.omit()
완전한 데이터 위치 확인 complete.cases()

24장 R 패키지란 무엇인가#

R에서는 다양한 분석 기능을 패키지 Package 형태로 추가할 수 있습니다.

예를 들어 특정 통계분석이나 시각화 기능이 필요하다면 관련 패키지를 설치한 뒤 불러와 사용할 수 있습니다.

여기서 반드시 구분해야 하는 명령이 있습니다.

  • install.packages()
  • library()

입니다.

25장 패키지 설치 방법#

패키지를 설치할 때는:

install.packages("패키지명")

을 사용합니다.

예를 들어:

install.packages("rpart")

처럼 사용할 수 있습니다.

핵심#

install.packages() = 설치

입니다.

26장 패키지 로드 방법#

이미 설치된 패키지를 현재 R 세션에서 사용하려면:

library(패키지명)

을 사용합니다.

예:

library(rpart)

입니다.

핵심#

library() = 로드

입니다.

27장 install.packages()와 library() 차이#

함수 역할
install.packages() 패키지 설치
library() 설치된 패키지 로드

제공된 학습자료의 대표적인 함정은:

library()는 패키지를 설치하는 명령이다.

입니다.

틀립니다.

library()는 패키지를 불러오는 명령입니다.

28장 lm() 함수란 무엇인가#

lm()은 R에서 선형회귀모형을 만들 때 사용하는 함수입니다.

예를 들어:

model <- lm(y ~ x1 + x2, data = df)

라고 작성할 수 있습니다.

이를 읽으면:

데이터프레임 df를 이용하여 x1과 x2로 y를 설명하는 선형회귀모형을 만든다.

는 의미입니다.

29장 y ~ x1 + x2는 무엇을 의미하는가#

R 회귀식에서는 ~ 기호를 사용합니다.

y ~ x1 + x2

는:

종속변수 y를 독립변수 x1과 x2로 설명

한다는 의미입니다.

따라서:

  • y → 종속변수
  • x1, x2 → 독립변수

입니다.

시험에서 R 코드를 읽을 때 이 구조를 바로 파악할 수 있어야 합니다.

30장 summary(model)은 무엇을 보여주는가#

회귀모형을 만든 뒤:

summary(model)

을 실행하면 모델에 대한 여러 통계정보를 확인할 수 있습니다.

제공된 학습자료에서는 시험에서 이 결과를 보여준 뒤 다음을 묻는 문제가 자주 출제된다고 설명합니다.

  • R²는 얼마인가?
  • 회귀계수는 유의한가?
  • 회귀식은 무엇인가?
  • 전체 회귀모형은 유의한가?

따라서 summary() 결과를 읽는 방법은 매우 중요합니다.

31장 lm() summary 출력 예제#

제공된 학습자료의 예제를 정리하면 다음과 같습니다.

Residuals:
    Min      1Q  Median      3Q     Max
-3.456  -1.234   0.123   1.567   4.890

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   5.2345     0.8910   5.874  0.00012 ***
x1            2.3456     0.4532   5.177  0.00045 ***
x2           -0.8765     0.3210  -2.731  0.01234 *

Residual standard error: 2.145 on 47 degrees of freedom
Multiple R-squared: 0.7823
Adjusted R-squared: 0.7721
F-statistic: 84.67 on 2 and 47 DF
p-value: < 2.2e-16

처음 보면 숫자가 많아 복잡해 보이지만 시험에서 보는 부분은 정해져 있습니다.

32장 Estimate란 무엇인가#

Estimate는 회귀계수의 추정값입니다.

예제에서는:

Intercept = 5.2345

x1 = 2.3456

x2 = -0.8765

입니다.

이 값을 이용하면 회귀식을 만들 수 있습니다.

핵심#

Estimate = 회귀계수 β

입니다.

33장 절편 Intercept 읽기#

출력에서:

(Intercept)  5.2345

라고 되어 있습니다.

이는 회귀식의 절편 β₀가:

5.2345

라는 의미입니다.

즉 독립변수들의 값이 0일 때 회귀식의 기준값으로 사용됩니다.

34장 x1 회귀계수 해석#

x1의 Estimate는:

2.3456

입니다.

제공된 학습자료에서는:

x1이 1 증가하면 y가 2.3456 증가

한다고 해석합니다.

다중회귀이므로 더 정확하게 표현하면 다른 변수를 고정한 상태에서 x1이 1단위 증가할 때 y가 2.3456 증가하는 관계입니다.

핵심#

양수 회귀계수 → 양의 방향

입니다.

35장 x2 회귀계수 해석#

x2의 Estimate는:

-0.8765

입니다.

음수이므로:

x2가 증가할수록 y는 감소하는 방향

을 나타냅니다.

제공된 학습자료에서는:

x2가 1 증가하면 y가 0.8765 감소

하는 관계로 설명합니다.

핵심#

음수 회귀계수 → 음의 방향

입니다.

36장 회귀식 만드는 방법#

출력된 Estimate를 회귀식에 넣으면 됩니다.

Intercept:

5.2345

x1:

2.3456

x2:

-0.8765

이므로 회귀식은:

y = 5.2345 + 2.3456×x1 - 0.8765×x2

입니다.

시험에서는 summary() 결과를 보여주고 직접 회귀식을 고르게 할 수 있습니다.

37장 Std. Error란 무엇인가#

Std. Error는 회귀계수 추정값의 표준오차입니다.

제공된 학습자료에서는:

작을수록 정밀한 추정

이라고 설명합니다.

즉 회귀계수를 추정한 값이 어느 정도 불확실성을 가지고 있는지 나타내는 값으로 이해할 수 있습니다.

핵심#

Std. Error = 추정값의 표준오차

입니다.

38장 t value란 무엇인가#

t value는 t 통계량입니다.

제공된 학습자료에서는 다음 관계를 제시합니다.

t value = Estimate / Std. Error

그리고:

절댓값이 클수록 유의미

한 방향으로 해석한다고 정리합니다.

시험에서는 직접 계산하기보다 출력 결과의 의미를 묻는 경우가 중요합니다.

39장 Pr(>|t|)는 무엇인가#

Pr(>|t|)는 p-value 유의확률입니다.

개별 독립변수의 회귀계수가 통계적으로 유의한지 판단할 때 사용합니다.

제공된 학습자료 기준:

p-value < 0.05

이면:

유의한 변수

로 판단합니다.

핵심#

개별 변수 유의성 → Coefficients의 p-value

입니다.

40장 x1은 유의한 변수인가#

예제에서 x1의 p-value는:

0.00045

입니다.

0.05보다 작으므로:

통계적으로 유의한 변수

로 판단합니다.

또한 ***가 표시되어 있습니다.

41장 x2는 유의한 변수인가#

x2의 p-value는:

0.01234

입니다.

0.05보다 작으므로 제공된 학습자료 기준:

유의한 변수

입니다.

즉 회귀계수가 음수라고 해서 유의하지 않은 것이 아닙니다.

방향과 유의성은 별도로 판단해야 합니다.

42장 유의성 기호 별표 읽기#

제공된 학습자료에서는 별표를 다음과 같이 정리합니다.

기호 기준
*** p < 0.001
** p < 0.01
* p < 0.05

별표가 많을수록 더 작은 p-value와 연결됩니다.

제공된 학습자료에서는:

별 3개 = 가장 강한 유의성

이라고 설명합니다.

43장 Multiple R-squared란 무엇인가#

Multiple R-squared는 결정계수 R²입니다.

예제에서는:

0.7823

입니다.

따라서 제공된 학습자료에서는:

모델이 데이터의 약 78.2%를 설명

한다고 해석합니다.

핵심#

Multiple R-squared = R² = 모델 설명력

입니다.

44장 R²는 높을수록 무조건 좋은가#

제공된 학습자료에서는 다음 문장을 함정으로 제시합니다.

R²가 높을수록 항상 좋은 모델이다.

틀립니다.

변수를 계속 추가하면 R²가 높아질 수 있고 과적합 가능성도 있기 때문입니다.

따라서 단순히 R² 하나만 보고 무조건 좋은 모델이라고 판단해서는 안 됩니다.

45장 Adjusted R-squared란 무엇인가#

Adjusted R-squared는 수정 결정계수입니다.

변수의 개수를 고려하여 R²를 보정한 값입니다.

예제에서는:

0.7721

입니다.

제공된 학습자료에서는 수정 R²의 역할을:

변수를 추가하면 R²가 자동으로 증가하는 문제를 보정

하는 것으로 설명합니다.

46장 왜 수정 R²가 필요한가#

일반적인 R²는 새로운 독립변수를 추가할 때 값이 증가하는 방향으로 움직일 수 있습니다.

하지만 추가된 변수가 실제로 유용하지 않을 수도 있습니다.

수정 R²는 변수의 개수를 고려하기 때문에 무의미한 변수를 추가했을 때 감소할 수도 있습니다.

따라서 모델의 복잡도를 어느 정도 고려하는 지표라고 이해할 수 있습니다.

47장 수정 R² 대표 함정#

다음 문장을 주의합니다.

수정 R²는 변수를 추가하면 항상 증가한다.

틀립니다.

제공된 학습자료에서는:

무의미한 변수를 추가하면 감소 가능

이라고 설명합니다.

따라서:

R²는 변수 추가 시 증가 문제

Adjusted R²는 이를 보정

이라고 연결하면 됩니다.

48장 F-statistic은 무엇을 평가하는가#

F-statistic은 회귀모델 전체의 유의성을 검정하는 데 사용됩니다.

이 부분이 매우 중요합니다.

개별 변수 하나의 유의성을 보는 것이 아닙니다.

예제에서는:

F-statistic: 84.67
p-value: < 2.2e-16

으로 제시되어 있습니다.

49장 F-statistic의 p-value 해석#

제공된 학습자료에서는:

F-statistic의 p-value < 0.05

이면:

최소 하나 이상의 변수가 유의미

하다고 설명합니다.

즉 전체 회귀모형이 통계적으로 의미가 있는지를 판단합니다.

핵심#

F-test = 모델 전체

입니다.

50장 개별 변수와 전체 모델 유의성 구분#

시험에서 매우 자주 헷갈리는 부분입니다.

개별 변수#

Coefficients의:

Pr(>|t|)

를 확인합니다.

전체 모델#

아래쪽의:

F-statistic p-value

를 확인합니다.

따라서:

t와 각 p-value → 개별 변수

F와 p-value → 전체 모델

이라고 기억하면 쉽습니다.

51장 F-statistic 대표 함정#

다음 문장은 틀립니다.

F-statistic의 p-value는 개별 독립변수 하나의 유의성을 검정한다.

제공된 학습자료에서는:

회귀모델 전체의 유의성

을 검정한다고 설명합니다.

개별 변수는 Coefficients 영역의 p-value를 봅니다.

52장 summary 출력에서 시험이 묻는 순서#

summary(lm()) 결과가 나오면 다음 순서로 보면 편합니다.

1. Estimate#

회귀식 작성

2. Pr(>|t|)#

각 독립변수 유의성 확인

3. Multiple R-squared#

모델 설명력 확인

4. Adjusted R-squared#

변수 수를 보정한 설명력 확인

5. F-statistic p-value#

모델 전체 유의성 확인

이 순서를 익혀두면 긴 출력 결과에서도 필요한 숫자를 빠르게 찾을 수 있습니다.

53장 summary 결과를 실제로 해석해보기#

예제 결과를 다시 보겠습니다.

Intercept:

5.2345

x1:

2.3456

x2:

-0.8765

따라서 회귀식은:

y = 5.2345 + 2.3456x1 - 0.8765x2

입니다.

x1의 p-value:

0.00045

→ 0.05보다 작음

→ 유의

x2의 p-value:

0.01234

→ 0.05보다 작음

→ 유의

R²:

0.7823

→ 약 78.2% 설명

전체 모델 p-value:

2.2e-16보다 작음

→ 전체 모델 유의

로 해석할 수 있습니다.

54장 R 프로그래밍 시험 함정 1#

Vector는 여러 자료형을 자유롭게 포함할 수 있다.

틀립니다.

제공된 학습자료에서는 같은 자료형만 가능하다고 정리합니다.

55장 R 프로그래밍 시험 함정 2#

Matrix는 열마다 서로 다른 자료형을 사용할 수 있다.

틀립니다.

Matrix는 같은 자료형을 사용합니다.

서로 다른 자료형의 열을 가질 수 있는 대표적인 구조는 Data Frame입니다.

56장 R 프로그래밍 시험 함정 3#

Data Frame은 숫자형 데이터만 저장할 수 있다.

틀립니다.

숫자형과 문자형 등 다른 자료형을 함께 포함할 수 있습니다.

57장 R 프로그래밍 시험 함정 4#

NaN과 NULL은 모두 NA와 같은 결측값이다.

제공된 학습자료 기준으로 틀립니다.

  • NA → 결측값
  • NaN → 수학적으로 정의되지 않은 값
  • NULL → 빈 객체

로 구분합니다.

58장 R 프로그래밍 시험 함정 5#

mean(x)는 NA를 자동으로 무시한다.

틀립니다.

제공된 학습자료에서는 NA가 포함되어 있으면 NA가 반환됩니다.

NA를 제외하려면:

mean(x, na.rm=TRUE)

를 사용합니다.

59장 R 프로그래밍 시험 함정 6#

library()는 패키지를 설치한다.

틀립니다.

library()는 패키지를 로드합니다.

설치는:

install.packages()

입니다.

60장 회귀분석 시험 함정 1#

Estimate는 p-value다.

틀립니다.

Estimate는 회귀계수 추정값입니다.

p-value는:

Pr(>|t|)

에서 확인합니다.

61장 회귀분석 시험 함정 2#

Multiple R-squared는 개별 변수의 유의확률이다.

틀립니다.

결정계수 R²입니다.

즉 모델의 설명력과 관련됩니다.

62장 회귀분석 시험 함정 3#

수정 R²는 변수를 추가하면 항상 증가한다.

틀립니다.

무의미한 변수를 추가하면 감소할 수 있습니다.

63장 회귀분석 시험 함정 4#

F-statistic의 p-value는 x1 변수 하나의 유의성을 나타낸다.

틀립니다.

전체 회귀모델의 유의성과 관련됩니다.

개별 변수는 Coefficients의 p-value를 확인합니다.

64장 데이터 구조 시험 직전 암기#

Vector#

1차원

같은 자료형

Matrix#

2차원

같은 자료형

Data Frame#

2차원

다른 자료형 가능

List#

1차원

다른 자료형 가능

한 줄로:

벡터·리스트는 1차원, 행렬·데이터프레임은 2차원

그리고:

벡터·행렬은 같은 자료형

이라고 기억하면 됩니다.

65장 결측값 시험 직전 암기#

NA

→ Missing Value

→ 결측값

NaN

→ Not a Number

→ 수학적으로 정의되지 않음

NULL

→ 빈 객체

그리고:

is.na(x)

→ NA 확인

sum(is.na(x))

→ NA 개수

mean(x, na.rm=TRUE)

→ NA 제외 평균

입니다.

66장 패키지 명령 시험 직전 암기#

설치:

install.packages("패키지명")

로드:

library(패키지명)

따라서:

install = 설치

library = 불러오기

입니다.

67장 lm() summary 시험 직전 암기#

Estimate#

회귀계수

Std. Error#

표준오차

t value#

Estimate / Std. Error

Pr(>|t|)#

개별 변수 p-value

Multiple R-squared#

R²

Adjusted R-squared#

변수 수를 보정한 R²

F-statistic p-value#

전체 모델 유의성

입니다.

68장 R summary 핵심 비교표#

출력 항목 의미 시험 해석
Estimate 회귀계수 회귀식 작성
Std. Error 표준오차 작을수록 정밀한 추정
t value t 통계량 Estimate / Std. Error
Pr(>|t|) 개별 변수 p-value 0.05 미만이면 유의
Multiple R-squared 결정계수 R² 모델 설명력
Adjusted R-squared 수정 R² 변수 수 보정
F-statistic p-value 전체 모델 검정 0.05 미만이면 모델 유의

R 프로그래밍 기초 FAQ#

R의 Vector는 어떤 구조인가#

1차원이며 제공된 학습자료 기준 모든 원소가 같은 자료형을 사용합니다.

Matrix는 어떤 구조인가#

2차원이며 같은 자료형의 원소를 사용합니다.

Data Frame의 특징은 무엇인가#

2차원 구조이며 서로 다른 자료형의 열을 함께 포함할 수 있습니다.

List의 특징은 무엇인가#

1차원 구조이며 서로 다른 자료형을 포함할 수 있습니다.

NA란 무엇인가#

결측값 Missing Value입니다.

NaN이란 무엇인가#

Not a Number로 수학적으로 정의되지 않은 값을 의미합니다.

NULL이란 무엇인가#

비어 있는 객체입니다.

NA가 포함된 데이터에서 평균을 계산하려면 어떻게 하는가#

mean(x, na.rm=TRUE)

처럼 na.rm=TRUE를 사용합니다.

NA 개수는 어떻게 계산하는가#

sum(is.na(x))

를 사용할 수 있습니다.

패키지를 설치하는 함수는 무엇인가#

install.packages()입니다.

패키지를 불러오는 함수는 무엇인가#

library()입니다.

lm()은 무엇인가#

선형회귀모형을 생성하는 함수입니다.

summary(lm())의 Estimate는 무엇인가#

회귀계수의 추정값입니다.

Pr(>|t|)는 무엇인가#

개별 회귀계수에 대한 p-value입니다.

Multiple R-squared는 무엇인가#

회귀모형의 결정계수 R²입니다.

Adjusted R-squared는 무엇인가#

독립변수의 개수를 고려하여 보정한 수정 결정계수입니다.

수정 R²는 변수를 추가하면 항상 증가하는가#

아닙니다. 제공된 학습자료에서는 무의미한 변수를 추가하면 감소할 수 있다고 설명합니다.

F-statistic의 p-value는 무엇을 평가하는가#

회귀모델 전체의 유의성을 평가합니다.

회귀식은 summary 결과에서 어떻게 만드는가#

Estimate의 Intercept와 각 독립변수 계수를 이용합니다.

예제에서는:

y = 5.2345 + 2.3456x1 - 0.8765x2

입니다.

자기 점검#

다음 질문에 바로 답할 수 있는지 확인해봅니다.

  1. Vector와 Matrix의 차원을 구분할 수 있는가?
  2. Vector와 Matrix가 같은 자료형을 사용한다는 것을 알고 있는가?
  3. Data Frame이 다른 자료형을 포함할 수 있다는 것을 알고 있는가?
  4. List의 특징을 설명할 수 있는가?
  5. NA·NaN·NULL을 구분할 수 있는가?
  6. is.na()의 역할을 알고 있는가?
  7. sum(is.na(x))가 무엇을 계산하는지 알고 있는가?
  8. na.rm=TRUE의 역할을 알고 있는가?
  9. na.omit()의 역할을 알고 있는가?
  10. complete.cases()의 의미를 알고 있는가?
  11. install.packages()와 library()를 구분할 수 있는가?
  12. lm(y ~ x1 + x2)의 의미를 읽을 수 있는가?
  13. Estimate를 이용해 회귀식을 만들 수 있는가?
  14. Pr(>|t|)가 개별 변수의 p-value라는 것을 알고 있는가?
  15. R²가 어디에 표시되는지 알고 있는가?
  16. Adjusted R²의 역할을 설명할 수 있는가?
  17. 무의미한 변수 추가 시 수정 R²가 감소할 수 있다는 것을 알고 있는가?
  18. F-statistic의 p-value가 전체 모델을 평가한다는 것을 알고 있는가?
  19. ***, **, *의 유의성 의미를 이해하고 있는가?
  20. 예제 결과에서 x1과 x2가 유의한지 판단할 수 있는가?

이 글을 마치며#

R 프로그래밍 기초에서 먼저 기억해야 하는 것은 데이터 구조의 차이입니다.

Vector = 1차원 + 같은 자료형

Matrix = 2차원 + 같은 자료형

Data Frame = 2차원 + 다른 자료형 가능

List = 1차원 + 다른 자료형 가능

결측값에서는:

NA = 결측값

NaN = 수학적으로 정의되지 않은 값

NULL = 빈 객체

로 구분합니다.

NA를 제외하고 평균을 계산할 때는:

mean(x, na.rm=TRUE)

를 사용합니다.

패키지는:

install.packages() = 설치

library() = 로드

로 구분합니다.

마지막으로 summary(lm()) 출력에서는 다음 연결이 가장 중요합니다.

Estimate = 회귀계수

Pr(>|t|) = 개별 변수 유의성

Multiple R-squared = R²

Adjusted R-squared = 변수 수를 보정한 R²

F-statistic p-value = 전체 모델 유의성

시험 직전에는 다음 다섯 줄로 압축해서 기억하면 됩니다.

Vector·Matrix = 같은 자료형 / Data Frame·List = 다른 자료형 가능

NA=결측 / NaN=계산 불가 / NULL=빈 객체

NA 제외 계산 = na.rm=TRUE

install.packages()=설치 / library()=로드

summary(lm()) = Estimate·p-value·R²·수정 R²·F-test를 읽는다

이 페이지의 목차