Mathematica moving average plot


Tenho alguns dados de tipo,. E deseja fazer ListContourPlot. No entanto, há um problema que os dados f não é suave o suficiente e tem pequenos erros. Aqui está um exemplo de brinquedo que ilustra o problema: eu precisaria suavizar as linhas na curva acima, para obter algo como Qualquer idéia para obter este tipo de gráfico liso Obrigado E aqui está a figura de dados reais (que é muito grande para colar Aqui), que eu preciso para suavizar: Eu acho que este segmento InterpolationOrder para ContourPlot relacionados. Mas eu era incapaz de obter o método de trabalho no meu caso por causa (eu acho) entrada diferente. Muito obrigado pelas respostas Essas respostas funcionam muito bem para o exemplo de brinquedo, mas para os dados reais eu ainda não consigo obter linhas suaves até agora (editar: até agora significa antes que os grandes atualizem suas respostas. Aqui está a minha função de dados e plotagem, apenas no caso de você gostaria de dar uma chance. Vou também investigar por que esses métodos interessantes não funcionam quando eu aplicá-lo aos dados. N. B. Seus dados reais exigem uma abordagem mais sofisticada do que o quick hack na minha resposta original, então eu a substituí por uma solução muito melhor e bastante geral. Há duas coisas que tornam seus dados reais mais difíceis de trabalhar do que o exemplo de brinquedo. Em primeiro lugar, é altamente irregular e não uniformemente distribuído e, segundo, tem uma proporção de aspecto horrível: Se os seus eixos x e y arent realmente coordenadas espaciais, mas representam quantidades independentes com unidades diferentes, você faria bem para reescalonar os dados para que, digamos , As variâncias ao longo de ambos os eixos são iguais: Agora, para suavizar uma função arbitrária não linear descrita por amostras ruidosas em locais irregularmente dispersos, creio que um modelo de regressão local (LOESS) é apropriado. Na verdade, LOESS é uma coisa geralmente útil, por isso vale a pena ter uma implementação disponível no Mathematica, e desde a sua bastante simples de implementar, fui em frente e fiz isso. Minha implementação segue Cleveland e Devlins 1988 papel. Isto é, regressão quadrática local com pesos tricúbicos, com excepção de q é o meu k. Agora podemos traçar os contornos da função de regressão, escalando as coordenadas de volta aos dados originais: Parece funcionar muito bem. Esta é provavelmente uma consequência de tomar o exemplo de brinquedo muito a sério, mas LinearModelFit parece ser uma boa escolha: Para um os dados fornecidos você pode obter algum uso de: Agora use este modelo linear: Não é tão ruim, é claro que você pode ajustar a base Utilizado conforme o caso. Em algum momento, se você tem as informações para criar um modelo não-linear que será melhor, é claro. Se eu entendo corretamente, seus dados reais não são lineares eo modelo provavelmente é desconhecido. Ndash Vitaliy Kaurov Apr 7 14 at 16:31 NonlinearModelFit também pode ser apropriado também. Em ambos os casos, eu suspeito que eles não querem quotsmoothquot tanto quanto caber. A imagem que eles mostram não parece terrível de modelo. Ndash chuy Apr 7 14 at 16:34 Eu estava pensando - como podemos média, mas sem perda de pontos Bem, podemos aleatoriamente amostra, interpolar e média - quantas vezes quisermos. Vamos dar uma olhada em dados mais complicados: 104 pontos. Agarre amostras por 1000 - e muitas dessas - e Interpolate - ListContourPlot anyways faz isso: Anyway - algo ao longo destas linhas. Bem, o que eu sugiro é brutalmente simples. Você quer algo melhor. Mas por causa do entretenimento do pensamento. Você obtém uma interpolação muito detalhada porque tem tantos pontos de dados. Reduza-os Você também pode usar a média móvel, mas também remove pontos: VitaliyKaurov. Muito obrigado pela resposta O método dataa b c realmente melhora a figura. Mas como você disse, alguns dados são perdidos e no meu exemplo real a qualidade ainda não é bom o suficiente. A maneira média móvel é adorável. No entanto, meu,. Lista não é realmente ordenada em x1 lt x2 lt x3. Mas em vez de uma forma aleatória. Assim MovingAverage não se aplica diretamente para a minha necessidade real. Além disso, o screencasting é incrível :) ndash Yi Wang 07 de abril 14 às 16: 33 eu tenho uma lista de pontos de dados ,. meus dados. Quando eu traçá-los, a curva é irregulares. Eu quero alisar a curva e preservar os dois cantos afiados. Este é um gráfico dos dados brutos. Eu tentei usar filtros de baixa passagem por uma semana, mas a curva ainda não é muito bom. Minha curva tem muitos ziguezagues. O seguinte é a minha função de filtro passa-baixa. Depois de avaliar o código acima, eu posso suavizar as três partes da curva em ziguezague separadamente. Então eu combiná-los. Como eu disse, a curva ainda não parece boa o suficiente. Algumas partes são alteradas de forma inadequada O que eu quero é algo como isto, que foi obtido por fazer um desenho :). Eu só quero usar alguns truques de enredo Mathematica ou alguma outra abordagem que me dê a curva suave que eu estou procurando. Perguntou Oct 10 14 at 13:04 Apenas um comentário alargado para começar. Vou tentar acompanhar com algum código mais tarde hoje ou durante o fim de semana. Isto soa como um trabalho perfeito para um filtro de Laguerre e muito provável um adaptativo, por exemplo. Laguerre Filtros Uma Introdução. Você pode encontrar muitas informações sobre este online. O Laguerre Filter suaviza um conjunto de dados baseado em polinômios de Laguerre. Seu primeiro termo, uma média móvel exponencial, seguido de certos termos de feedback. O alisamento é controlado por um fator alfa (o alfa para a média móvel exponencial) e também prejudica os termos adicionais. Alfa pode variar de 1 para seguir os dados quase exatamente para 0 para uma resposta muito lenta. O resultado dá a média ponderada dos valores passados. Um filtro laguerre adaptativo introduz um fator alfa variável com base em quão bem o filtro rastreia os valores de N passados. Isso deve permitir que o filtro para acompanhar os dados bastante estreitamente como ele muda de caráter sobre a extensão do eixo x. A função LaguerreL de Mathematicas pode tornar isto bastante fácil. Da documentação: Vou tentar postar algum código mais tarde. Resposta Olá, Jagra Obrigado por seu interessante também vou tentar Eu estou pensando que MovingAverage pode fazer este trabalho perfeitamente se pudermos controlar o peso para fazer a média na parte oscilante e seguir a minha curva perto Os dois pontos de inversão. Como você pode ver, com meu LowpassFilter ou GaussianFilter kale39s. Há uma mudança inadequada na parte direita da curva, onde a curva original é lisa ou suficientemente boa. Ndash may Oct 10 14 at 14:14 Heres uma abordagem bastante ham-fisted usando GaussianFilter: Primeiro, uma função de filtragem: Esta função aplica um filtro gaussiano para todos os dados maior que um determinado valor y. Podemos usá-lo da seguinte forma: Para jogar com os valores, podemos construir um simples Manipulate programa: Eu acho que o WienerFilter funciona melhor: respondeu Oct 10 14 at 13:52 Graças kale Como você pode ver, com o meu LowpassFilter ou seu GaussianFilter. Há uma mudança inadequada na parte direita da curva, onde a curva original é lisa ou suficientemente boa. Acho que o seu WienerFilter é relativamente bom. Mas ainda podemos melhorar. Poderia você pls afixar seu código de WienerFilter ndash 10 de outubro 14 em 14:21 Ixy apenas substitui GaussianFilter com WeinerFilter. Ndash kale Oct 10 14 at 14:22 Sua resposta 2017 Stack Exchange, IncForecasting com médias móveis exponenciais Para dados estacionários ou quase estacionários, a média móvel exponencial é um método simples para a previsão de séries temporais. Escolha entre a previsão ea suavização para ver a diferença entre eles é o parâmetro de suavização na média móvel exponencial e é o erro quadrático médio entre a previsão (curva vermelha) e os valores reais dos dados (curva azul). Maiores valores de causa menos suavização. COISAS A TENTAR DETALHES DOS INSTANTÂNEOS A previsão no tempo é dada por onde é o valor real da série temporal no tempo. Esta recursão começa em. Quando . A previsão é para todos os tempos e quando. A previsão é a última observação. Para obter mais informações sobre a previsão com métodos de suavização exponencial, consulte 1. Os alunos devem perguntar-se: existe alguma relação entre a aparência dos dados e o valor ótimo de previsão? Por que a média móvel exponencial não é um método de previsão muito bom para dados com um Tendência 1 SG Makridakis, SC Wheelwright, e RJ Hyndman, Previsão, Métodos e Aplicações. 3a ed. Hoboken, NJ: John Wiley ampères Sons, Inc. 1998. Idioma Wolfram. Wolfram Cloud Wolfram. Ciência de Wolfram,. Formato do Documento Computável,. Wolfram Engine, Idioma Wolfram. Wolfram Sistema de Compreensão da Linguagem Natural,. Wolfram Data Framework. Wolfram Universal Deployment System,,. Wolfram Knowledgebase,, WolframAlpha. Mathematica 11 raquo Mathematica,,. , Mathematica,, Mathematica Online. -. , Matemática . , Mathematica 5000, mdash, Mathematica. , , Matemática , , , , , , . Mathematica Wolfram, Linguagem Wolfram. , -, -. Matemática , . Matemática , , , . Linguagem de Wolfram do Mathematica,,. , Mathematica Wolfram Notebook Interface,,,,,,,. Língua Wolfram,. , Matemática , . 150 000 150000 Centro de Documentação 10000 Wolfram Demonstrations Project. Mathematica Wolfram Base de Conhecimento. . Matemática . - benzóico. Mathematica,: (180),, Wolfram Data Drop. API,,,. . Estou tentando suavizar um histograma 3D usando a média móvel em matemática. Eu sei que existe uma função chamada smoothhistogram3D, que está perto do que eu quero, no entanto, parece ter apenas a opção de usar funções de distribuição para suavizar a curva. Eu era capaz de criar uma função para suavização de um histograma 2D, modificando esta resposta stackoverflow para incluir um interpolationOrder eo recurso de média móvel. Eu tentei estendê-lo para a terceira dimensão usando o código abaixo, mas não tive sucesso. No entanto, a função 3D produz esta imagem usando meu conjunto de dados: imgur / MJeBbwW Eu tentei usar um método semelhante a este primeiro, exceto com uma opção para alisá-lo usando a média móvel: No entanto, ele enviou uma imagem como esta: Eu quero um Conjunto de dados que se assemelha muito à saída de smoothhistogram3D, mas com a opção de suavização com a média móvel. Qualquer sugestão Existe uma maneira mais simples Im não realizando Desculpe eu percebo que o código, especialmente a segunda peça, é pouco legível. Im novo para mathematica e estava apenas tentando fazê-lo funcionar. Esta é também minha primeira vez que afixa no estouro da pilha assim que por favor desculpa qualquer formatação ou erros da guia.

Comments

Popular posts from this blog

Como calcular a média móvel em sas

Forex ema 20 50

Binary options robot software