Relación con las transformadas de Fourier
El convolve
en R está utilizando una transformada de Fourier para calcular la convolución (esa es una fuente potencial de la diferencia, aunque no estoy seguro y no conozco los detalles).
$$ x * y = \mathcal{F}^{-1}\{\mathcal{F}\{x\} \cdot \mathcal{F}\{y\}\}$$
Pero más concretamente está utilizando el conjugado complejo, y así es como la operación vuelve la variable hacia atrás.
x = c(c(1,2,3,4),rep(0,4))
y = c(c(5,6,7,8),rep(0,4))
zx = fft(c(x))
zy = fft(c(y))
round(Re(fft(zx*Conj(zy), inverse = TRUE))/8)
round(Re(fft(zx*zy, inverse = TRUE))/8)
Que devuelve
[1] 70 56 39 20 0 8 23 44
[1] 5 16 34 60 61 52 32 0
No estoy seguro de por qué se utiliza el conjugado. Esta operación con el conjugado se relaciona con la convolución según
$$\mathcal{F}\{x(t) * y^*(-t)\} = \mathcal{F}\{x(t)\}\cdot\left(\mathcal{F}\{y(t)\}\right)^*$$
y si $y$ es real entonces $y = y^*$ . Y también se relaciona un poco con la correlación cruzada. En cuyo caso
$$\mathcal{F}\{x(t) * y(-t)\} = \mathcal{F}\{x(t)\}\cdot \left(\mathcal{F}\{y(t)\}\right)^*$$
Tenga en cuenta que R convolve
regula esto con un parámetro conj
que es verdadero por defecto y al establecerlo como falso se obtiene la convolución "normal".
convolve(x,y,conj=FALSE)
Indirectamente la pregunta podría verse como: "¿por qué R convolve
utilice conj = TRUE
como opción por defecto?"
Posible razón (histórica) de la diferencia
Por qué la función estándar de R para la convolución lo hace de forma inversa, o cómo llegó esto históricamente, no lo sé. Pero posiblemente el origen podría provenir del libro Series temporales: Análisis y teoría de datos de David R. Brillinger (1981), al que se hace referencia en la documentación de R. En el libro la convolución se produce de la siguiente manera:
Supongamos que los valores $X(t)$ y $Y(t)$ , $t=0,\dots,T-1$ están disponibles. A veces necesitaremos la convolución $$\sum_{0\leq {{t}\atop{t+u}} \leq T-1} X(t+u)Y(t) \quad u = 0, \pm 1, \dots \quad (3.6.1)$$
El término convolución se utiliza en un sentido más general, y más adelante en el texto se refieren a un caso específico de este tipo de convolución
Un caso en el que se podría requerir la convolución (3.6.1) es en la estimación de la función de momento $m_{12}(u) = E[X_1(t+u)X_2(t)]$ ...
También en las primeras descripciones del uso del algoritmo de la transformada rápida de Fourier (una referencia que aparece en Brillinger) utilizan la "convolución" en un sentido más amplio. En Transformadas rápidas de Fourier: para divertirse y beneficiarse AFIPS '66 (otoño): Proceedings of the November 7-10, 1966, fall joint computer conference, Gentleman and Sande write
... Hasta la fecha, los usos más importantes de la transformada rápida de Fourier han sido en relación con el teorema de convolución de la Tabla I. Algunos usos de las convoluciones numéricas son los siguientes:
Auto y covarianzas cruzadas: ...
...
...El primer uso importante del teorema de convolución, por parte de Sande, fue para calcular la autocovarianza...
Así que parece que, al menos en algunos círculos, la convolución tiene un significado más general y posiblemente los escritores de la función R encontraron la covarianza cruzada más útil para ser la norma (se menciona que es un uso importante).
Las diferencias en las convenciones también se producen (ya) para la transformación de Fourier
Como whuber señaló en los comentarios, la transformación de Fourier, de la que se puede derivar la convolución, no está definida de forma única. Hay varias convenciones para $a$ y $b$ en las fórmulas de transformación de Fourier y de transformación inversa de Fourier definidas a continuación:
$$\begin{array}{} \mathcal{F}(x) = \sqrt{\frac{|b|}{(2\pi)^{1-a}}} \int_{-\infty}^{\infty} f(t) e^{ibxt} \text{d}t \\ f(t) = \sqrt{\frac{|b|}{(2\pi)^{1+a}}} \int_{-\infty}^{\infty} \mathcal{F}(x) e^{-ibxt} \text{d}x \end{array}$$
y los diferentes campos utilizan diferentes parámetros $a$ y $b$ . El parámetro de escala $a$ no se relaciona mucho con la operación de "convolución", sino con la dirección/signo de $b$ pueden considerarse relacionados.
Personalmente me sigo preguntando si esta relación con las transformadas de Fourier (y sus ambiguas convenciones) es la razón por la que la función R es diferente.
Podemos utilizar las transformadas de Fourier para calcular una convolución, pero ¿debería ser esa la razón de la diversidad de convenciones de las convoluciones?
(Nota: En el caso de las transformadas de Fourier puede ser útil tener diferentes convenciones, dependiendo del campo. Porque las transformaciones de funciones particulares, que son más/menos relevantes dependiendo del campo, podrían tener alguna forma simple o no dependiendo de la convención).