Escolar Documentos
Profissional Documentos
Cultura Documentos
FaculdadedeAdministrao,CinciasContbeiseTurismo
DepartamentodeContabilidadeSTC
CursodeCinciasAtuariais
MtodosComputacionaisparaAturia
SoftwareEstatsticoLivreR
LucianaMarinhoSoaresGonalves
DownloaddoR
Apsaconclusododownload,oRaindadeveserinstaladoparaquepossacomeara
serusado.Paraisso,devemsedardoiscliquescomomousenoarquivobaixadoeseguiras
instruesdeinstalaodasfigurasabaixo:
InstalandooR:
Escolherapastaondesequersalvaroprograma:
PacotesdoR
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:
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.
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
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
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
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.
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.
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
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
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
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
>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
(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>
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:
45
Depoisdisso,devesecolocarosvaloresnatabela.Observe:
Apsmontaratabelacomosdadosdogrfico,deveseretornarjanelaoRCommander,
clicarnomenuGraphs,3DGrapheem3Dscatterplot....
46
47
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
52
2passocopiaroscontedosdoarquivoRcmdrmenus.txt:
Ecolarparadentrodoarquivodemesmonomequesituasenosubdiretrio/etcdopacoteR
Commander,acimadalinhamenuhelpMenutopMenu""""""
:
53
Salvandooemseguida:
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:
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:
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:
>#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:
>#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
Antecipada
R
C= i 1+i)
AplicaonoR
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