Se assumirmos que nossos pontos de dados foram amostrados da superfície de uma esfera (com alguma perturbação), como podemos recuperar o centro dessa esfera?
Na minha pesquisa, encontrei artigos sobre algo rotulado como "regressão esférica", mas não parecia exatamente o que estava fazendo a mesma coisa. Talvez eu simplesmente não tenha entendido.
Existe uma fórmula simples, semelhante à regressão linear, que encontre um ponto central e raio da esfera que minimize a distância ao quadrado da soma de um conjunto de pontos de dados da superfície da esfera?
Editar 1:
Podemos supor que o ruído seja 2 ou 3 ordens de magnitude menor que o raio da esfera e uniformemente esférico gaussiano. No entanto, as próprias amostras definitivamente não serão coletadas uniformemente da superfície da esfera, mas provavelmente serão agrupadas em algumas manchas na superfície, provavelmente todas dentro de um hemisfério. Uma solução que funciona para dados em é boa, mas uma solução geral para dimensionalidade arbitrária também é ótima.
Edição 2:
Quais são as chances de que eu possa obter uma resposta sensata se usar regressão linear, , no espaço tridimensional, fingindo que os componentes ao quadrado são independentes dos outros parâmetros:
Na melhor das hipóteses, suponho que minha métrica de erro seja um pouco maluca. Na pior das hipóteses, a solução nem será consistente.
... ou isso é bobagem, porque com quatro colunas idênticas, obtemos uma matriz singular quando tentamos fazer regressão.
Edição 3:
Então, parece que estas são as minhas opções:
- Otimização numérica não linear usando alguma função de custo:
- Hough-transform: discretize o espaço plausível ou os possíveis centros e raios em torno dos pontos de dados. Cada ponto vota nos centros em potencial dos quais ele poderia fazer parte em cada discretização de raio específico. A maioria dos votos vence. Isso pode ser bom se houver um número potencialmente desconhecido de esferas, mas com apenas uma é uma solução confusa.
- Selecione aleatoriamente (ou sistematicamente) grupos de 4 pontos e calcule analiticamente o centro . Rejeite a amostragem se estiver mal condicionada (os pontos são quase co-planares). Rejeite valores discrepantes e encontre o centro médio. A partir disso, podemos encontrar o raio médio.
Alguém tem um método melhor?
fonte
Respostas:
Aqui está um
R
código que mostra uma abordagem usando menos quadrados:Se você não usar
R
, ainda poderá seguir a lógica e traduzi-la para outro idioma.Tecnicamente, o parâmetro radius deve ser delimitado por 0, mas se a variabilidade for pequena em relação ao raio verdadeiro, o método ilimitado deve funcionar bem ou o optim tem opções para fazer a otimização delimitada (ou você pode simplesmente fazer o valor absoluto de raio na função para minimizar).
fonte