series_fit_poly()

Bağımsız değişkenden (x_series) bağımlı değişkene (y_series) polinomsal regresyon uygular. Bu işlev birden çok seri (dinamik sayısal diziler) içeren bir tablo alır ve polinomsal regresyon kullanarak her seri için en uygun yüksek sıralı polinom oluşturur.

İpucu

  • Düz aralıklı serilerin, seri yapma işleci tarafından oluşturulduğu şekilde doğrusal regresyonu için series_fit_line() daha basit işlevini kullanın. Bkz . Örnek 2.
  • x_series sağlanırsa ve regresyon yüksek bir derece için yapılırsa, [0-1] aralığına normalleştirmeyi göz önünde bulundurun. Bkz. Örnek 3.
  • x_series tarih saat türündeyse, çifte dönüştürülmeli ve normalleştirilmelidir. Bkz. Örnek 3.
  • Satır içi Python kullanarak polinomsal regresyonun başvuru uygulaması için bkz. series_fit_poly_fl().

Syntax

T | extend series_fit_poly(y_series [,x_series,derece ])

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
y_series dynamic ✔️ Bağımlı değişkeni içeren sayısal değerler dizisi.
x_series dynamic Bağımsız değişkeni içeren sayısal değerler dizisi. Yalnızca eşit aralıklı olmayan seriler için gereklidir. Belirtilmezse, [1, 2, ..., length(y_series)] varsayılan değerine ayarlanır.
Derece Polinomların uyması için gereken sıra. Örneğin, doğrusal regresyon için 1, ikinci dereceden regresyon için 2 vb. Doğrusal regresyonu gösteren varsayılan değer 1'tir.

Döndürülenler

series_fit_poly() işlevi aşağıdaki sütunları döndürür:

  • rsquare: r-square , uygun kalitenin standart bir ölçüsüdür. Değer [0-1] aralığındaki bir sayıdır; burada 1 - mümkün olan en uygun değerdir, 0 ise verilerin sıralı olmadığı ve herhangi bir satıra uymadığı anlamına gelir.
  • coefficients: Verilen derece ile en iyi uydurulan polinom katsayılarını tutan sayısal dizi, en yüksek güç katsayısından en düşüke sıralanmış.
  • variance: Bağımlı değişkenin varyansı (y_series).
  • rvariance: Giriş veri değerleri arasındaki varyans olan artık varyans, yaklaşık değerlerdir.
  • poly_fit: En iyi uydurulan polinom değerinin bir dizi değerini tutan sayısal dizi. Seri uzunluğu, bağımlı değişkenin uzunluğuna eşittir (y_series). Değer grafik oluşturma için kullanılır.

Örnekler

Örnek 1

x & y eksenlerinde kirlilik içeren beşinci sıra polinom:

range x from 1 to 200 step 1
| project x = rand()*5 - 2.3
| extend y = pow(x, 5)-8*pow(x, 3)+10*x+6
| extend y = y + (rand() - 0.5)*0.5*y
| summarize x=make_list(x), y=make_list(y)
| extend series_fit_poly(y, x, 5)
| project-rename fy=series_fit_poly_y_poly_fit, coeff=series_fit_poly_y_coefficients
|fork (project x, y, fy) (project-away x, y, fy)
| render linechart 

Gürültü içeren bir seriye beşinci sırada polinom uyumu gösteren grafik.

Beşinci sıra polinomunun katsayıları kirlilik içeren bir seriye sığar.

Örnek 2

derece=1 ile eşleştiklerini series_fit_polyseries_fit_linedoğrulayın:

demo_series1
| extend series_fit_line(y)
| extend series_fit_poly(y)
| project-rename y_line = series_fit_line_y_line_fit, y_poly = series_fit_poly_y_poly_fit
| fork (project x, y, y_line, y_poly) (project-away id, x, y, y_line, y_poly) 
| render linechart with(xcolumn=x, ycolumns=y, y_line, y_poly)

Doğrusal regresyonu gösteren grafik.

Doğrusal regresyon katsayıları.

Örnek 3

Düzensiz (eşit aralıksız) zaman serisi:

//
//  x-axis must be normalized to the range [0-1] if either degree is relatively big (>= 5) or original x range is big.
//  so if x is a time axis it must be normalized as conversion of timestamp to long generate huge numbers (number of 100 nano-sec ticks from 1/1/1970)
//
//  Normalization: x_norm = (x - min(x))/(max(x) - min(x))
//
irregular_ts
| extend series_stats(series_add(TimeStamp, 0))                                                                 //  extract min/max of time axis as doubles
| extend x = series_divide(series_subtract(TimeStamp, series_stats__min), series_stats__max-series_stats__min)  // normalize time axis to [0-1] range
| extend series_fit_poly(num, x, 8)
| project-rename fnum=series_fit_poly_num_poly_fit
| render timechart with(ycolumns=num, fnum)

Düzensiz bir zaman serisine sekizinci sıra polinom uyumu gösteren grafik.