통계학입문 02 Ch

June 11, 2018 | Author: Gunhee Han | Category: Documents


Comments



Description

Chapter

1~3

2017년 봄학기 통계학입문

이명숙 교수님 T.A. 배우정 T.A. 손성택

0.1 R의 특징 R은 대소문자를 구분하기 때문에 구별하여 사용해야 합니다. Ex) A ≠  R에서 텍스트를 입력할 때에는 큰따옴표를 사용해야 합니다. Ex) “학교” 명령어를 실행시킬 때에는 F5 키를 사용합니다. \을 R에 입력하면 역슬래쉬로 변환되어 나타납니다.

* help 사용법 어떤 작업을 수행하고 싶은데 이를 잘 모르겠으면 help를 사용합니다. help 사용방법은 두 가지가 있습니다. ① ?의 사용 Ex) mean 함수를 사용 방법을 알고 싶으면 다음과 같이 입력하면 됩니다. ?mean ② Help메뉴의 활용 → R의 메뉴 중에서 Help를 선택하고 여기서 Html Help를 사용합니다. 여기에 들어가서 Reference 중 Search Engine & Keywords를 택합니다. 도움을 얻고자 하는 내용을 입력하면 됩니다. Ex) 분산분석에 대한 명령들을 알아보고 싶은 경우 다음과 같이 입력합니다. variance

? 행렬과 벡터 의미 행렬과 벡터는 다음과 같습니다. ☞ 왼쪽의 형태를 행렬이라고 합니다.   ⋯   ⋯   ⋯ ⋯,           , , , ⋯ , ⋮ ⋮ ⋮ ⋮         ☞ 왼쪽부터 순서대로 1열, 2열, 3열,…, n열이라고 합니다. 이러한 행렬의 열을 열벡터라고도 합니다. (벡터는 숫자가 나열되어 있는 형태를 말합니다.)

 ,  ,  , ⋯ 

☞ 위쪽부터 순서대로 1행, 2행, 3행,…, n행이라고 합니다. 이러한 행렬의 행을 행벡터라고도 합니다. (벡터는 숫자가 나열되어 있는 형태를 말합니다.)

0.2 데이터 불러오기 read.table(file,header=FALSE,sep=“”,col.names=c(),na.strings=“”) read.csv(file,header=FALSE,col.names=c(),na.strings=“”) ◦ file : 데이터 파일 이름 ◦ header: 데이터 첫 행에 열 변수명이 있다면 T, 없다면 F. 디폴트는 F. ◦ sep : 구분자를 표시

Ex) 데이터가 콤마로 구분되어 있다면 “,”, 탭으로 구분되어 있다면 “\t" ◦ col.names : 데이터의 변수항이 없을 때 이 옵션으로 지정 ◦ na.strings : 데이터 내의 결측값이 있을 때 사용

Ex) 결측값을 NN으로 표기했다면 na.strings=“NN”(불러올 때 NA로 변환됩니다.)

? 디폴트 의미 디폴트 : 원래 지정되어 있는 값 ☞ 즉, 임의로 어떤 값을 주지 않을 경우 프로그램에서 자동으로 인식하는 함수라는 의미입니다. 아 래의 예로 설명을 하겠습니다.

header: 데이터 첫 행에 열 변수명이 있다면 T, 없다면 F. 디폴트는 F.

즉, 데이터를 불러올 때 header 함수를 쓰지 않을 경우 R은 header=F가 쓰인 것으로 간주한다는 의미 입니다. 따라서 header함수를 사용하지 않아도 header=F 함수를 입력한 것과 같은 결과를 얻을 수 있 습니다.

0.2 데이터 불러오기 Ex)

0.2 데이터 불러오기 Ex)

0.2 데이터 불러오기 read.xlsx(file,header=T,sheetIndex=n,encoding=“UTF-8”) ◦ sheetIndex : 엑셀의 n번째 sheet를 사용. 반드시 Index의 I 부분은 대문자로 써야합니다. 그렇지 않 을 경우 다음과 같은 에러 문구가 뜹니다.

◦ encoding=“UTF-8” : 이 명령어는 사용하고자 하는 엑셀 파일 data 중에 문자가 있을 경우 사용합니 다. 파일이 전부 숫자로 이루어져 있다면 사용하지 않아도 됩니다.

0.2 데이터 불러오기 엑셀 파일에 문자로 된 데이터가 있음에도 불구하고 encoding=“UTF-8”을 기재하지 않은 경 우 다음과 같은 문제가 발생합니다.

0.2 데이터 불러오기 read.xlsx 쓸 때 주의할 점 ① xlsx 패키지가 설치되어 있어야 사용할 수 있습니다. 만약 설치되어 있지 않다면 다음과 같이 설치할 수 있습니다.

② 엑셀의 특성상 여러 개의 sheet를 가지고 있을 수 있기 때문에 반드시 몇 번째 sheet인지를 기 재해야 합니다. 그렇지 않을 경우 다음과 같은 에러 문구가 뜹니다.

0.2 데이터 불러오기 Ex)

0.2 데이터 불러오기 read.table은 dat파일 또는 txt파일을 불러올 때 사용하는 함수입니다. read.csv는 csv파일을 불러올 때 사용하는 함수입니다. read.xlsx는 엑셀 파일을 불러올 때 사용하는 함수입니다.

☞ 불러올 파일의 파일 확장자명에 따라 사용하는 함수가 달라짐을 유의하시기 바랍니다.

0.2 데이터 불러오기 실습1) census 파일을 불러보세요. (txt, csv, xlsx 형태 모두 해보세요.)

0.3 데이터 저장하기 write : R에 저장된 행렬을 디스크에 저장하는 함수 Ex)

0.3 데이터 저장하기 Ex)

실습2) census 파일을 다른 이름으로 저장해보세요. (txt, csv, xlsx 형태 모두 해보세요.)

0.3 데이터 저장하기 write.table은 dat파일 또는 txt파일로 저장할 때 사용하는 함수입니다. write.csv는 csv파일로 저장할 때 사용하는 함수입니다. write.xlsx는 엑셀 파일로 저장할 때 사용하는 함수입니다.

☞ 저장할 파일의 파일 확장자명에 따라 사용하는 함수가 달라짐을 유의하시기 바랍니다.

0.4 R의 데이터 구조 R에서 쓰이는 데이터 구조에는 여러가지가 있습니다.이 수업에서는 그 중에서 가장 많이 쓰이는 벡터와 행렬에 관련해서 다루겠습니다. ① 벡터 : 데이터들의 나열. 데이터들이 1차원적으로 나열되어 있는 형태의 데이터 구조입니다. ② 행렬 : 행과 열로 구성된 2차원 형태의 데이터 구조입니다.

1.1 벡터와 관련된 명령어(c, seq, rep) 벡터를 만들어주는 기본 명령은 c와 seq 2가지가 있습니다. ① c : 필요한 숫자를 콤마로 구분하여 넣어주는 형식. c 함수 안에 c를 다시 입력할 수 있습니다.

* [1]은 벡터의 첫 번째 요소부터 화면에 찍었다는 것을 의미

1.1 벡터와 관련된 명령어(c, seq, rep) ② seq : sequence를 만들어주는 함수

* 범위 이내의 값들을 동일한 간격으로 나누어 추출하고 싶을 때는 by Ex) -5부터 5까지 0.5씩 간격을 두어 sequence를 만들고자 한다.

* [17]은 이 줄의 처음 수 3.0이 17번째라는 것을 의미

함수를 사용합니다.

1.1 벡터와 관련된 명령어(c, seq, rep) rep : 어떤 숫자를 여러 번 반복해서 나타나게 해주는 함수

* rep(숫자, 반복 횟수)

rep 함수 안에 c와 seq 함수를 입력할 수 있습니다.

1.1 벡터와 관련된 명령어(c, seq, rep) 두 배열을 하나로 만드는 것은 다음과 같이 합니다. Ex)

1.2 문자 다루기 문자는 기본적으로 큰 따옴표 “ “를 사용합니다. Ex)

* 큰 따옴표 “ “를 사용하지 않은 경우 다음과 같은 에러 메시지가 발생합니다.

1.2 문자 다루기 두 개의 문자배열을 합하여 하나로 만드는 것은 다음과 같이 합니다. Ex)

1.3 배열과 행렬 1차원 배열에서 i번째 원소를 찾거나 선택하는 작업은 [i]를 사용합니다. Ex)

* i번째에서 j번째까지의 원소를 찾거나 선택하는 작업은 [i:j]를 사용합니다. Ex)

1.3 배열과 행렬 matrix : 행렬을 만들기 위해 사용하는 함수 matrix(자료 범위,nrow=i,byrow=T) matrix(자료범위,ncol=j,byrow=F) byrow : 행렬을 만들 때 가로로 배열을(숫자가 왼쪽에서 오른쪽 순서대로 입력됨) 원하면 T를 세 로로 배열을 (숫자가 위쪽에서 아래쪽 순서대로 입력됨) 원하면 F를 사용. byrow 함수를 사용하 지 않으면 디폴트로 F가 설정됨. Ex)

1.3 배열과 행렬 임의의 숫자들로 행렬을 만들고 싶은 경우 다음과 같이 합니다.

1.3 배열과 행렬 실습3) 다음의 행렬을 만들어보세요. 7 3 2

2 −2 −5

3 2 6

1.3 배열과 행렬 행렬에 새로운 행이나 열을 추가할 때는 다음과 같이 합니다. Ex)

* rbind : 새로운 행 추가 * cbind : 새로운 열 추가

1.3 배열과 행렬 실습4) 위의 행렬을 이용해 다음의 행렬을 만들어보세요. 7 3 2

2 −2 −5

3 1 2 5 6 4

1.3 배열과 행렬 i번째 행, j번째 열의 요소를 찾아내는 방법은 다음과 같습니다. [i,j] [i,] [,j] Ex)

→ i번째 행, j번째 열 요소 → i번째 행 요소 → j번째 열 요소

1.3 배열과 행렬 t(x) : x의 전치행렬 Ex)

※ 전치행렬이란? 행렬의 행과 열이 바뀐 행렬을 의미합니다. Ex)

1 3 1 5 의 전치행렬은 5 8 3 8

실습5) 실습4에서 만든 행렬의 전치행렬을 구해보세요.

1.4 기본 연산 기본 연산자

Ex)

+ : 덧셈 - : 뺄셈 * : 곱셈 / : 나눗셈 ^:승

* 길이가 다른 벡터의 합을 할 경우 길이가 다르다는 에러 문구가 표시됩니다. 그렇지만 계산 작업은 실행됩니다. 위의 예를 보면 v의 마지막 값 12는 x의 마지막 값 3과 y의 첫번째 값 5의 계산 결과임을 알 수 있습니다. 이처럼 벡터의 합을 구할 때 길이가 다르면, 더 이상 계산할 대상이 없을 때 다시 앞으로 돌아가는 현상을 보입니다. * 연산 순위는 일반적인 연산순위에 따릅니다.

1.4 기본 연산 +라는 덧셈 연산자는 sum이라는 함수로 대체 가능합니다. Ex)

☞ 1부터 6까지 더하라는 의미입니다. m부터 n까지 더하고 싶을 때 sum(m:n) 함수를 사용하면 x처럼 모든 숫자를 나열하지 않고도 계산을 할 수 있습니다. 많은 숫자를 더할 때에는 sum 함수가 편리하므로 숙지하는 것이 좋습니다.

1.4 기본 연산 함수를 이용한 연산자 Ex) log exp sin cos sqrt : 제곱근

1.4 기본 연산 %*% : 행렬의 곱셈을 위한 함수 Ex)

실습6) 실습4에서 만든 행렬과 실습5에서 만든 행렬의 곱을 계산하세요.

1.5 조건과 함수의 작성 Ex) 밑변과 윗변이 각각 3, 5이고 높이가 6인 사다리꼴의 넓이를 계산하라.

실습7) 밑변이 3이고 높이가 7인 삼각형의 넓이를 계산해보세요.

1.6 반복문 for : 함수 안의 내용만큼 반복하는 함수 Ex) 1부터 100까지의 합을 구하라.

for 함수 다음에 나타나는 문장을 for 함수 안의 내용만큼 반복. * i in 1:100 = i에 1부터 100까지 대입하는 작업을 반복해서 수행.

1.6 반복문 Ex)

실습8) 250까지 짝수의 합을 계산해보세요.

1.7 데이터의 입력 및 출력 scan : 간단한 데이터의 입력을 위해서 사용되는 함수 Ex) ☞ scan 함수를 사용할 경우 값을 직접 입력할 수 있습니다.

1.7 데이터의 입력 및 출력 scan 함수에는 큰 따옴표 “ “ 없이 문자를 입력할 수 있습니다. 하지만 문자열 내에 공백이 있을 경우에는 큰 따옴표 “ “를 사용해야 합니다. Ex)

* 문자이기 때문에 what=character(0) 또는 what=“”을 scan 함수 안에 입력해야 합니다. 그렇 지 않으면 다음과 같은 에러 문구가 뜹니다.

1.7 데이터의 입력 및 출력 실습9) 다음을 scan 함수를 사용하여 표현해보세요. 1 25 36 79 85 2 1 0

실습10) 다음을 scan 함수를 사용하여 표현해보세요. red green deep blue black

1.7 데이터의 입력 및 출력 디스크에 저장된 데이터를 불러올 경우에도 scan 함수를 사용할 수 있습니다. (열 변수명이 없는 dat파일 또는 txt파일을 부를 때 종종 사용됩니다. 하지만 대체로 read 함수를 사용합니다.

Ex) thw.dat 파일을 scan 함수를 이용하여 불러라.

실습11) yon.txt 데이터를 scan 함수를 이용하여 불러보세요.

1.7 데이터의 입력 및 출력 Ex) thw.dat 파일을 scan 함수를 이용하여 행렬로 불러라.

실습12) yon.txt 데이터를 scan 함수를 이용하여 행렬로 불러보세요.(열의 수는 4, 가로로 배열)

1.7 데이터의 입력 및 출력 행렬의 저장은 앞에서 데이터를 저장한 것과 같이 write 함수로 할 수 있습니다. Ex)

* 메모장을 이용하여 x.dat 파일을 열어보면 x의 결과가 행과 열이 바뀌어 저장되었음을 확 인할 수 있습니다.

1.7 데이터의 입력 및 출력 write 함수를 사용했을 때 행렬의 행과 열이 바뀌어 저장되는 것을 해결하기 위해 전치 행렬을 사용합니 다. Ex)

메모장을 이용하여 x2.dat 파일을 열어보면 x의 결과가 그대로 저장되었음을 확인할 수 있습니다.

1.8 data frame과 데이터 파일 data frame : 서로 다른 종류의 데이터를 행렬에 담기 위한 함수 두개의 데이터를 합치는 것과 같은 결과 Ex) ☞ a의 벡터를 하나의 열벡터로, b의 벡터를 하나의 열벡터로 간주하여 새로운 행렬을 만들어내는 것을 확인할 수 있습니다. data.frame 함수를 통해 a 벡터의 이름을 x로, b 벡터의 이름을 y로 지정했습니다.

* x와 y는 변수명의 의미

1.8 data frame과 데이터 파일 Ex)

☞ data$x : 새로 만들어진 행렬에서 x로 주어진 벡터를 추출 data$y : 새로 만들어진 행렬에서 y로 주어진 벡터를 추출

☞ data[1,] : 새로 만들어진 행렬에서 1행을 추출 data[,1] : 새로 만들어진 행렬에서 1열을 추출

1.8 data frame과 데이터 파일 Ex)

* dim : data의 차원을 알려주는 함수

1.8 data frame과 데이터 파일 brain.txt 파일에서 남자만 골라 이를 male이라는 data frame에 저장하고 싶다면 다음과 같이 합니 다.

실습13) brain.txt 파일에서 weight가 150 미만인 사람만 골라 light라는 data frame에 저장하여라.

1.9 요인, 순서화된 요인 및 범주 factor : R에서 범주형 자료의 생성을 위해 사용되는 함수 Ex)

levels : data가 갖는 범주형 변수를 불러오는 함수 Ex)

1.9 요인, 순서화된 요인 및 범주 length : 벡터의 길이를 알려주는 함수 Ex)

1.9 요인, 순서화된 요인 및 범주 ordered : 수치로서는 의미가 없으나 순서화된 요인을 갖는 변수를 볼 때 사용하는 함수 Ex)

* 값이 나타난 순서에 따라 순위를 갖게 되는 문제가 있습니다. 이를 해결하기 위해 levels 함 수를 사용합니다.

1.10 기술통계 summary : data frame으로 만든 data를 사용하여 기술통계를 작성하는 함수 Ex)

1.10 기술통계 table : 변수에 대한 빈도표를 만드는 함수 Ex) brain.txt의 첫 번째 변수(sex)에 대한 빈도를 구하라.

실습14) SocietyClub.txt 데이터의 club 변수에 대한 빈도를 구해보세요.

1.10 기술통계 attach : data 이름$변수명을 변수명만 쓸 수 있도록 만들어주는 함수 Ex)

☞ attach 함수를 사용하지 않은 상태에서 FSIQ하는 변수명만 입력할 경우 외쪽과 같은 에러 문구가 뜹니다. 즉, attach 함수를 사용하지 않은 경우에는 반드시 data명$변수명 으로 입력을 해야 데이터를 읽을 수 있습니다.

(변수명만으로 데이터를 읽기 위해서는 반드시 사전에 attach(data명)을 입력해주어야 합니다.

1.10 기술통계 mean : 평균을 구하는 함수 sd : 표준편차를 구하는 함수 var : 분산을 구하는 함수 Ex) brain.txt 파일에서 FSIQ의 평균, 표준편차, 분산을 구하라.

1.10 기술통계 실습15) weight.txt 데이터의 평균, 표준편차, 분산을 계산해보세요.

1.10 기술통계 barplot : 막대그래프를 그리는 함수 Ex)

실습16) SocietyClub의 club 변수에 대한 막대그래프를 그려보세요.

1.10 기술통계 hist : 히스토그램을 그리는 함수 Ex)

* xlab : x축의 이름을 지정하는 함수

1.10 기술통계 변수명이 없을 경우 각 열의 변수명은 디폴트로 Vn이 됩니다. (n은 n번째 열임을 의미합니다.) Ex)

1.10 기술통계 데이터에 변수명이 없는 경우에 디폴트 변수명인 Vn을 기재하지 않는 경우 다음과 같은 에 러 문구가 뜹니다.

실습17) sd.txt 데이터의 첫 번째 열과 두 번째 열에 대한 각각의 히스토그램을 그려 보세요.(x축의 이름은 둘 다 x로 지정하세요.)

1.10 기술통계 breaks : 등간격이 아닌 히스토그램을 그릴 수 있도록 해주는 함수 Ex)

1.10 기술통계 boxplot : 상자그림을 그리는 함수 Ex)

* data[,c(-1,-7)] : 1번째와 7번째 변수를 제외한 나머지 변수를 의미

1.10 기술통계 stem : 줄기잎 그림을 그려주는 함수 Ex)

1.10 기술통계 stem 함수 역시 hist 함수와 같이 변수명이 없는 경우 디폴트로 Vn이 지정됩니다. Ex)

1.10 기술통계 데이터에 변수명이 없는 경우에 디폴트 변수명인 Vn을 기재하지 않는 경우 다음과 같은 에 러 문구가 뜹니다.

실습18) ghj.dat 데이터를 줄기잎 그림으로 그려보세요.

1.10 기술통계 stripchart : 점도표를 그리는 함수 Ex)

Copyright © 2024 DOKUMEN.SITE Inc.