İkinci sunumunuz haftanın günü gibi kategorik değişkenler için daha gelenekseldir.
Bu, sahte değişkenler oluşturma olarak da bilinir ve kategorik değişkenleri kodlamak için yaygın olarak kullanılan bir yöntemdir. 1-7 kodlaması kullandıysanız, modele 4. ve 5. günlerin çok benzer olduğunu, 1. ve 7. günlerin çok farklı olduğunu söylüyorsunuz. Aslında, 1. ve 7. günler 4. ve 5. günlerle aynıdır. Aynı mantık, ayın günleri için 0-30 kodlama için de geçerlidir.
Ayın günü biraz daha karmaşıktır, çünkü her hafta aynı 7 güne sahipken, her ay aynı 30 güne sahip değildir: bazı ayların 31 günü ve bazı ayların 28 günü vardır. Hem haftalar hem de aylar döngüsel olduğundan, onları düzgün doğrusal değişkenlere dönüştürmek için fourier dönüşümleri kullanabilirsiniz .
Örneğin ( R'yi kullanarak, tercih ettiğim programlama dili ):
day_of_month = c(1:31, 1:28, 1:30)
day_of_year <- 1:length(day_of_month)
s = sin((2*pi)/30*day_of_month)
c = cos((2*pi)/30*day_of_month)
plot(day_of_month ~ day_of_year)
lines(15*s+15 ~ day_of_year, col='blue')
lines(15*c+15 ~ day_of_year, col='red')
legend(10, 30, c('raw', 'sin', 'cos'), c('black', 'blue', 'red'))
(Sinüs / kosinüs değişkenlerini -1/1 yerine 0/30 olarak ölçeklendirdim, böylece grafik daha iyi görünüyor)
Gördüğünüz gibi, ham "ayın günü değişkeni" her ayın sonunda sıfıra geri dönerken, sinüs ve kosinüs dönüşümleri, modelin bir ayın sonundaki günlerin benzer olduğunu bildiren yumuşak bir geçiş yapar Bir sonraki ayın başında günler.
Fourier terimlerinin geri kalanını aşağıdaki gibi ekleyebilirsiniz:
for(i in 1:3){
s = sin((2*pi)/30*day_of_month + 30 * i/4)
c = cos((2*pi)/30*day_of_month + 30 * i/4)
lines(15*s+15 ~ day_of_year, col='blue')
lines(15*c+15 ~ day_of_year, col='red')
}
legend(10, 30, c('raw', 'sin', 'cos'), c('black', 'blue', 'red'))
Her sinüs / kosinüs dalgası çifti bir daire yapar:
m <- lapply(1:4, function(i){
as.matrix(
data.frame(
s = sin((2*pi)/30*day_of_month + 30 * i/4),
c = cos((2*pi)/30*day_of_month + 30 * i/4)
)
)
})
m <- do.call(cbind, m)
pairs(m)
Bu sayfa sinüs ve kosinüs dalgalarının nasıl işleneceğine dair gerçekten kullanışlı bir açıklamaya sahiptir.