R 프로그래밍 기초란? 벡터·행렬·데이터프레임·결측값 처리와 lm() summary 해석 쉽게 이해하기
1장 R 프로그래밍은 무엇을 먼저 알아야 할까#
ADsP에서 R 문제는 복잡한 프로그램을 직접 개발하는 능력보다 코드를 읽고 결과를 해석하는 능력이 중요합니다.
특히 자주 등장하는 내용은 다음과 같습니다.
- Vector
- Matrix
- Data Frame
- List
- NA·NaN·NULL
is.na()na.rm=TRUEinstall.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
입니다.
자기 점검#
다음 질문에 바로 답할 수 있는지 확인해봅니다.
- Vector와 Matrix의 차원을 구분할 수 있는가?
- Vector와 Matrix가 같은 자료형을 사용한다는 것을 알고 있는가?
- Data Frame이 다른 자료형을 포함할 수 있다는 것을 알고 있는가?
- List의 특징을 설명할 수 있는가?
- NA·NaN·NULL을 구분할 수 있는가?
is.na()의 역할을 알고 있는가?sum(is.na(x))가 무엇을 계산하는지 알고 있는가?na.rm=TRUE의 역할을 알고 있는가?na.omit()의 역할을 알고 있는가?complete.cases()의 의미를 알고 있는가?install.packages()와library()를 구분할 수 있는가?lm(y ~ x1 + x2)의 의미를 읽을 수 있는가?- Estimate를 이용해 회귀식을 만들 수 있는가?
- Pr(>|t|)가 개별 변수의 p-value라는 것을 알고 있는가?
- R²가 어디에 표시되는지 알고 있는가?
- Adjusted R²의 역할을 설명할 수 있는가?
- 무의미한 변수 추가 시 수정 R²가 감소할 수 있다는 것을 알고 있는가?
- F-statistic의 p-value가 전체 모델을 평가한다는 것을 알고 있는가?
***,**,*의 유의성 의미를 이해하고 있는가?- 예제 결과에서 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를 읽는다