Você está na página 1de 67

UniversidadeFederalFluminenseUFF

FaculdadedeAdministrao,CinciasContbeiseTurismo
DepartamentodeContabilidadeSTC
CursodeCinciasAtuariais

MtodosComputacionaisparaAturia

SoftwareEstatsticoLivreR

LucianaMarinhoSoaresGonalves

DownloaddoR

Primeiramente, devese abrir o site www.rproject.org . Em seguida, clicar em CRAN e


escolher o servidor de seu pas e mais prximo da cidade em que est. Em seguida,
escolherWindows,clicarembase,emDownloadR2.14.1forWindowsesalvar.
Observe:

Apsaconclusododownload,oRaindadeveserinstaladoparaquepossacomeara
serusado.Paraisso,devemsedardoiscliquescomomousenoarquivobaixadoeseguiras
instruesdeinstalaodasfigurasabaixo:
InstalandooR:

Escolherapastaondesequersalvaroprograma:

Aps o trmino da instalao, aparecer uma janela de finalizao do instalador. Nela,


clicaremConcluir.Apartirda,oRjpodeserusado.

Observao: As janelas exibidas nesta apostila foram as do Windows 7 para a instalao da


versoR2.14.1.

PacotesdoR

No R, existe uma grande diversidade de pacotes. Estes pacotes contm um conjunto de


funes que permitem ou facilitam a realizao das anlises estatsticas, alm de possurem ajuda
parasuasfunesedemonstraesdeexecuo.
Ao instalar o R, apenas alguns pacotes vm juntos, os quais so essenciais para o
funcionamento do programa, os quais denominamos de mdulo ou pacote bsico, alm de muitos
poderemservirdebaseeprrequisitoparaofuncionamentodeoutrospacotes.

Os pacotes extras podem ser encontrados com base no prprio programa ou pelo site, www.r
project.org, ressaltando que em ambos os casos, o usurio deve estar conectado Internet. Na
verso2.14.1existem3.552pacotesdisponveisparasereminstalados.

InstalandopacotesapartirdoR:

ApsabriroR,deveseseguirasinstruesabaixo:

Cliqueempackagesnomenu.
Cliqueeminstallpackage(s).(abrirumajanela)
Selecione o(s) nome(s) do pacote(s) desejado(s), clique em OK.
Aguardeodownloadserconcludo.
No console do R, aparecer um texto indicando que o(s) pacote(s) selecionado(s)
foraminstalado(s).
Muito importante: Para utilizar as funes do pacote, preciso antes, carreglo no
prprioR.Esteprocessoserexplicadomaisfrentenestaapostila.

InstalandopacotesapartirdaInternet:

Primeiramente, devese abrir o site www.rproject.org e seguir as etapas abaixo,


clicandonolinkdestacado:

10


Ao clicar em packages, ser aberta uma nova pgina. No final desta pgina,
tero todos os pacotes possveis a serem baixados. Devese ento clicar no link do
pacote desejado, fazer o download e salvlo. Na hiptese de que no haja restrio
de espao no HD, recomendamos que todos os pacotes sejam instalados. Isso ir
demandar,naverso2.14.1,aotodo,emtornode2,81GBdeespaonoHD.

Ao encerrar o download, os arquivos ficam salvos em pastas, onde


possvel, ver o help dos pacotes, ou seja, ver a descrio apresentando a funo de
cada um deles. possvel ver no s o desempenho estatstico e/ou grfico que cada
um realiza, mas tambm exemplos com bancos de dados da funcionalidade de cada
pacote.Parasaberaspastasondeestoinstaladosospacotes,digiteocomandolibrary()
antesnoconsoledoR.Abraumscriptseguindoosprocedimentosabaixo:

Para abrir a(s) pasta(s) onde ficam salvos os arquivos, devese clicar no menu
File>Openscript...

11

Em
mseguida,cliiqueemDisscolocal(C:):

12

CliqueemProgramFiles:

13

CliquenapastaR:

CliquenaversobaixadadoR:

14

Cliqueemlibrary:

Emseguida,serabertaapastalibrary,ondeestaroarmazenadostodosospacotesj
instalados.Veja:

15

Aoclicaremumdospacotes,serabertaumaseguintejanelacomasopesde
recurso de uso do pacote selecionado. Para exemplificar, nesta apostila, iremos
selecionaropacoteqcc.Observe:

Apsclicarnopacote,obtmseasopesaseguir:

16

Clicando nestas pastas, possvel conhecer demonstraes e documentos sobre o


pacote,ajudasobreopacoteeoutrosdetalhes.

Esta apostila apresentar exemplificao de como utilizar algumas funes do


qccpackage{qcc}.NoconsolenoRchamarohelpsobreopacote,digitando?qcc.
Uma janela do browse (http://127.0.0.1:25560/library/qcc/html/qcc.html),
denominadaR:QualityControlCharts,seabrir.Navegarnelaatofinalenotexto
[Packageqccversion2.2Index],clicaremIndex.
Apareceroutrapgina(http://127.0.0.1:25560/library/qcc/html/00Index.html),
que contm documentao sobre o pacote qcc. Abaixo do texto Help Pages,
clicaremqccpackageevertodaadocumentaosobreestepacote.

Observao:ParatestarumexemplonoR,precisoantes,carregaropacote,
conformeserexplicadologofrentenestaapostila.
NoConsoledoR,carregaropacoteqcc,digitandorequire(qcc)ounoirmenuPackages
>Loadpackageeselecionaro pacoteqcc.Comoexemplo, nesta apostila, vamos
mostrar o processo aps escolher o comando qcc.overdispersion.test, que se
trata do comando sobre teste de disperso e que um dos exemplos abaixo do texto
Indexdoqccpackage{qcc}.
No Console do R, digitar ?qcc.overdispersion.test. Ser aberta a seguinte janela do
browse
(http://127.0.0.1:25560/library/qcc/html/qcc.overdispersion.test.html)
explicandoestepacoteecomexemplosnofinaldapgina:

17

OscomandosdeExamplesapresentadosnestajanela,sooscomandosquedevemser
digitadosnoconsoledoRpararealizarotestededispersocombasenobancode
dadosempesquisa.Reparequeobancodedadosutilizadonajanelaacima,um
bancodedadosaleatrio,apenasparaexemplificaroscomandos.NaexecuonoR,
devesealterarapenasobancodedados.
Paratestarafuno,bastacarregaropacotenoR,selecionarotextodajanelaaberta,
clicarcomobotodireitodomouseeselecionarcopiarenoconsoledoRemcolar.

Observe outro exemplo abaixo do texto Index da pgina do qccpackage {qcc} com o
pacoteqcc:

NoConsoledoR,digitar?qcc,abriraseguintejaneladobrowse
(http://127.0.0.1:25560/library/qcc/html/qcc.html):

18

Navegaratofinaleverosexemploscomomostranaimagemabaixo:

Paraexemplificar,digitaremoslibrary(qcc)ourequire(qcc)noconsoledoRparacarregar
opacote(emcasodedvida,videseoseguinte).
Em seguida, selecionaremos parte do texto e copiaremos no R para testar o que
executacadacomando.Comapartedotextoselecionadaecomoponteiro

19

posicionado sobre ele, pressione o boto direito do mouse para abrir um menu
exclusivo,conformeilustradoaseguir,eselecionecopiar:

ApsclicaremCopiar,colaroscomandosnoconsoledoReexecutlos.Comose
tratadeumacriaodegrfico,tambmserabertaumajanelacomogrficopronto
comosegue:

20

CarregandoPacotes:

Apsaetapadeinstalao(apartirdoprprioRoudosite),parausaropacote,
bastacarreglodaseguintemaneira:

DigitenoconsoledoR:
>library(nomedopacote)ourequire(nomedopacote)<ENTER>

Ousigaasinstruesabaixo:
Clique em packages no menu.
Cliqueemloadpackage.
Selecioneo(s)pacote(s)desejado(s)ecliqueemOK.
H pacotes que apenas so ativados no R ,ento aparecer um texto no console
indicando que as funes do pacote esto prontas para serem usadas. E h pacotes
queao seremativados, serabertauma outrajanela ondedevero ser dados os
comandos para a realizao das funes, como o caso do pacote Rcmdr (R
Commander)queserestudadoaseguir:

PesquisandotcnicasoumtodosimplementadosempacotesdoR

possvel descobrir se existe e qual o nome do pacote que utiliza uma determinada
tcnica estatstica que se queira aplicar. Para isso, devemse seguir as instrues de
buscaabaixo:
NomenuiniciardocomputadornoWindows7,cliqueemcomputador(computer):

21

CliqueemDiscolocal(C:):

CliqueemArquivosdeprogramas(ProgramFiles):

22

CliquenapastaR:

CliquenaversobaixadadoR:

23

Emseguida,cliquenalibraryenocampoSearchlibrary,digitarhtml:

24

Aps esta etapa, aparecero vrios resultados da pesquisa na janela ao lado,


conformemostraafiguraabaixo.

Ao concluir a pesquisa, clique na pasta html que tem qcc (quality control
charts)nasuaramificaofinal.Osarquivosquecontm00noinciodonome,
soarquivosHTMLusualmenteabertospelonavegadorExplorerdoWindows,que
aoserem abertos,resultamnuma pginaquecontm todas as informaes sobre
as funes do pacote em pesquisa. Neste exemplo, estamos estudando o pacote
qcc:

25

Ao clicar duas vezes no nome do pacote, ser aberta uma pgina no navegador padro da
Internetmostrandoadocumentaodopacoteempesquisa.apenasumapginadevisualizao.
Nofuncionarparanavegarclicandonosoutroslinks.Ouseja,aoclicaremqccpackage,abrir
uma pgina do browse com o ttulo Arquivo no encontrado O Firefox no conseguiu localizar o
arquivo /C:/ProgramFiles/R/R2.14.1/library/qcc/ html/qccpackage.html., pois o html procurado
qccpackage.html no se encontra no diretrio do computador. Para visualizar esta pgina, basta
digitar?qccpackagenoconsoledoR,comopreviamenteexplicado.Nopacoteemestudo,foiabertoo
seguintelink:"file:///C:/Program%20Files/R/R2.14.1/library/qcc/html/00Index.html

Introduoaoambientedeprogramao

R uma linguagem e ambiente para computao estatstica e para grficos. Tratase de um


conjunto integrado de facilidades de software para manipulao de dados, clculo e visualizao
grfica. um projeto disponvel como Software Livre sob os termos da Licena Pblica Geral GNU
da Free Software Foundation na forma de cdigo fonte, ou seja, um projeto com o objetivo de
criar um sistema computacional totalmente livre, que qualquer pessoa teria direito de usar,
modificar e redistribuir, o programa, seu cdigo fonte, desde que garantindo para todos os
mesmosdireitos.

Sendo um Software Livre, os cdigos fontes do R esto disponveis e atualmente so


gerenciadosporumgrupochamadooCoreDevelopmentTeam(http://www.r
project.org/contributors.html). A vantagem de ter o cdigo aberto que falhas podem ser
detectadasecorrigidasrapidamenteeatualizaesparaSoftwaresLivrespodemser
disponibilizadasemumaquestodedias.Essesistemaderevisodependepesadamenteda

26

participaodosusuriosdispersos,pormconectadosWEB,nomundointeiro.Emcontraste,em
vrios pacotes comerciais, algumas falhas permanecem sem correo at o prximo
lanamentoquepodelevarmuitotempo,comcustoadicionais.

R fornece uma interface de entrada por linha de comando (ELC), denominada R Console,
ilustradaabaixo.AlinguagemdaRsetornaclaraesimpleseaflexibilidadedaELCpermitequeuns
poucoscomandossimplessejamjuntadosparacriarfunespoderosas.Almdissoa
transparncia das funes e a entrada de dados so altamente didticas. O usurio sempre
conscientedoquefoipedidoatravsdaELC.

A plataforma R fornece uma ampla variedade de tcnicas estatsticas, como exemplo:


modelagemlinearenolinear,testesestatsticosclssicos,anlisedesriestemporais,
classificao e agrupamento. Oferece grficos bemdesenhados com tima qualidade para
publicao, por poderem ser produzidos incluindo smbolos matemticos e frmulas quando
necessrio. Disponibiliza opes para manipulao, armazenamento e ferramentas intermedirias
para anlise de dados, alm de facilidades grficas de dados visualizadas na tela ou impressas.
Possui um conjunto de operadores para clculos sobre quadros de dados, principalmente matrizes
e uma linguagem de programao bem desenvolvida de forma simples e efetiva que inclui
condicionais, alas, funes recursivas definidas pelo usurio, e facilidades para entrada e sada.
AlmdeserdisponvelparamuitasplataformasincluindoUnix,Linux,MacintosheWindows.

Ao abrir o programa R, ser aberto uma janela de comandos chamada console com o
smbolo>quechamadopromptdoR,indicandoqueoprogramaestprontoparaser

27

iniciado e receber os comandos sobre objetos criados pelo usurio ao aplicar as anlises
estatsticas.

Os valores numricos ou caracteres podem ser dispostos no R em forma de vetores,


matrizesoudataframe.
Os argumentos devem ser separados por vrgula e as casas decimais so representadas por
ponto.Acentos,espaoseletrasmaisculastmleiturasdiferenciadasnalinguagemutilizadano
R.

O smbolo # pode ser inserido no incio de uma linha para indicar que o que texto a ser
redigido tratase de um comentrio, e portanto, ser ignorado pelo R e no ficar salvo na
memria como um comando.Sendo este smbolo utilizado mais por uma questo de organizao,
paraporttulosesubttulos.

possvel ver o histrico de comandos j digitados pressionando a tecla de seta para cima.
PodesetambmcopiarecolartextosnoR.
Operaes matemticas simples so feitas de maneira direta, com smbolos de costume usual,
podendooresultadoserindicadodiretamenteouatribudoaumavarivel.Exemplo:

>2+5<ENTER>
[1]7

>3*6 <ENTER>
[1]18

> 84 <ENTER>
[1]4
> 10/2 <ENTER>
[1]5

>sin (180) <ENTER>


[1]0
>R<2+3*4 <ENTER> R
<ENTER>
[1]14

PrincipaiscomandosefunesdomdulooupacotebsicodoR:
Utilizase sempre uma varivel qualquer seguida do smbolo < para indicar que os dados
a serem digitados sero memorizados na varivel escolhida e podese apresentar os dados entre
parnteses:

28

>X<(83) <ENTER> >


X<ENTER>
[1]83

Aocriarumaseqnciaarbitrria,devemosdigitarcantesdosparntesespara
indicarqueosdadosaseremdigitadosseroagrupadosnaformadevetor:
>Y<c(1,2,3,4,5,9)<ENTER>
>Y<ENTER>
[1]123459
Length => indica o nmero de termos existentes:
>length(Y)<ENTER>
[1]6

NA=>indicaausnciadedados
NaN => indica que o valor no um nmero vlido
Factorial(X)=>indicaofatorialdeX
Seqncia:
>X<1:5 <ENTER>
>X<ENTER>
[1]12345

OBS:podemsefazeroperaesmatemticassimplescomseqncias:

>X<X+1<ENTER>
>X<ENTER>
[1]23456

Colchetessousadosparaextraodeelementosespecificados:

>X[2]<ENTER>
[1]3
(foiretiradoo2elementodaseqnciaX,onmero3)

>X[2:4]<ENTER>
[1]345
>X [X<5] <ENTER>
[1]234
(elementosdeXquesomenoresque5)>X
[X<=5]<ENTER>

29

[1]2345
(elementosdeXquesomenoresouiguaisa5)

>K<c(1:5,5)<ENTER>
>K<ENTER>
[1]123455
>K [K == 5] <ENTER>
[1]55
(valoresdeKquesoiguaisa5)
Y~X => indica Y em funo de X.
=>delimitamumcaractere.
inf ou inf => indica que o valor tende a mais ou menos infinito.
mean(X)=>indicaamdiadeX.
var(X)=>indicaavarinciadeX.

sd(X)=>indicaodesviopadro.

max(X)min(X)=>indicaaamplitudetotal.

Range(X)=>indicaomenoreomaiorvalordeX,respectivamente.

tapply(X,Y,mean)=>indicaamdiadeXparacadanveldeY.
OBS:nestecomando,podeseusarqualquermedida,usousemeanapenascomo
exemplo.
median(X) => indica a mediana de X.
quantile(X)=>indicaaoquartisdeX.
table(X)=>forneceasfreqnciasdosvaloresdeX.
subset(table(X),table(X)==max(table(X))) => indica a moda de X.
summary=>obtmseresumodedadosestatsticos.
?nomedafuno=>paraobterinformaesdeajudasobreafunodesejada.

help(nomedopacote)=>paraobterinformaesdeajudasobreopacotedesejado.

30

library(pacote) => carrega ou ativa o pacote desejado (o uso de pacotes ser explicado
maisfrente).

rm(objeto)=>removeoobjetodesejadodamemriadoR.
factor(objeto) =>transforma o objeto escolhido em fator, isto , o divide em nveis.
attach(varivel)=>reconhececomoobjetoisoladocadacolunadeumDataFrame.
detach(varivel) => desfaz a funo anterior, aconselhvel para evitar conflitos de
memrianoR.

fix(K)=>editaK,podendoesteservetor,matrizoudataframe.

example(nomedafuno)=>exibeexemplosdafunoescolhida.

demo(package=nome do pacote) => informa os nomes dos demos (scripts que contm
demonstraes, demos, de funcionalidades do pacote), caso existam para o pacote
especificado,oqualdeveestarativoepossuirdemonstraesduranteestecomando.
demo(nome do demo,package=nome do pacote) => executa o demo especificado.
choose(n,k)=>indicacombinaodentomadodekak.
sqrt(X)=>indicaraizquadradadeX.

1. Comandosusadosparacriarvetores:
rep(5,n) => vetor que contm n vezes o nmero 5. Exemplo:
>rep(7,3)<ENTER>
[1]777

seq(a,b,c)=>criaointervalo[a,b]separadoemcunidades.Exemplo:>
seq(1,10,2)
[1]13579
gl(i,r) => cria um vetor representado pela seqncia de 1 at i com r repeties em cada
nvel.Exemplo:
>gl(4,3)
[1]111222333444
Levels:1234

31

rank(V) => exibe a posio de cada valor do vetor V ordenado.


sort(V)=>exibeosvaloresdovetorVemordemcrescente.

2. Comandosusadosparacriarmatrizes:

Primeiramente,devesecriarocdigooqualiremosatribuirmatriz.
Emseguida,devesecriarovetorqueindicarcadaitemdaslinhasecolunasdamatriz.
Por ltimo, indicar o nmero de linhas e o nmero de colunas, respectivamente, que a
matrizter.
OBS: o nmero de linhas e de colunas, deve ser mltiplo ou submltiplo do nmero de
elementosdovetor.

Exemplo:
>M1<matrix(c(1,3,5,7,9,11),nrow=2,ncol=3) <ENTER>
>M1<ENTER>
[,1][,2][,3]
[1,] 1 5 9
[2,] 3 7 11

Podesetambmcriarovetorisoladodamatriz.Veja:

>V<1:6<ENTER>
>V<ENTER>
[1]123456
>M2<matrix(data=V,nrow=3,ncol=2) <ENTER>
>M2<ENTER>
[,1][,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6

Podesetambmescreverdeformadiretaamatriz,ocultandonrowencol.
Considerando o primeiro valor como o indicador do nmero de linhas e o segundo como
indicadordonmerodecolunas.Observe:
>M3<matrix(c(7,20,9,212,1,2,3,4,15,23,65,77),4,3)
>M3<ENTER>
[,1] [,2] [,3]
[1,] 7 1 15

<ENTER>

32

[2,] 20 2 23
[3,] 9 3 65
[4,] 212 4 77

>M4<matrix(1:6,6,2)<ENTER>
>M4<ENTER>
[,1] [,2]
[1,] 1 1
[2,] 2 2
[3,] 3 3
[4,] 4 4
[5,] 5 5
[6,] 6 6

O R tem como padro seguir a ordem dos dados por colunas, mas podese mudla para
linhas,vejaoexemploutilizandoaindaM4:

>M4<matrix(1:6,6,2,byrow=T) <ENTER>
M4<ENTER>
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
[4,] 1 2
[5,] 3 4
[6,] 5 6
Podeseretirarapenaspartedamatriz.Exemplo:

>M1[1,2]<ENTER>
[1]5

>M4[,2] <ENTER>
[1]246246

>M2[1,] <ENTER>
[1]14

As funes cbind e rbind adicionam coluna e linha, respectivamente. Podendo estas


seremadicionadasnofinalounoinciodamatriz.Veja:

>m1<cbind(M1,c(7,8))<ENTER>
>m1<ENTER>
[,1][,2][,3][,4]
[1,] 1 5 9 7

33

[2,] 3 7 11 8

>m1<rbind(c(7,8,9,10),m1)<ENTER>
>m1<ENTER>
[,1][,2][,3][,4]
[1,] 7 8 9 10
[2,] 1 5 9 7
[3,] 3 7 11 8

Multiplicaodematrizes:

>M1%*%M2<ENTER>

[,1] [,2]
[1,] 38 83
[2,] 50113

Outroscomandos:

ConsiderandoumamatrizMqualquer:
fix(M) => abre uma janela da matriz M editada, podendo fazer alteraes na matriz.
solve(M)=>calculaainversadamatrizM.
t(M)=>calculaatranspostadamatrizM.

det(M)=>calculaodeterminantedamatrizM.

3. ComandosusadosparacriarDataFrame:
UmDataframepodesercriadoatravsdaentradadedadosexternosoupodesercriadono
prprioR,adotandocadacolunadoDataFramecomoumvetor.
Aocriarosvetores,podeseusarafunoc(),jconhecida,ouafunoscan()da
seguintemaneira:
>X<scan()<ENTER>1:
2<ENTER>
2: 3 <ENTER>
3:4<ENTER>

34

4: 5 <ENTER>
5:
<ENTER>
Read 4 items
>X <ENTER>
[1]2345

> Y<c("A","B","C","D") <ENTER> >


Y<ENTER>
[1]"A""B""C""D"

(foramcriadososvetoresXeYutilizandoafunoscan())
Aps criar os vetores desejados, basta juntlos em um Data Frame e apagar os vetores
criadosdamemria,poiselesjestaroarmazenadosnoDataFrame.

>D1<data.frame(X,Y)<ENTER>

>rm(X,Y)(pararemoverosvetoresXeY)<ENTER>

>D1<ENTER>
XY
1 2A
2 3B
3 4C
4 5D

possvelalteraronomedascolunascriadasnoDataFrameatravs
do seguinte
comando:
>names(D1)<c(coluna1,coluna2) <ENTER>
>attach(D1)<ENTER>
(parapoderusarascolunascriadasapenascomonomedelas,veja:)

>coluna1<ENTER>
[1]2345

possvelisolarcolunastambmcomoseguintecomando:

D1$(nomedacoluna)
Nocaso,D1$coluna1
OBS: importante ressaltar a diferena entre Data Frame e matriz. No Data Frame
possveltrabalharcomvaloresnumricosecaracteresaomesmotempoetambmpode

35

se alterar o nome de suas colunas, podendo ter acesso a cada uma delas separadamente
pelaespecificaodestenome.

Entradadedadosexternos,exemplo:
Considerando Tabela1 o nome de uma tabela qualquer criada no Excel, salva em CSV.
Devesefazeroseguinteprocesso:
1) Ir ao menu Arquivo, mudar diretrio e selecionar a pasta na qual o arquivo foi
salvo.
2)Digitar:Y<read.table(Tabela1.CSV,header=T,dec=,,sep=;)

DigitandoYnoconsole,serabertaaTabela1.

Grficos:

Cada tipo de grfico possui um comando especfico, porm quase todos tero suas
configuraes controladas pelo comando par em funo de argumentos que so
utilizadosparaacriaoemanipulaodegrficos.Soeles:

36

possvel copiar os grficos criados no R para editores de textos como Word. Para
issobastaselecionarogrfico,pressionarCtrl+cparacopiarejnapginadoeditor
pressionarCtrl+vparacolar.Ouclicarcomobotodireitosobreogrficoedepoisem
Copy as Metafile com o boto esquerdo para copiar e na pgina do editor, pressionar
Ctrl+vparacolarogrfico.

1. Histograma

Serocriadas2variveis:

37

X1<c(gl(3,4),5,6,7,7)<ENTER>
X2<c(1,2,3,4,5,6,7,8,9,10,10,11,12,13,14,15) <ENTER>
X<c(X1,X2)<ENTER>
rm(X1,X2)<ENTER>
hist(X)=>criarogrfico.

Exemplosdecomofazeralteraesnogrfico(funopar):

par(las=1)=>paraexibirosvaloresdoseixosxey.
par(bg=nomedacor)=>paraescolheracordefundo.
par(mfrow=c(1,1)) => para dividir a janela dos grficos em linhas e colunas, no
caso,em1linhae1coluna.
hist(X)

(Aps digitar os comandos da funo par devese digitar hist(X) de novo para
atualizarasalteraes)

Demonstrao:

>hist(X)<ENTER>

Histogram of X
10
8
6
4
2
0
0

10

15

>par(bg=green) <ENTER>
>par(fg=red)<ENTER>

38

>par(col.main="white")<ENTER>>
>par(col.lab=purple)<ENTER>>
>par(col.axis=pink)<ENTER>>
>hist(X)<ENTER>

Histogram of X
10
8
6
4
2
0
0

10

15

Paraalterarottulodogrficoeonomedoseixosdeveseseguirocomando
abaixo:

>hist(X,main=HistogramadeX,xlab=Eixox,ylab=Freqncia)<ENTER>

39

Histograma de X

10

15

Eixo x

2. GrficodeRamoeFolhas:

Serocriadas2variveis:

>Y1<rnorm(50,150,20)<ENTER>
>Y2<rnorm(50,100,20)<ENTER>
>Y<c(Y1,Y2)<ENTER>
>rm(Y1,Y2)<ENTER>
>stem(Y)=>comandoparaaconstruodogrfico

Thedecimalpointis1digit(s)totherightofthe|

4|59
6|335137
8|112233356902799
10|011233344678993556789
12|01134567999022223479
14|23001122556667799
16|01222335589133469
18|0
20|4

Casosejanecessrioestratificarogrfico,devesedigitaroscomandosabaixo:

40

>stem(Y[X==1])<ENTER>

Thedecimalpointis2digit(s)totherightofthe|

0|888
1|001112233
1|6667789

>stem(Y[X==2])<ENTER>

Thedecimalpointis2digit(s)totherightofthe|

0|8
1|012344
1 | 5556667
2|1

3. Boxplot:

CombasenasvariveisXeYusadasnosexemplosacima,construiremosogrficoBoxplota
seguir:

>boxplot(X)<ENTER>

41

>boxplot(Y)<ENTER>

Criaremos agora um vetor W com o mesmo tamanho de X:


>W<c(2,3,4,5,21,32,14,15,gl(4,6))<ENTER>
boxplot(X~W)=>BoxplotestratificadoporW

14

21

42

OpacoteRCommander:

EstepacoteumdosmaispromissoresparaadisseminaodousodoambienteR,
por ser uma interface grfica amigvel que possui uma excelente eficcia na
importao de dados e na construo de grficos, alm de ter uma execuo bem
simples.Observe:
Para utilizar as funes do pacote, devese carreglo no menu do programa, aguardar a
janelacomosnomesdospacotesabrir,selecionarRcmdr
(R Commander) e clicar em OK. Ser aberta a janela deste pacote onde devero ser
digitadososcomandosparaarealizaodasfunesdesejadas.

Entradadedadosexternos

Paraaimportaodedadosdevemserseguidasasinstruesabaixo:

IraomenuData.
ClicaremImportdata.
Clicarnaprimeiraopo:fromtextfile,clipboard,orURL....
DigiteocdigoquevocdesejautilizarparatalbancodedadosnoRedok.
Abrirumajanela,naqualdeveseprocuraroarquivoquesequerimportareabrilo.
Emseguida,umaoutrapequenajanelaseraberta,cliqueemDataset.txtedok.
NoRCommander,clicaremEditdataseteserabertaumajaneladeediodoarquivo.
Serabertoobancodedadoseserpermitidaamanipulaodeste.

possvelcriargrficoapartirdestepacote.Paratalfuno,apsclicaremDataset.txte
darOK,ousuriodeveretornaraomenudajaneladoRCommander,clicaremGraphse
escolherotipodegrficodesejado,porexemplo,Histogramaeescolheravarivel.
Seguindo estas instrues, o grfico aparecer em uma nova janela frente do console do R.
Veja:

43


ApsestaetapabastairjaneladeconsoledoRqueogrficoestarpronto.

Exportaodedados

Apscriarumvetor,matriz,ouqualquerobjetodognero,possvelsalvloemum
arquivo de texto ou planilha. Para isso basta executar o comando write.table como segue
abaixo:

>write.table(VETOR,file="C:\\pasta_desejada\\nomedoarquivo.txt",sep="")

Exemplo:
>#Calcularamdiadeumvetorxqualquercomumapodade20%>
<ENTER>
>mean(x,trim=0.2)
Agora vamos aprender como definir uma funo, ou seja, como prdefinir um
objetonoR:

Imagineumfunoytalquey=(x+1)/2x,vamosprdefiniressafunonoR:

>Y<function(x){
+return(((x+1)^2)/(2*x))
+}

44

<ENTER>
>Y(2)
[1]2.25

Grfico3D
Dentro do pacote R Commander, possvel criar grficos 3D. Para tal, iremos exemplificar
atravsdeumafuno,conformesegueabaixo:

ConsidereZ=X^2+2*X*YY

ParaosvaloresdeXvariandode1at10edeYvariandodeacordocomaseqncia
arbitrria0,2,4,6,1,3,5,7,9e4.
ObteremososseguintesvaloresdeZ:1,10,29,58,34,69,114,169,234e24.
No R, aps carregar o pacote Rcmdr (RCommander) e esperar abrir sua pgina de
comandos,deveseclicaremDataeemseguidaemNewDataSet.
Najanelaqueabrir,ousuriodevedigitaronomepeloqualdesejagravarosdadosa
seremsalvoseclicaremOK.Nesteexemplo,salvaremoscomodados.Observe:

ApsdarOK,por cima doConsoledoR, abriruma janela com umatabela,onde o


usurio dever digitaros valores dos pontos que deseja que apaream no grfico. Nela,
possvel mudar o nome das variveis, para isso, devese clicar em var1 , var2, var3 e
assim sucessivamente conforme for o nmero de variveis, esperar abrir um pequena
janelaeneladigitarosmboloaoqualdesejaassociarcadavariveledarEnter.Veja:

45

Depoisdisso,devesecolocarosvaloresnatabela.Observe:

Apsmontaratabelacomosdadosdogrfico,deveseretornarjanelaoRCommander,
clicarnomenuGraphs,3DGrapheem3Dscatterplot....

46

Depoisde clicar em 3Dscatterplot,ser abertauma janela, na qual o usurio deve


selecionarasvariveisquedeseja.Nesteexemplo,iremoscolocarZemfunodeXeYe
selecionaremos tambm a opo Identify observations with mouse, conforme segue
abaixo:

47

Apsdar OK,umajanelacom ogrfico aparecerporcimado ConsoledoR,como


segue:

48

Comobotoesquerdodomousepossvelmexerogrfico,mudandoseungulodeobservao.

49

CriandoumnovoitemdemenudentrodoRCommander

Nestaseovamosilustraracriaodeumitemdemenupersonalizado.Vamosprecisar,paraisso,
de um conjunto de instrues que j vem programado e explicado junto com o pacote URCA. Este
pacoteservecomoapoioaolivroAnalysisofIntegratedandCointegratedTimeSerieswithR(UseR)
deBernhardPfaffcomercializadopelaeditoraSpringer:

Tal como este livro, h uma quantidade grande de livros que esto sendo publicados, com ou sem
pacotes auxiliares, versando sobre metodologias, estatsticas ou no, que usam o R (USE R!). Na
data da atualizao desta apostila, haviam listados cento e quinze livros no link: http://www.r
project.org/doc/bib/Rbooks.html.
Vamos usar o pacote URCA, porque ele contm um subdiretrio especial, denominado Rcmdr,
conformepodemosvisualizarnaimagemseguinte:

50

Quando um pacote contm um subdiretrio Rcmdr, isto indcio de que ele pode trabalhar em
sintonia com o pacote R Commander. Ao abrir o arquivo README, encontramos instrues sobre
como instalar um addin (suplemento) prprogramado para incluir um item de menu que
implementafunesdopacoteURCAamigavelmentedentrodoRCommander:

SeguindoasinstruescontidasnesteREADME,devemos:

51

1 passo copiar o arquivo Rcmdrurca.R para o subdiretrio /etc do pacote R Commander,


conformeexemploilustradoaseguir:

52

2passocopiaroscontedosdoarquivoRcmdrmenus.txt:

Ecolarparadentrodoarquivodemesmonomequesituasenosubdiretrio/etcdopacoteR
Commander,acimadalinhamenuhelpMenutopMenu""""""
:

53

Salvandooemseguida:

Repare que ao fazer essa seqncia de instrues e em seguida abrindose o R Commander, o


menudenominadourcaapareceresquerdadomenuHelp.

54

A partir deste exemplo, analisandose atentamente a estrutura de comandos que foi copiada para
dentro do arquivo Rcmdrmenus.txt e observandose como esse novo item de menu adicionado
funciona dentro do R Commander, possvel descobrir como se programa qualquer nova
estrutura de menus dentro do R Commander, customizada para qualquer outra necessidade
especfica. Todas as funes que so chamadas neste exemplo de programao de menu
customizado esto devidamente programadas no arquivo Rcmdrurca.R, o qual foi anteriormente
copiadoparaosubdiretrio/etcdopacoteRCommander.

Estruturasderepetio

FunesdeLoop

FOR

Exemplo:Criarumvetorresultantedaseguinteoperao:
Elevar cada elemento de um dado vetor ao elemento de mesma posio referente a um
outrovetordistinto.

#Criandoosvetores:

>vetor1<c(1:50)
> vetor2<c(rep(1,10),rep(2,20),rep(3,10),rep(4,10),rep(5,10)) >
vetor3<NULL

55

#UsandoaestruturaFOR:

>for(iin1:50){
+ vetor3[i]<vetor1[i]^vetor2[i]
+}

#Vetorresultante:

>vetor3
[1] 1 2 3 4 5 6 7 8 9
[10] 10 121 144 169 196 225 256 289 324
[19] 361 400 441 484 529 576 625 676 729
[28] 784 841 900 29791 32768 35937 39304 42875 46656
[37] 50653 54872 59319 6400028257613111696341880137480964100625
[46]44774564879681530841657648016250000

IF

Exemplo: Criar uma matriz e retornar, caso ela no seja inversvel, uma mensagem
indicandoqueelanoinversvel,casocontrrio,retornarasuamatrizinversa:

Ex.1)
>M1<matrix(c(1,0,0,0),2,2)
>if(det(M1)==0){print(c("Noinversvel"))}else{solve(M1)}[1]
"Noinversvel"

Ex.2)
>M2<matrix(c(2,1,3,1),2,2)
> if (det(M2)==0){print(c("No inversvel"))}else {solve(M2)}
[,1][,2]
[1,] 0.20.6
[2,] 0.2 0.4

FunesnoR

56

PodesedefiniroconceitodefunonoR,comosendoumobjetoprdefinidoque
dependedeumaoumaisvariveisqueserodadaspelousurio,afimdeacharumvalor
especfico.Comoporexemploamdia,queumafunodoR,ouseja,umobjetoque,para
sercalculado,dependededuasvariveis:ovetornoqualsercalculadoamdia,ea
porcentagemdepodadamdia.

Exemplos:

Calcularamdiadovetorxcomumapodade20%.

>x<seq(1:10)<ENTER>
>x<ENTER>
[1]12345678910
> mean(x,trim=0.2) <ENTER>
[1]5.5

Criarumafunoquecalculeovalordeytalquey=(x+1)/2x.

>Y<function(x){
+return(((x+1)^2)/(2*x))+}
<ENTER>
> Y(2) <ENTER>
[1]2.25

CriaodefunesnoR
TaxasEquivalentes

Duastaxassoequivalentesseaplicadas,atravsdediferentesformasdecapitalizao,
aomesmocapital,pelomesmoperododetempo,resultamnomesmomontante.
Exemplos:

Considereim=taxamensaleid=taxadiria.

1+im=(1+id)30 (pois1ms=30dias)

AplicaonoR

Vejaosexemplosabaixodefunesquecalculamtaxasequivalentes:

57

Ex.1)
> # Dia para ms
>
> DpM < function(t){
+ return(((1+t)^30)1)
+}
> DpM(0.02)
[1]0.8113616

Ex.2)
> # Ms para ano
>
> MpA < function(t){
+ return(((1+t)^12)1)
+}
>
MpA(0.02)
[1]0.2682418

Ex.3)
> # Ano para ms
>
>ApM<function(t){
+ return(((1+t)^(1/12))1)
+}
>ApM(0.1)
[1]0.00797414

Ex.4)
> # Ms para dia
>
>MpD<function(t){
+ return(((1+t)^(1/30))1)
+}
>MpD(0.1)
[1] 0.003182058
>
> MpD(ApM(0.5))
[1]0.001126926

58

Ex.5)
> # Semestre para ano
>
> SpA < function(t){
+ return(((1+t)^2)1)
+}
> SpA(0.2)
[1]0.44

JurosSimples

osistemanoqualosjurosincidemapenassobrecapitalinicial,ouseja,quandoos
rendimentossodevidosnicaeexclusivamentesobreoprincipalaolongodosperodosde
tempoaquesereferirumadeterminadataxadejuros.

AplicaonoR

Lembrandoque:

Juros = Capital x Taxa x Perodo


Montante=Capital+Juros

ChamaremosdeJSojurossimpleseMSomontantereferenteaosjurossimples.
ConsidereumaaplicaoparaumCapitalde100reais,aumataxade10%aoperodo,por
8perodos.
NoR,podesecriarafunoatravsdosseguintescomandos:#c
=100,t=0.1en=8
>JS<function(c,t,n){+
return(c*t*n)
>}
> JS(100,0.1,8)
[1]80

Paracalcularomontante,devesefazer:

>MS<function(c,t,n){
+return(c*(1+t*n))

59

>}
> MS(100,0.1,8)
[1]180

JurosCompostos
osistemanoqualosrendimentosincorporadosaoprincipalemcadaperododetempoa
quesereferirumadadataxadejuros,passam,tambm,arenderjurosnoperodo
seguinte,dessamaneira,concluisequeocapitalinvestidoouemprestadoseracrescidodo
rendimentodejuros,compondoumnovoprincipal,oqualnoperodoseguinteseracrescido
derendimentodejuroseassimsucessivamente,ouseja,orendimento
calculadocomjurosemcimadejuros.

AplicaonoR

Lembrandoque:

Juros = Capital x (((1 + taxa) ^ perodo) 1)


Montante=Capital+Juros

Chamaremos de JC o Juros Compostos e de MC o Montante referente aos Juros


Compostos.

ConsidereumaaplicaoparaumCapitalde100reais,aumataxade10%aoperodo,por
8perodos.

NoR,podesecriarafunoatravsdosseguintescomandos:

>JC<function(c,t,n){
+ return(c*(((1+t)^n)1))
+}
> JC(100,0.1,8)
[1]114.3589

>MS<function(c,t,n){
+return(c*(1+t*n))
+}
> MS(100,0.1,8)
[1]180

60

Anuidades

Oestudodasanuidadesnosforneceoinstrumentonecessrioparaestabelecer
planosdepoupana,definanciamento,derecomposiodedvidaseavaliaode
alternativasdeinvestimento.

Defineseanuidade,rendacertaousrie,aumasucessodepagamentosou
recebimentos, exigveis em pocas prdeterminadas, destinada a extinguir uma dvida ou
constituirumcapital.
Cadaumdospagamentosquecompemumasriedenominasetermodeuma
rendaeconformesejamiguaisouno,aanuidadesedenominar,respectivamente,
constanteouvarivel.
Se os pagamentos forem exigidos em pocas cujos intervalos de tempo so iguais,
aanuidadesedenominarperidica;casocontrrio,asriesedenominarnoperidica.

Seoprimeiropagamentoforexigidonoprimeirointervalodetempoaquese
referirumadeterminadataxadejuros,teremosumaanuidadeimediata;casocontrrio,ou
seja,seoprimeiropagamentonoforexigidonoprimeirointervalodetempo,elaser
diferida.Casonosejamcontadosjurosduranteoperododediferimento,estese
denominarperododecarncia.
Temse uma anuidade temporria ou uma perpetuidade conforme seja,
respectivamente,finitoouinfinitoonmerodeseustermos.

Classificaodasanuidadesperidicas

Postecipadas

Quandoospagamentosourecebimentosforemefetuadosnofimdecadaintervalode
tempoaquesereferirtaxadejurosconsiderada.
R
R
R
R
R
R
R
perodos
n-2
n-1
n
0
1
2
3
4

61

Frmulasparaanuidadespostecipadas:

(1+ )n 1
C =R
i
i (1+i)n

S =R

(1+i) 1
i

Onde:

C=valoratual,principalouvalorfinanciadoS=
valorfuturo,montanteouvalorderesgateR=
pagamentosourecebimentos
i=taxadejuros
n=nmerodeperodos

AplicaonoR

CriaremosfunesparacalcularCeS:

> # Para calcular o valor presente(atual) >


ENTER
>CaP<function(R,i,n){
+ return(R*((((1+i)^n)1)/(i*((i+1)^n))))
+}
>#Exemplo:
> CaP(10000,0.08,12)
[1]75360.78

>#Paracalcularovalorfuturo(final)>
ENTER
>SaP<function(R,i,n){
+ return(R*((((1+i)^n)1)/i))
+}
>#Exemplo:
> SaP(10000,0.8,12)
[1]14447892
Antecipadas
Quando os pagamentos ou recebimentos forem efetuados no incio de cada
intervalodetempoaquesereferirataxadejurosconsiderada.

62

n-2

n-1

perodos
n

Frmulasparaanuidadesantecipadas:

C = R (1+i) 1
n 1

i (1+i)

S =R

((1+i)

1)

1+i)

AplicaonoR

CriaremosfunesparacalcularCeS:

> # Para calcular o valor presente(atual) >


ENTER
>CaA<function(R,i,n){
+ return(R*( ( ( (1+i)^n) 1 ) / (i*( (i+1)^(n1) ) ) ) )
+}
>#Exemplo:
> CaA(10000,0.8,12)
[1]22480.55

>#Paracalcularovalorfuturo>
ENTER
>S<function(R,i,n){
+ return( ( R*( ( ( (1+i)^n) 1)/i) )*(1+i) )
+}
>#Exemplo:
> S(10000,0.8,12)
[1]26006206

Perpetuidades:

Nocasodospagamentossereminfinitos,teremosoquesedenominade
perpetuidade. Como o nmero de pagamentos infinito, no tem sentido o clculo do
montante,maspodemoscalcularovaloratual.

63

Postecipada

C=

R
i

AplicaonoR

> CpP < function(R,i){ +


return(R/i)
+}
>#Exemplo:
>CpP(10000,0.8)
[1]12500

Antecipada

R
C= i 1+i)

AplicaonoR

> CpA < function(R,i){


+ return( (R/i) * (1+i) )
+}
>#Exemplo:
> CpA(10000,0.8)
[1]22500

MtodosdeTarifao

Aanlisesistemticadascontingnciasdevidahumana(sobrevivnciaemorte)
constituiosfundamentosdotrabalhodeumaturio.Nasoluodosproblemas
envolvendoessascontingncias,necessrioprocederalgunstiposdemediodosseus
efeitosatravsdosmtodosdetarifao.

64

Osmtodosdetarifaosoformasestudadasparaindicarovalorquedeverser
cobradoporumservioafimdequeestevalorcubraototaldegastosrelativosao
investimentoeaoperaodeservio.Hdiversosmtodos,comoprmiopuro,
sinistralidade,julgamentoousubjetivoeomtododastbuasbiomtricas,quesero
enfoquedestecaptulo.

AsTbuasBiomtricas,tambmconhecidascomotbuasdemortalidade,soum
mtododetarifaoutilizadocomoparmetroparatarifarosplanosdeprevidncia
abertacomplementar.Portanto,utilizadonosegurodePessoasedeanuidades,tratase
doinstrumentoquemedeaduraodavidahumana,ouseja,medeaprobabilidadede
sobrevivnciaedemorteouaprobabilidadedeentradaeminvalidez.Esta,podeserde
doistipos:tbuadeentradaeminvalidezoutbuademortalidadedeinvlidos.
Astbuasdemortalidadesoummtododeterminsticoporaplicaremfrmulas
determinsticaseprobabilidadesdemorteconstitudasapartirdeestudosestatsticos
prviosrealizadospelosaturios.Elassoconstrudasbaseadaseminformaesbrutasde
mortalidade,passandoinicialmenteporumprocessoestatsticoderegularizao,em
seguidaporumprocessodeajustamentoanalticoeporfimaplicaseumcarregamento
deseguranapositivo,seatbuaforparacoberturasderiscosounegativo,seatbuafor
paraclculodeanuidades.
Chamase de raiz da tbua o nmero inicial de pessoas da amostra a ser
observada.Eagrupamse5colunasparaaformaodatbua,demaneiraque:

x=idade

lx=nmerodepessoas

dx=nmerodepessoasmortascomidadex,ouseja,pessoasqueatingiramaidadex,
masnochegaramidadex+1

qx=probabilidadedeumapessoacomidadexmorrer,obrigatoriamente,antesdeatingira
idadex+1

px=probabilidadedeumapessoacomidadexsobreviveridadex+1,ouseja,a
probabilidadedeumapessoacom idadex,sobreviver,pelo menos,maisumano(chegar
idadex+1)

65

AplicaonoR

Para exemplo, criaremos agora uma funo no R que monte uma tbua de
mortalidadeconformeoscomandosabaixo:

Usaremoscomoparmetroasidadesde0at100anos.

idade<seq(0,100,5)
>
> qx<0.0001+0.0002*((idade^2)/10)
>
> px<1qx
>
>lx<NULL
>lx[1]<10^6
>for(iin2:length(idade)){
+ lx[i] < lx[i1]lx[i1]*qx[i1]}
>
>dx<NULL
>for(iin1:length(idade)){
+dx[i]<qx[i]*lx[i]}
>
> tabuabiometrica<data.frame(idade,qx,px,lx,dx) >
tabuabiometrica

idadeqx
px
lx
dx
1 0 0.0001 0.9999 1000000.0 100.000
2 5 0.0006 0.9994 999900.0 599.940
3 10 0.0021 0.9979 999300.1 2098.530
4 15 0.0046 0.9954 997201.5 4587.127
5 20 0.0081 0.9919 992614.4 8040.177
6 25 0.0126 0.9874 984574.2 12405.635
7 30 0.0181 0.9819 972168.6 17596.251
8 35 0.0246 0.9754 954572.3 23482.480
9 40 0.0321 0.9679 931089.9 29887.985
10 45 0.0406 0.9594 901201.9 36588.796
11 50 0.0501 0.9499 864613.1 43317.115
12 55 0.0606 0.9394 821296.0 49770.535
13 60 0.0721 0.9279 771525.4 55626.983
14 65 0.0846 0.9154 715898.4 60565.008
15 70 0.0981 0.9019 655333.4 64288.210
16 75 0.1126 0.8874 591045.2 66551.693
17 80 0.1281 0.8719 524493.5 67187.622

66

18 85 0.1446
19 90 0.1621
20 95 0.1806
211000.2001

0.8554
0.8379
0.8194
0.7999

457305.9
391179.5
327769.3
268574.2

66126.435
63410.193
59195.133
53741.688

67