Académique Documents
Professionnel Documents
Culture Documents
Resumo
No seguimento dum artigo anterior acerca da anlise de regresso no-linear (simples) utilizando a ferramenta Solver sentao do
R,
do Excel
e grca, atravs da sua aplicao na descrio de relaes estatsticas (no-lineares) entre variveis. Palavras-chave:
R,
Regresso no-linear.
Introduo
O
R (R Development Core Team, 2007) ao mesmo tempo uma linguagem de programao e um am-
biente para computao estatstica e grca. Trata-se de uma linguagem de programao especializada em computao com dados. Uma das suas principais caractersticas o seu carcter gratuito e a sua disponibilidade para uma gama bastante variada de sistemas operativos (vd. http://www.rproject.org). Apesar do seu carcter gratuito, o
capacidades ao nvel da programao e um conjunto bastante vasto (e em constante crescimento) de packages que acrescentam bastantes potencialidades j poderosa verso base do Contudo, o termo ambiente pretende caracterizar o
R (Torgo, 2006).
invs dum conjunto de ferramentas muito especcas e relativamente inexveis (Venables et al., 2006). O
R pode ser entendido como uma implementao da linguagem S desenvolvida por Rick Becker,
John Chambers e Allan Wilks nos Bell Laboratories (E.U.A.), que tambm constitui a base do software S-Plus
(vd. http://cran.r-project.org/manuals.html) e existem, actualmente, vrios livros que descrevem a utilizao do books.html), para anlise estatstica de dados (vd. http://www.r-project.org/doc/bib/R-
e.g. Dalgaard (2002) ou Crawley (2007). Na preparao deste artigo usei a verso
Esteves, E. (2010) Apresentao do R com um exemplo de anlise de regresso de Engenharia Superior da Universidade do Algarve, Faro, 10 p. [disponvel em
Citao recomendada:
no-linear. Instituto
http://w3.ualg.pt/eesteves, consultado em
data ]
2.5.0 (embora tenha sido disponibilizada recentemente a verso 2.11.1 do stalao (R-X.XX.X-win32.exe) para Microsoft Windows
R).
O cheiro de in-
project.org/bin/windows/base/ e o processo de instalao simples. Tambm existem verses para Mac OS e Unix/Linux, e 64-bit para Windows. O stio electrnico do projecto constitui a principal referncia do
que a maioria das estatsticas clssicas e muitas das metodologias mais recentes esto disponveis, embora os promotores preram pensar o implementadas (Venables et al., 2006).
parte do sistema bsico (os recommended packages), mas muitos outros esto disponveis atravs do CRAN (via http://CRAN.R-project.org) para instalao. Uma importante diferena entre a linguagem SAS
(e o
R)
SPSS
ou
) reside na (muito) menor quantidade de resultados apresentados para uma qualquer anlise
estatstica, embora os resultados sejam guardados em objectos para posterior consulta ou utilizao pelo noutras funes (Venables et al., 2006).
especializada em computao com dados, utilizando-a para analisar problemas cujo objectivo descrever relaes estatsticas (no-lineares) entre variveis. aspectos estatsticos dos resultados obtidos, apenas o cada).
y = f (x) +
em que
y a varivel dependente, x a varivel independente por vezes, controlada pelo f(x) uma funo que pode incluir um ou mais parmetros
investigador e
so os erros
aleatrios, independentes e com distribuio normal. Outra formulao, equivalente, (em que
y = f ( x)
f(x)
mais rigorosamente descrever aquela relao (Brown, 2001). Pretende-se ajustar a funo aos dados empricos de forma a minimizar os erros o(s) parmetro(s) da funo
= (yi y ).
mtodo dos mnimos quadrados. No caso de funes (ou modelos) no-lineares, e.g.
y = aexp(bx),
no possvel obter as estimativas dos parmetros num nico passo, como no caso de regresses lineares, pelo que a SQE minimizada atravs dum processo iterativo (cclico) utilizando um algoritmo apropriado que necessita dos valores iniciais dos parmetros
1995). Tradicionalmente, transformam-se as variveis de alguns modelos no-lineares de forma a linearizar a relao e a permitir a sua anlise atravs da regresso linear. Contudo, esta abordagem vlida se a(s) varivel(is) transformadas se vericam os pressupostos da anlise de regreso linear.
R Console.
Exemplo
A utilizao do
ferramenta Solver
com um exemplo concreto (entretanto abordado por Esteves, 2008, usando a do Microsoft Excel
ilustra-se na Figura
1. Para alm da barra de ferramentas no topo (que permite realizar as tarefas comuns: abrir/gravar cheiros, cortar/colar texto, instalar pacotes, gerir as janelas, etc.) surge uma janela (R na qual se introduzem os comandos, a seguir ao sinal >. Admita-se que os dados que se pretendem analisar esto num cheiro do Excel lugar, ser necessrio guardar uma verso (*.txt
Console )
. Em primeiro
R (devem
escrever (fazendo
Enter
no m),
<-).
Os parmetros
RegressaoNaoLinear.txt para o objecto dados. header e sep permitem considerar os rtulos dos dados R
atravs de
e o tipo de cheiro de texto (neste caso separado por tabulaes), respectivamente. Por sinal, a quantidade de dados envolvida poderia muito bem ser introduzida directamente no
c(...)
CO2
Prop)
plot
1 A extenso txt diz respeito a cheiros de texto separado por tabulaes enquanto a extenso csv est relacionada
com cheiros de texto separados por vrgulas.
Prop~CO2
Prop
em funo
CO2)
yy, xlim e ylim para determinar os limites dos eixos, pch para cex para aumentar o tamanho relativo dos caracteres, e xlab e ylab para
legendar os eixos) (Figura 2a). Para mais informaes acerca desta (ou qualquer outra) funo pode fazer-se
> ?plot
(ou ento procurar com
>help.search(termo)
ou,
ainda,
usar
opo
Help>
Apropos...).
Usando o boto direito do rato sobre o grco, possvel copiar a gura (como
metacheiro Windows
P =
em que
1 3
Pi
log (x)
o logaritmo do valor do
estmulo
ajuste incluir os resultados duma regresso no-linear (atravs da funo nls)2 3 do modelo Prop~(1/3+exp(B*(T-log10(CO2))))/(1+exp(B*(T-log10(CO2))) considerando os 4 dados (indicados para o parmetro data sob a forma de uma data.frame ) e as estimativas iniciais dos parmetros do modelo descritas em start (atravs duma list). Os resultados do ajuste > summary(ajuste)
possvel ilustrar o
ajuste,
Prop
(atravs da
funo
predict)
lines,
ou seja
ajuste permite obter as estimativas para 100 valores de CO2 entre 0 e 1000 (da o parmetro seq(1,1000,length=100) no comando acima) assim como os respectivos erros-padro (se.fit=T) que sero guardadas no objecto designado PropEsp. A adio duma linha espessa e magenta (lwd=2 e col=6) Figura 2a relativamente fcil (Figura 2b).
2 Outras
funes (muito) usadas so
lm
aov
respectivamente.
3 A denio dos modelos em S est minuciosamente descrita em Chambers and Hastie (1992). 4 Neste caso, considerou-se que o utilizador introduziu directamente no sistema os dados ao invs
data=dados,
4
de carregar o
no comando).
Figura 2: Diagramas de disperso da proporo de respostas vs. concentrao de CO2: dados originais (a); modelo dose-resposta (logstico modicado) (b); modelo dose-resposta com intervalos de 95% de conana (c); e modelo logstico (ver texto principal) (d).
R Console.
y t se(Y ),
recorrendo s funes
qt
e cujos parmetros so de e
1 /2, neste caso 0.975, e os graus de liberdade do erro, que se obtm summary(ajuste)$df[2]), summary(ajuste)$sigma para obter o erro-padro das estimativas lines, respectivamente (Figura 2c).
O modo mais simples de testar a bondade do ajuste representar gracamente os dados e o modelo ajustado (bem como os respectivos intervalos de conana), de modo a vericar (visualmente) se os parmetros obtidos numericamente descrevem, de facto, a relao entre variveis (Figura 2c). Por outro lado, a anlise grca dos resduos, e.g. resduos
vericar se o modelo adequado (os resduos representam apenas o erro experimental se no apresentam tendncias ou padres). Sendo assim, obter os resduos atravs de
> residuos<-summary(ajuste)$resid
e, em seguida, representar esse grco em conjunto com o (Figura 4)
> op<-par(mfrow=c(2,1),pty="s",las=1) > plot(residuos~predict(ajuste),pch=16,col=3,xlab="E{Proporo de respostas correctas}",ylab="Resduos") > abline(h=0) > qqnorm(residuos,pch=16,col=2,xlab= "Quantis da Distribuio Normal", ylab="Quantis Amostrais",main="") > qqline(residuos) > par(op) par permite estabelecer o esquema da gura, neste caso, os grcos cam arranjados em 2 linhas por 1 coluna mfrow=c(2,1) , assim como denir a respectiva forma (quadrada, atravs de pty="s" - s de square). Ao grco dos resduos vs. valores esperados de Prop (atravs de plot) acrescentmos uma linha horizontal ao nvel de zero (atravs de abline) e, por m, desenhamos o normal probability plot dos resduos (com qqnorm e qqline).
O comando possvel testar se os resduos se distribuem normalmente atravs, por exemplo, de
> shapiro.test(residuos)
O resultado deste comando
alerta para a reduzia potncia estatstica do testes baseados em sequncias. No carregar alguns pacotes,
R,
ser necessrio
tseries, quadprog
zoo
de ferramentas, a partir dos cheiros *.zip disponveis para o Windows project.org/bin/windows/contrib/) fazendo e.g.
em http://cran.at.r-
> library(tseries)
Depois basta fazer
> runs.test(factor(sign(residuos)))
para se obter o seguinte resultado
Runs Test data: factor(sign(residuos)) Standard Normal = 0.5774, p-value = 0.5637 alternative hypothesis: two.sided
Pode comparar-se o ajuste de dois modelos distintos a um dado conjunto de dados confrontando as SQE dos modelos ajustados atravs do teste de F. Sendo assim, depois de ajustar um modelo logstico,
5 Esta
> plot(Prop~CO2,las=1,xlim=c(0,1000), ylim=c(0,1),pch=16,cex=1.5, xlab="CO2 (ppm)",ylab="Propor o de respostas correctas") > PropEsper<-predict(ajustes,newdata= list(CO2=seq(0,1000,length=100)),se.fit=T) > lines(PropEsper~seq(0,1000,length= 100),lwd=2,col=6) > uppIC<-PropEsper+qt(.975,summary( ajustes)$df[2])*summary(ajustes)$sigm > lowIC<-PropEsper-qt(.975,summary( ajustes)$df[2])*summary(ajustes)$sigm > lines(uppIC~seq(0,1000,length=100), col=4) > lines(lowIC~seq(0,1000,length=100), col=4)
R.
> anova(ajuste,ajustes)
Os passos descritos anteriormente, i.e. uma sesso de trabalho (Figura 5), podem (e, na minha opinio, devem) ser guardados . Para isso, criar um cheiro de
script (atravs de
File>New
script),
carregado noutra sesso de trabalho (atravs de podem ser repetidos n-vezes (janela no stio electrnico do autor.
File>Open script...)
Para terminar uma sesso de trabalho, primeiro limpar da memria os objectos criados (com a funo
rm)
de trabalho):
Consideraes nais
ferramenta Solver
?)
da Microsoft (e da respectiva
ou
R.
Embora as caractersticas do
ito, o facto de ser uma ferramenta bastante poderosa com boas capacidades ao nvel da programao e um conjunto bastante vasto (e em constante crescimento) de
bastantes potencialidades estatsticas e grcas, o crescente interesse de utilizadores das mais variadas formaes (que se renem anualmente desde 2004 nas conferncias useR! em 2011 a useR!2011 decorrer no Reino-Unido,
cf. http://www.warwick.ac.uk/statsdept/useR-2011/) e a
disponibilidade dos promotores (R Development Core Team) e da comunidade de utilizadores, mais ou menos avanados, ajudam (e muito) esse processo. Os vrios manuais (http://cran.r-
(http://stat.ethz.ch/mailman/listinfo/r-help) permitem ultrapassar a (esmagadora) maioria das diculdades surgidas durante a utilizao do
R.
Agradecimentos
Este artigo muito beneciou dos comentrios, correces e sugestes dos colegas e leitores.
Referncias
Bowen, W., Jerman, J., 1995. Nonlinear regression using spreadsheets. Trends in Pharmacological Sciences 16, 413417. Brown, A. M., 2001. A step-by-step guide to non-linear regression analysis of experimental data using a microsoft excel spreadsheet. Computer methods and Programs in Biomedicine 65, 191 200. Chambers, J. M., Hastie, T. J., 1992. Statistical models in S. Chapman & Hall, London. Conover, W., 1999. Practical nonparametric statistics. John Wiley & Sons. Inc., New York. Crawley, M., 2007. The R book. Wiley, NY. URL
http://www.google.com/books?id=8D4HVx0apZQC
Dalgaard, P., 2002. Introductory statistics with R. Springer-Verlag New York Inc., New York. Esteves, E., 2010. Regresso no-linear utilizando a ferramenta solver
do microsoft excel
Instituto Superior de Engenharia, Universidade do Algarve, Faro, Portugal [disponvel em http://w3.ualg.pt/ eesteves.]. URL
http://w3.ualg.pt/~eesteves.
R Development Core Team, 2007. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria, ISBN 3-900051-07-0. URL
http://www.R-project.org
Torgo, L., 2006. Introduo programao em R. Faculdade de Economia da Universidade do Porto, Porto. Venables, W. N., Smith, D. M., Team, R. D. C., 2006. An Introduction to R (Notes on R: A Programming Environment for Data Analysis and Graphics). The R Foundation for Statistical Computing, Vienna, Austria. URL
http://cran.r-project.org/doc/manuals/R-intro.pdf
9