[4 Week] Str & Simulation & R Profiler



str: Compactly display the internal structure of an R object


A diagnostic function and an alternative to 'summary'

It is especially well suited to compactly display the (abbreviated) contents of (possibly nested) lists.

Roughly one line per basic object




Simulation - Generating Random Numbers


Functions for probability distributions in R


rnorm: generate random Normal variates with a given mean and standard deviation

dnorm: evaluate the Normal probability density (with a given mean/SD) at a point (or vector of

points)

pnorm: evaluate the cumulative distribution function for a Normal distribution

rpois: generate random Poisson variates with a given rate



Probability distribution functions usually have four functions associated with them. The functions are

prefixed with a

  • d for density
  • r for random number generation
  • p for cumulative distribution
  • q for quantile function
  • n the number of random variable
  • lambda: vector of (non-negative) means.


dnorm(x, mean = 0, sd = 1, log = FALSE) pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) # cumulative distribution function qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) # p^-1 이다. rnorm(n, mean = 0, sd = 1) dpois(x, lambda, log = FALSE) ppois(q, lambda, lower.tail = TRUE, log.p = FALSE) qpois(p, lambda, lower.tail = TRUE, log.p = FALSE) rpois(n, lambda) # lambda는 평균이다. 대충 평균 저정도 값이 나오는 포아송 분포를 생성해 준다.




seed 설정을 통해서 같은 값을 생성 할 수 있다.




<generating Poisson data>


the Poisson distribution, the mean is going to be equal to the rate (rpois에서의 두번째 인자값이 rate이다).

아래것을 계산해보면 1짜리는 0.8이고 2짜리는 2.2 이다. 정확히 rate과 일치하는것은 아니지만, 최대한 비슷한 분포를 만들어 주려고 한다.


So you can see that roughly in each of these three cases, the mean is roughly equal to the rate that I specified (1,2,20).






Simulation - Simulating a Linear Model



Suppose we want to simulate from the following linear model

$$y=\beta _{ 0 }+\beta _{ 1 }+\epsilon $$


where $\epsilon$ ~ $N(0,2^2)$. Assume $x$ ~ $N(0,1^2)$, $\beta_0=0.5$ and $\beta_1 = 2$




x를 만약 binary로 설정 한다면




Suppose we want to simulate from a Poisson model where 

$$ Y  = Poisson(\mu) $$

$$ \log (\mu) = \beta_0+\beta_{1}x$$

and $\beta_0 = 0.5$ and $\beta_1 = 0.3$. We need to use the rpois function for this








Simulation - Random Sampling



The sample function draws randomly from a specified set of (scalar) objects allowing you to sample from arbitrary distributions


Usage

sample(x, size, replace = FALSE, prob = NULL)

sample.int(n, size = n, replace = FALSE, prob = NULL)


Arguments

x

Either a vector of one or more elements from which to choose, or a positive integer. See ‘Details.’

n

a positive number, the number of items to choose from. See ‘Details.’

size

a non-negative integer giving the number of items to choose.

replace

Should sampling be with replacement?

prob

A vector of probability weights for obtaining the elements of the vector being sampled.





요약

확류분포를 r* 종류의 함수로 나타낼 수 있다.

Normal, Poisson, Binomial, Exponential, Gamma, etc를 표준 분포로서 생성 할 수 있다.

Sample 함수는 arbitrary vector를 생성하는 수단으로 사용 할 수 있다.

seed를 통해서 같은 number를 재생성 할 수 있다.




R Pro filer








Assignment 03


병원에서 환자의 케어를 제대로 했는지 안했는지에 대한 데이터 셋이다. 총 4000개의 U.S. 병원의 정보가 담겨져 있다.


세개의 파일은 다음과 같다.

outcome-of-care-measures.csv: 30 day mortality and readmission rates for heart attacks, heart failure, and pneumonia for over 4,000 hospitals.

hospital-data.csv: 각각의 병원에 대한 정보를 담고 있다.

Hospital Revised Flatfiles.pdf: 각각의 파일에 대한 설명.




1) Plot the 30-day mortality rates for heart attack

outcome-of-care-measures.csv를 보면 많은 column들이 존재 한다.

얼마나 많은 column들이 존재하는지는 ncol을 통해서 알 수 있다.

얼마나 많은 row들이 있는지는 nrow를 통해서 알 수 있다.

각각의 column들의 이름을 알기 위해서는 names(outcome)을 실행 한다.





2) Finding the best hospital in a state

함수 이름은 best

두개의 arguments를 받음: 미국 주의 약어와 outcome name

리턴값은 가장 30일 시한부 인생이 적은것을 설정한 주에서 찾아낸다. 그 해당 병원의 이름이 있는 문자열 백터를 반환 한다.


best <- function(state, outcome) {

## Read outcome data

## Check that state and outcome are valid

## Return hospital name in that state with lowest 30-day death

## rate

}


먼저 입력된 주가 올바른지 부터 확인 한다.




3) Ranking hospitals by outcome in a state


rankospital은 세개의 아규먼트를 가져 온다. 

첫번째: 주 이름

두번째: outcome

세번째: ranking of a hosptial in that state for that outcome (num).


예)

> rankhospital("MD", "heart failure", 5)

heart failure에 의해서 30일 사망이 5번째로 작은 병원의 이름을 포함하는 백터를 반환 한다.

Note that: 마지막 세번째 숫자 인자는 "best"와 "worst"값을 가져올 수 있다.

만약 마지막 숫자가 포함한 병원의 수보다 큰 값이면 "NA"를 반환 한다.





4) Ranking hospitals in all states

rankall이란 함수를 만든다. 인자는 두개이다.

아웃컴과 병원 랭킹







'MOOC > R Programming' 카테고리의 다른 글

Certificate & Comment  (0) 2015.08.26
[3 Week] Loop Functions & Debugging Tools  (1) 2015.07.24
[2 Week] Programming with R  (0) 2015.07.16
[1 Week] Getting stated and R Nuts and Bolts  (0) 2015.07.08

+ Recent posts