Mevsimsellik içermeyen yöntemlerin tahmin doğruluğunu değerlendirme
Veri biliminde, bir eğitim kümesi, olası ilişkileri keşfetmek için kullanılan bir veri kümesidir. Bir test kümesi ise bu potansiyel ilişkilerin gücünü doğrulamak için kullanılır. Bir veri kümesini bu parçalara ayırdığında, genelde verinin daha büyük kısmını eğitime, daha küçük kısmını teste ayırırsın.
Eğitim ve test kümeleri oluşturmak için kullanılabilecek fonksiyonlardan biri subset()'tir. Bu fonksiyon, isteğe bağlı start ve end argümanlarını indeks değerleriyle belirterek bir zaman serisinin alt kümesini döndürür.
> # x sayısal bir vektör veya zaman serisidir
> # 101'den 500'e kadar olan gözlemleri almak için
> train <- subset(x, start = 101, end = 500, ...)
> # İlk 500 gözlemi almak için
> train <- subset(x, end = 500, ...)
Videoda gördüğün gibi, bir diğer fonksiyon olan accuracy(), tahminler ve bunlara karşılık gelen gerçek gözlemler verildiğinde çeşitli tahmin doğruluğu istatistiklerini hesaplar. Eğer tahmin ettiğinden daha fazla gözlem verirsen, ilgili gözlemleri kendisi bulacak kadar akıllıdır.
> # f, "forecast" sınıfından bir nesnedir
> # x sayısal bir vektör veya zaman serisidir
> accuracy(f, x, ...)
Sunulan doğruluk ölçütleri arasında, ortalama karesel hatanın (MSE) karekökü olan kök ortalama karesel hata (RMSE) bulunur. RMSE'yi küçültmek (bu da doğruluğun artması demektir), MSE'yi küçültmekle aynıdır.
Önceden yüklenmiş gold zaman serisi, 1108 güne ait günlük altın fiyatlarından oluşur. Burada, ilk 1000 günü eğitim kümesi olarak kullanacak ve kalan 108 gün için tahminler oluşturacaksın. Bu tahminler, bu günlere ait gerçek değerlerle, bu bölümde daha önce kullandığın basit tahmin fonksiyonu naive() ve tüm gözlemlerin ortalamasına eşit tahminler veren meanf() kullanılarak karşılaştırılacaktır. Her ikisi için de, kaç değer için tahmin yapmak istediğini belirten h anahtar sözcüğünü belirtmen gerekecek.
Bu egzersiz, kursun bir parçasıdır
R ile Tahminleme
Egzersiz talimatları
subset()kullanarakgoldiçin ilk 1000 gözlemden oluşan bir eğitim kümesi oluştur. Bunatrainadını ver.- Kalan verileri içeren test kümesi için
naive()ile tahminler üret ve bununaive_fcdeğişkenine ata.hdeğerini buna göre ayarla. - Şimdi aynı test kümesi için
meanf()ile tahminler üret ve bunumean_fcdeğişkenine ata.hdeğerini buna göre ayarla. - İki yöntemin tahmin doğruluğu istatistiklerini
accuracy()fonksiyonuyla karşılaştır. - Yukarıdaki sonuçlara göre, doğruluğu daha yüksek olan tahminleri
bestforecastsolarak kaydet.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Create the training data as train
train <- subset(___, end = ___)
# Compute naive forecasts and save to naive_fc
naive_fc <- naive(___, h = ___)
# Compute mean forecasts and save to mean_fc
mean_fc <- meanf(___, h = ___)
# Use accuracy() to compute RMSE statistics
accuracy(___, gold)
___(___, gold)
# Assign one of the two forecasts as bestforecasts
bestforecasts <- ___