Estou fazendo pesquisas no campo da resposta funcional dos ácaros. Gostaria de fazer uma regressão para estimar os parâmetros (taxa de ataque e tempo de manipulação) da função Rogers tipo II. Eu tenho um conjunto de dados de medidas. Como posso determinar melhor os valores discrepantes?
Para minha regressão, uso o seguinte script em R (uma regressão não linear): (o conjunto de datas é um arquivo de texto simples de 2 colunas chamado data.txt
arquivo com N0
valores (número de presas iniciais) e FR
valores (número de presas comidas durante 24 horas):
library("nlstools")
dat <- read.delim("C:/data.txt")
#Rogers type II model
a <- c(0,50)
b <- c(0,40)
plot(FR~N0,main="Rogers II normaal",xlim=a,ylim=b,xlab="N0",ylab="FR")
rogers.predII <- function(N0,a,h,T) {N0 - lambertW(a*h*N0*exp(-a*(T-h*N0)))/(a*h)}
params1 <- list(attackR3_N=0.04,Th3_N=1.46)
RogersII_N <- nls(FR~rogers.predII(N0,attackR3_N,Th3_N,T=24),start=params1,data=dat,control=list(maxiter= 10000))
hatRIIN <- predict(RogersII_N)
lines(spline(N0,hatRIIN))
summary(RogersII_N)$parameters
Para plotar os gráficos de resíduos calsésicos, utilizo o seguinte script:
res <- nlsResiduals (RogersII_N)
plot (res, type = 0)
hist (res$resi1,main="histogram residuals")
qqnorm (res$resi1,main="QQ residuals")
hist (res$resi2,main="histogram normalised residuals")
qqnorm (res$resi2,main="QQ normalised residuals")
par(mfrow=c(1,1))
boxplot (res$resi1,main="boxplot residuals")
boxplot (res$resi2,main="boxplot normalised residuals")
Questões
- Como posso determinar melhor quais pontos de dados são discrepantes?
- Existem testes que eu possa usar no R que sejam objetivos e me mostrem quais pontos de dados são discrepantes?
fonte
Para valores extremos univariados, há o teste da razão de Dixon e o teste de Grubbs assumindo a normalidade. Para testar um erro externo, é necessário assumir uma distribuição populacional, porque você está tentando mostrar que o valor observado é extremo ou incomum, proveniente da distribuição assumida. Tenho um artigo no American Statistician em 1982 que posso ter mencionado aqui antes, mostrando que o teste da proporção de Dixon pode ser usado em pequenas amostras, mesmo para algumas distribuições não normais. Chernick, MR (1982) "Uma nota sobre a robustez da proporção de Dixon em pequenas amostras" American Statistician p 140. Para outliers e outliers multivariados em séries temporais, funções de influência para estimativas de parâmetros são medidas úteis para detectar informalmente outliers (eu não sei de testes formais construídos para eles, embora esses testes sejam possíveis)."Outliers in Statistical Data" para tratamento detalhado dos métodos de detecção de outlier.
fonte
Veja http://www.waset.org/journals/waset/v36/v36-45.pdf , "Sobre a detecção externa em regressão não linear" [ sic ].
Abstrato
fonte
Um outlier é um ponto que está "muito longe" de "alguma linha de base". O truque é definir ambas as frases! Com a regressão não linear, não se pode apenas usar métodos univariados para ver se um outlier está "muito longe" da curva de melhor ajuste, porque o outlier pode ter uma influência enorme na própria curva.
Ron Brown e eu desenvolvemos um método único (que chamamos de ROUT - regressão robusta e remoção de outlier) para detectar os outliers com regressão não linear, sem deixar que o outlier afete muito a curva. Primeiro ajuste os dados com um método de regressão robusto, onde os valores extremos têm pouca influência. Isso forma a linha de base. Em seguida, use as idéias da taxa de descoberta falsa (FDR) para definir quando um ponto está "muito longe" dessa linha de base e, portanto, é um desvio. Finalmente, remove os valores discrepantes identificados e ajusta-se aos pontos restantes convencionalmente.
O método é publicado em um periódico de acesso aberto: Motulsky HJ e Brown RE, Detectando Outliers ao Ajustar Dados com Regressão Não Linear - um novo método baseado em regressão não linear robusta e taxa de descoberta falsa , BMC Bioinformatics 2006, 7: 123. Aqui está o resumo:
Não foi (até onde eu sei) implementado em R. Mas nós o implementamos no GraphPad Prism. e forneça uma explicação simples na ajuda do Prism .
fonte
Sua pergunta é muito geral. Não existe o melhor método para excluir os "outliers".
Você tinha que conhecer algumas propriedades dos "outliers". ou você não sabe qual método é o melhor. Depois de decidir qual método você deseja usar, é necessário calibrar os parâmetros do método cuidadosamente.
fonte