37
1 Introdução à Programação Linguagem R

Introdução à Programação Linguagem R

  • Upload
    adora

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Introdução à Programação Linguagem R. Introdução. O que escrevermos na linha de comando, depois de fazermos “Enter” assumiremos a partir de agora, que se faz sempre Enter no fim de escrever os comandos Vai ser processado pelo R. Introdução. Por exemplo, se escrever (2+7+5)/5 - PowerPoint PPT Presentation

Citation preview

1

Introdução à Programação Linguagem R

2

3

Introdução

• O que escrevermos na linha de comando, depois de fazermos “Enter” – assumiremos a partir de agora, que se faz

sempre Enter no fim de escrever os comandos

• Vai ser processado pelo R.

4

Introdução

• Por exemplo, se escrever

(2+7+5)/5

• aparece o resultado

[1] 2.8

• O número [1] não tem, para já, significado.

5

Objectos

6

Objectos

• Um objecto podem ser – Constantes,

– Vectores,

– etc.

7

Objectos

• Cada objecto tem um nome formado por letras, por números e pelo carácter ponto, “.”

• Não pode ter espaços.

• As letras maiúsculas são diferentes da minúsculas

8

Objectos

• Constantes. Eu posso criar a constante X executando

X <- 45 (que é diferente de x minúsculo).

• Para ver o conteúdo de um objecto, executo o seu nome. Se executar

X

• aparece

[1] 45

9

Objectos

• Se atribuir outra vez outro valor a X, o valor anterior será destruído e substituído.

• Também poderia fazer a atribuição usando = em vez de <-

X = 45

10

Objectos

• Expressões. Posso executar expressões algébricas e ver o resultado ou colocar o resultado numa constante.

• São parecidas com as formulas do Excel

• Números; +, –, /, *, ^

• Mas tem “nomes” em vez de referências

11

Objectos

• Se executar

i <- ((X*2 + 5^2)^2) / log(1.05)

• e depois

i

• aparece

[1] 271058.7

12

Exercício

• Ex.3.1. Emprestei 1000€ a uma taxa anual de 5%/ano. Quanto dinheiro receberei ao fim de 10 anos (capitalização composta)?

13

Exercício

Tx.de.jr.an<-0.05

Cap.inic<-1000

Prazo<-10

Cap.final<-Cap.inic*(1+Tx.de.jr.an)^Prazo

Cap.final

[1] 1628.895

14

Objectos

• Vectores. Um vector é uma “constante” multi-dimensional.

• Para dar a indicação de que vou criar um vector, usa o “comando” c(valor1, valor2).

• Os vectores têm um “modo” (se são números reais, complexos, valores lógicos, palavras, etc.) onde todas as dimensões do vector têm que ser do mesmo “modo”.

15

Objectos

• E.g., durante um empréstimo a 3 anos capitalizado, a taxa de juro dos anos foi 3.7%, 4.1% e 4.9%. Posso guardar essas taxas num vector executando

Juros<-c(0.037,0.041,0.049)

• Se quiser saber quantos elementos tem o vector executo

length(Juros)

16

Objectos

• Resumindo sabemos como definir

• Constantes

X = 45

• Expressões

i <- ((X*2 + 5^2)^2) / log(1.05)

• Vectores

Juros <- c(0.037,0.041,0.049)

17

Operações com vectores

• Eu posso usar os vectores na expressões algébricas

• O R vai calcular a expressão para cada um dos elementos e retorna como resultado outro vector.

• Não se trata de cálculo vectorial normal

18

Operações com vectores

• Por exemplo, as taxas de juro são

Juros<-c(0.037,0.041,0.049)

• E eu emprestei 5000€, recebendo os juros no fim de cada ano. Obtenho os juros recebidos nos 3 anos executando o comando … de que resulta

5000*Juros

[1] 185 205 245

19

Operações com vectores

• Nota. Uma constante é um vector de dimensão unitária.

20

Operações com vectores

• Se eu executar operações com dois vectores, as operações vão ser realizada entre os elementos de igual índice.

• Por exemplo, se eu executar … resultará

v1 <- c(4, 6, 87)

v2 <- c(34, 32.4, 12)

v1 + v2

[1] 38.0 38.4 99.0

21

Operações com vectores

• Se eu aplicar funções a vectores, a função é aplicada a cada elemento do vector.

• Por exemplo, se eu executar… resultará

v1 <- c(4, 6, 87)

v1^0.5

[1] 2.000000 2.449490 9.327379.

22

Exercício

• Ex.3.2. Um banco personaliza as taxas de juro dos depósitos dos seus clientes.

• i) Crie, para 10 clientes, um hipotético vector de taxas de juro, um vector de saldos e calcule os juros a pagar a cada cliente.

• ii) Capitalize esses saldos com a taxa de juro respectiva a 5 anos.

23

Exercício

Tx.juros<- c(4.5, 5.1, 4, 3.6, 3, 5, 4.6, 4.8, 3.6, 5)/100

Saldos<- c(10, 150, 45, 20, 100, 75, 15, 67, 9, 2)*1000

Juros <- Saldos*Tx.juros

• ii) Cap.final<- Saldos*(1 + Tx.juros)^5

24

Operações com vectores

• Reciclagem. Se realizar operações com dois vectores de tamanhos diferentes, o vector mais pequeno vai ser “reciclado” até ficar com o tamanho do maior.

25

Operações com vectores

• Por exemplo, se executar … resultará

v3 <- c(1, 2, 3, 4)

v4 <- c(10, 2)

v3 + v4

[1] 12 4 13 6

• É como se o vector v4 fosse

v4 <-(10, 2, 10, 2)

26

Operações com vectores

• Se, numa operação com vectores, usar uma constante, esta vai ser reciclada até ficar com o tamanho do vector.

• Capital.final<- Saldos*(1 + Tx.juros)^5

• Nota. Se os tamanhos não forem múltiplos um do outro, o R imprime um aviso.

27

Exercício

• Ex.3.3. Quero saber, em função do prazo, qual é o capital final de emprestar 1000€ a uma taxa anual de 4%.

• Experimente 1, 2, 5 e 10 anos.

28

Exercício

• R. Vou usar as potencialidades do R relativamente a “operações” com vectores.

Anos <- c(1, 2, 5, 10)

Tx.juro.anual<-0.04

Capital.final <- 1000*(1+Tx.juro.anual)^Anos

Capital.final

[1] 1040.000 1081.600 1216.653 1480.244

29

Operações com vectores

• Sequências. Quando os elementos do vector são uma série, podemos usar o operador “:” para criá-lo.

• Por exemplo, se executar … resulta

v5 <- 1:10

V5

[1] 1 2 3 4 5 6 7 8 9 10

30

Operações com vectores

• Devemos ter cuidado com a precedência do operador “:” pelo que se aconselha a usar parênteses:

• -(1:10) é diferente de -1:10

• Por exemplo, um vector de dimensão 10 com 5 em todos os elementos, posso fazer

v <- (1:5)*0 + 5

31

Exercício

• Ex.3.4. Como criar num vector a sequência (10, 10.5, 11, 11.5, 12)?

v <- 10 + (0:4)/2

32

Exercício

• Calculo de um VAL

• Ex.3.5. Num investimento, apliquei 1000€ e recebi 250€, 350€, 450€ a intervalos de um ano. Sendo que a taxa de desconto é de 4.5% ao ano, qual o VAL deste investimento?

33

Exercício

Cash.flow<-c(-1000, 250, 350, 450)Taxa.de.desconto<-0.045Desconto<-(1+Taxa.de.desconto)^-(0:3)Vai<-Cash.flow*DescontoVai[1] -1000.0000 239.2344 320.5055 394.3335Va<-sum(Vai)Va[1] -45.9266

34

Método de Monte Carlo

Sequências de números aleatórios. O R (contrariamente ao Excel) tem geradores de números aleatórios de muitas funções de distribuição.

35

Método de Monte Carlo

Para criar um vector com 1000 números aleatórios que seguem Distribuição Normal com, por exemplo, média 10 e desvio padrão 5, executo

va<-rnorm(10000, mean=10, sd=5)

Depois, posso usar este vector nas minhas simulações

36

Método de Monte Carlo

Por exemplo, a taxa de juro futura assume-se ser N(0.03;0.015). Pretende-se saber qual a prestação antecipada de amortizar 250mil€ em 50 anos.

)1/())600()^1(1/(. iiiVP

37

Método de Monte Carlo

r<-rnorm(10000, mean=0.03, sd=0.015)

rm<-(1+r)^(1/12)-1

P<-25000*rm/(1-(1+rm)^(-600))/(1+rm)

c(mean(P),sd(P))

[1] 80.81870 21.28977

summary(P)

Min. 1st Qu. Median Mean 3rd Qu. Max.

18.69 65.63 79.86 80.82 94.65 164.80