Suponha que eu tenha uma variável como X
com distribuição desconhecida. No Mathematica, usando a SmoothKernelDensity
função, podemos ter uma função de densidade estimada. Essa função de densidade estimada pode ser usada juntamente com a PDF
função para calcular a função de densidade de probabilidade de um valor como X
na forma de PDF[density,X]
assumir que "densidade" é o resultado de SmoothKernelDensity
. Seria bom se houvesse esse recurso no R.É assim que funciona no Mathematica
http://reference.wolfram.com/mathematica/ref/SmoothKernelDistribution.html
Como um exemplo (baseado nas funções do Mathematica):
data = RandomVariate[NormalDistribution[], 100]; #generates 100 values from N(0,1)
density= SmoothKernelDistribution[data]; #estimated density
PDF[density, 2.345] returns 0.0588784
Aqui você pode encontrar mais informações sobre PDF:
http://reference.wolfram.com/mathematica/ref/PDF.html
Eu sei que posso plotar sua função de densidade usando density(X)
em R e usando ecdf(X)
posso obter sua função de distribuição cumulativa empírica. É possível fazer a mesma coisa em R com base no que descrevi sobre o Mathematica?
Qualquer ajuda e idéia são apreciadas.
density(x)
fornece uma estimativa do pdf, como você já notou, mas sua adequação depende da finalidade para a qual você deseja ter a densidade. Observe, por exemplo, que a variação é tendenciosa (na execução da convolução, você adiciona a variação do kernel à variação dos dados, ela própria uma estimativa imparcial) - essas trocas de variação de variação são onipresentes. Existem outras alternativas, como a estimativa da densidade do log-spline, por exemplo - mas, novamente, sua adequação depende em parte do que você deseja fazer com ela.ecdf(X)
me dá o percentil equivalente a 7,5, mas não é o que estou procurando.ecdf(b)-ecdf(a)
Respostas:
?density
salienta que jáapprox
faz interpolação linear;?approx
salienta queapproxfun
gera uma função adequada:Ao usar a
integrate
partir de uma distância apropriada abaixo do mínimo na amostra (um múltiplo - digamos 4 ou 5, talvez - da largura de banda usadadf
geralmente faria para uma distância apropriada), é possível obter uma boa aproximação do cdf correspondente adf
.fonte
df(2.3)
fornece o valor da função de densidade estimada,x=2.3
mas o quePDF
faz no Mathematica está fornecendo a área sob a curva acimax=2.3
. Eu não tenho muita certeza disso. Isso é apenas o meu palpite. Você pode reproduzir o que eu fiz no Mathematica?PDF
no Mathematica, faz o que descreveu em sua resposta (ou seja, encontrar o valor da função de densidade para um determinado valor X), acho que recebi minha resposta. Apenas há muita confusão no uso de palavras!PDF
página diz que faz, ela retorna o mesmo tipo de coisa que eu faço, mas os métodos que ela usa em seu cálculo nesse caso provavelmente são um pouco mais precisos (para esse propósito, a precisão adicional tem pouco valor, no entanto). Para alguma discussão sobre a distinção probabilidade / densidade, veja aqui e aqui .