獨斷論

통계 R 사용설명서 14 - 수학함수와 통계함수와 확률함수 본문

과학과 기술/R 통계

통계 R 사용설명서 14 - 수학함수와 통계함수와 확률함수

부르칸 2016. 5. 19. 04:27

자주 사용하는 함수들을 정리해보았다.


수학함수


그냥 한번씩 R console에 입력해보면 뭔지 알것이다.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

 > abs(-5.5)     #절대값
 [1] 5.5
 > sqrt(100)     # 요게 우리말로 뭐였더라.. 맨날 루트 루트 했는데
 [1] 10
 > ceiling(3.4)  # 3.4보다 작지 않은 가장 큰 정수
 [1] 4
 > floor(3.5)    # 3.5보다 크지 않은 가장 작은 정수
 [1] 3
 > trunc(1.9)    # 소수점 이하 버림
 [1] 1
 > round(3.141592, digit=3)  # 3째 자리로 반올림
 [1] 3.142
 > signif(3.141592, digit=3) # 3째 자리에서 반올림
 [1] 3.14
 > cos(pi)   # 코사인 사인 탄젠트 아크코사인 등은 설명생략
 [1] -1
 > sin(pi/2)
 [1] 1
 > tan(pi/4)
 [1] 1
 > acos(-1)
 [1] 3.141593
 > asin(1)
 [1] 1.570796
 > atan(1)
 [1] 0.7853982
 > cosh(1)   # 코사인 하이퍼블릭도 생략
 [1] 1.543081
 > sinh(1)
 [1] 1.175201
 > tanh(0.5)
 [1] 0.4621172
 > log(100, base=10)   # 밑이 10인 100의 로그
 [1] 2
 > log(2.71)   # 밑이 자연대수 e인 2.71의 로그
 [1] 0.9969486
 > log10(100)  # 밑이 10인 100의 로그
 [1] 2
 > exp(1)   # 자연대수 e의 1제곱
 [1] 2.718282



통계함수


평균 중간값 표준편차 분산 합 최소 최대값 등등

별 설명도 필요 없음.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

 > x <- 1:10
 > x
  [1]  1  2  3  4  5  6  7  8  9 10
 > mean(x)
 [1] 5.5
 > median(x)
 [1] 5.5
 > sd(x)
 [1] 3.02765
 > var(x)
 [1] 9.166667
 > sum(x)
 [1] 55
 > min(x)
 [1] 1
 > max(x)
 [1] 10



확률함수


확률함수는 앞에 d, p, q, r 등의 약자를 쓰고 뒤에 분포 이름이 붙는다.

  • d는 density
  • p는 distribution function (cummulative)
  • q는 quantile function
  • r은 random generation

들을 뜻한다.

즉, uniform distribution(unif)을 갖는 random generation(r)은 runif( )라고 한다.


dqpr을 제외한 distribution function의 이름들은 아래와 같다.


 Distribution

 distribution function

 Distribution

 distribution function

 Beta

 beta

 Logistic

 logis

 Binomial

 binom

 Multinomial

 multinom

 Cauchy

 cauchy

 Negative binomial

 nbinom

 Chi-squared

 chisq

 Normal

 norm

 Exponential

 exp

 Poisson

 pois

 F

 f

 Wilcoxon Signed Rank

 signrank

 Gamma

 gamma

 T

 t

 Geometric

 geom

 Uniform

 unif

 Hypergeometric

 hyper

 Weibull

 weibull

 Lognormal

 lnorm

 Wilcoxon Rank Sum

 wilcox


예를 들어 표준정규분포곡선을 그리고자한다면


1

2

3

 > x <- seq(-3.5, 3.5, 0.1)
 > y <- dnorm(x)
 > plot(x, y, type="l")


와 같이 하면된다.

그래프는 다음과 같이 그려진다.


또한 다변수정규분포(multivariate normal distribution)를 갖는 데이터를 만들려면 MASS 패키지에 있는 mvrnorm( )을 이용한다.

사용방법은 아래와 같다.

mvrnorm(샘플크기, 평균, 분산-공분산행렬)

이제 위 함수를 이용하여 다변수정규분포를 갖는 데이터를 만들어보자.

우선 평균과 분산공분산행렬은 아래와 같다고 가정한다.


평균

  99

  40

  3

 분산공분산행렬


  1266.2

  583

  -48

  583

  7896

  -25

  -48

  -25

  5


mvrnorm()을 이용하기 위해서는 MASS패키지를 맨먼저 불러와야한다. .


1

2

3

4

5

6

7

8

9

10

11

12

13

 > library(MASS)
 > set.seed(100)
 > mean_v <- c(99, 40, 3)
 > cov_v <- c(1266.2, 583, -48,
 +            583,    7896,  -25,
 +            -48,   -25,   5)
 > cov_M <- matrix(cov_v, nrow=3, byrow=TRUE)
 > cov_M
        [,1] [,2] [,3]
 [1,] 1266.2  583  -48
 [2,]  583.0 7896  -25
 [3,]  -48.0  -25    5
 > mydat <- mvrnorm(20, mean_v, cov_M)


생성된 데이터의 열에 변수명을 부여하려면 다음과 같이 하면 된다.


1

2

3

4

5

6

7

8

9

10

 > mydat <- data.frame(mydat)
 > names(mydat) <- c("y", "x1", "x2")
 > head(mydat)
           y        x1         x2
 1  87.67183  85.92861  3.2302232
 2 124.60989  26.00000  4.5383452
 3 108.58973  46.21184 -0.5332062
 4 119.02699 -41.10111  3.3832017
 5  69.77551  32.08448  3.1773070
 6  81.39207  13.03542  6.0338109


Comments