आवधिक डेटा फिट करने के लिए आवधिक विभाजन


10

इस सवाल के लिए एक टिप्पणी में , उपयोगकर्ता @whuber ने आवधिक डेटा को फिट करने के लिए आवृत्तियों के आवधिक संस्करण का उपयोग करने की संभावना का हवाला दिया। मैं इस पद्धति के बारे में अधिक जानना चाहूंगा, विशेष रूप से समीकरणों को परिभाषित करने वाले समीकरण, और उन्हें व्यवहार में कैसे लागू किया जाए (मैं ज्यादातर एक Rउपयोगकर्ता हूं, लेकिन मैं MATLAB या पायथन के साथ कर सकता हूं, अगर आवश्यकता होती है)। इसके अलावा, लेकिन यह "अच्छा है", त्रिकोणमितीय बहुपद फिटिंग के संबंध में संभावित फायदे / नुकसान के बारे में जानना बहुत अच्छा होगा, जो कि आमतौर पर मैं इस तरह के डेटा से निपटता हूं (जब तक कि प्रतिक्रिया बहुत चिकनी न हो,) जिस स्थिति में मैं आवधिक कर्नेल के साथ गौसियन प्रक्रिया पर स्विच करता हूं)।


2
मेरे अन्य सवालों के जवाब की जाँच करें। आँकड़े.स्टैकएक्सचेंज.com
Haitao Du

@ hxd1011 धन्यवाद, मैं टिप की सराहना करता हूं। अंत में मैंने केवल दो बार डेटा को डुप्लिकेट करने का निर्णय लिया, इस प्रकार समान डेटा के लगातार तीन सेट किए, और केंद्रीय तीसरे स्थान पर तंदुरुस्त किया। आपके द्वारा संदर्भित उत्तर, इसे वैकल्पिक समाधान के रूप में भी इंगित करता है।
19

1
@DeltaIV यदि आप अपनी टिप्पणी को एक उत्तर में बदल सकते हैं, और कुछ और विवरण प्रदान कर सकते हैं, तो मुझे लगता है कि यह एक अच्छा उत्तर है और कुछ संकल्प के लिए एक अच्छा प्रश्न है।
एडम 12

@ अदमो सुझाव के लिए धन्यवाद, लेकिन वर्ष के इस समय के दौरान मैं थोड़ा दलदला हूँ :-) मैं कोशिश करूँगा, यद्यपि। मुझे सबसे पहले उस कोड को पुनः प्राप्त करना चाहिए ...
DeltaIV

जवाबों:


5

स्प्लिन का उपयोग प्रतिगमन मॉडलिंग में संभवतः जटिल, गैर-रैखिक कार्यात्मक रूपों के मॉडल के लिए किया जाता है। एक तली-भुनी चिकनी प्रवृत्ति में टुकड़े-टुकड़े में निरंतर बहुपद होते हैं जिनके प्रमुख गुणांक प्रत्येक ब्रेकपॉइंट या गाँठ में होते हैं। स्पलाइन को प्रवृत्ति के बहुपद डिग्री के साथ-साथ ब्रेकप्वाइंट के रूप में निर्दिष्ट किया जा सकता है। एक कोवरिएट का एक तख़्ता प्रतिनिधित्व मैट्रिक्स में देखे गए मानों के एकल वेक्टर का विस्तार करता है जिसका आयाम बहुपद डिग्री और नॉट की संख्या है।

एक आवधिक splines के संस्करण केवल किसी भी प्रतिगमन की एक आवधिक संस्करण है: डेटा अवधि की लंबाई की प्रतिकृति में काटा जाता है। उदाहरण के लिए, चूहों पर एक बहुउद्देश्यीय प्रयोग में एक द्विअर्थी प्रवृत्ति को मॉडलिंग करने के लिए प्रयोग के समय में 24 घंटे की वृद्धि की आवश्यकता होती है, इसलिए 154 वें घंटे में 10 (154 = 6 * 24 + 10) के 24 मूल्य होंगे। यदि आप कट डेटा पर एक रेखीय प्रतिगमन फिट करते हैं, तो यह प्रवृत्ति के लिए एक आरा-दांत तरंग का अनुमान लगाएगा। यदि आप इस अवधि में कहीं एक कदम समारोह में फिट होते हैं, तो यह एक वर्ग तरंग होगा जो श्रृंखला को फिट करता है। तख़्ता बहुत अधिक परिष्कृत तरंगिका को व्यक्त करने में सक्षम है। splinesपैकेज में क्या है इसके लिए, एक फ़ंक्शन है periodicSplineजो वास्तव में ऐसा करता है।

मुझे व्याख्या के लिए उपयोगी आर के डिफ़ॉल्ट तख्तापलट "बी एस" कार्यान्वयन नहीं मिलता है। इसलिए मैंने नीचे अपनी स्क्रिप्ट लिखी। समुद्री मील के साथ डिग्री की एक , यह प्रतिनिधित्व पहले कॉलम को मानक बहुपद प्रतिनिधित्व देता है, कॉलम ( ) को केवल ) के रूप में मूल्यांकित किया जाता है। जहां समुद्री मील का वास्तविक वेक्टर है।पीnपीपी+मैंमैंnएसपी+मैं=(एक्स-मैं)पीमैं(एक्स<मैं)

myspline <- function(x, degree, knots) {
  knots <- sort(knots)
  val <- cbind(x, outer(x, knots, `-`))
  val[val < 0] <- 0
  val <- val^degree
  if(degree > 1)
    val <- cbind(outer(x, 1:{degree-1}, `^`), val)
  colnames(val) <- c(
    paste0('spline', 1:{degree-1}, '.1'),
    paste0('spline', degree, '.', seq(length(knots)+1))
  )
  val
}

एक छोटे से मामले के अध्ययन के लिए, 0 से (या ) के डोमेन पर एक साइनसोइडल प्रवृत्ति को प्रक्षेपित करें:2πτ

x <- seq(0, 2*pi, by=pi/2^8)
y <- sin(x)
plot(x,y, type='l')
s <- myspline(x, 2, pi)
fit <- lm(y ~ s)
yhat <- predict(fit)
lines(x,yhat)

आप देखेंगे कि वे काफी सुलझे हुए हैं। इसके अलावा, नामकरण सम्मेलन व्याख्या को सक्षम बनाता है। प्रतिगमन उत्पादन में आप देखते हैं:

> summary(fit)

Call:
lm(formula = y ~ s)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.04564 -0.02050  0.00000  0.02050  0.04564 

Coefficients:
             Estimate Std. Error  t value Pr(>|t|)    
(Intercept) -0.033116   0.003978   -8.326 7.78e-16 ***
sspline1.1   1.268812   0.004456  284.721  < 2e-16 ***
sspline2.1  -0.400520   0.001031 -388.463  < 2e-16 ***
sspline2.2   0.801040   0.001931  414.878  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.02422 on 509 degrees of freedom
Multiple R-squared:  0.9988,    Adjusted R-squared:  0.9988 
F-statistic: 1.453e+05 on 3 and 509 DF,  p-value: < 2.2e-16

मेरे spline1.1- डिग्री के लिए सहसंयोजकों का पहला सेट पहले ब्रेकपॉइंट के पीछे पहले डोमेन के लिए बहुपद प्रवृत्ति है। रेखीय शब्द मूल पर स्पर्शरेखा का ढलान है, एक्स = 0। यह लगभग 1 है जो साइनसोइडल वक्र (cos (0) = 1) के व्युत्पन्न द्वारा इंगित किया जाएगा, लेकिन हमें यह ध्यान रखना चाहिए कि ये अनुमानित हैं, और द्विघात प्रवृत्ति को से बाहर निकालने की त्रुटि का खतरा है त्रुटि के लिए। द्विघात शब्द एक नकारात्मक, अवतल आकार को इंगित करता है। Spline2.2 शब्द पहले द्विघात ढलान से एक अंतर को इंगित करता है, जो 0.4 सकारात्मक अग्रणी गुणांक का संकेत देता है, जो एक ऊर्ध्व, उत्तल आकृति को दर्शाता है। इसलिए अब हमारे पास तख़्ता आउटपुट के लिए उपलब्ध व्याख्या है और तदनुसार अनुमान और अनुमानों का न्याय कर सकते हैं।π/2

मैं यह मानकर चल रहा हूं कि आपको डेटा की आवधिकता का पता है। यदि डेटा में वृद्धि या चलती औसत घटक की कमी है, तो आप एक लंबी श्रृंखला को 1 अवधि की छोटी श्रृंखला की प्रतिकृति में बदल सकते हैं। अब आपके पास प्रतिकृति हैं और आवर्तक प्रवृत्ति का अनुमान लगाने के लिए डेटा विश्लेषण का उपयोग कर सकते हैं।

मान लीजिए कि मैं कुछ हद तक नीस उत्पन्न करता हूं, बहुत लंबी श्रृंखला:

x <- seq(1, 100, by=0.01)
y <- sin(x) + rnorm(length(x), 0, 10)
xp <- x %% (2*pi)
s <- myspline(xp, degree=2, knots=pi)
lm(y ~ s)

परिणामी आउटपुट उचित प्रदर्शन दिखाता है।

> summary(fit)

Call:
lm(formula = y ~ s)

Residuals:
    Min      1Q  Median      3Q     Max 
-39.585  -6.736   0.013   6.750  37.389 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.48266    0.38155  -1.265 0.205894    
sspline1.1   1.52798    0.42237   3.618 0.000299 ***
sspline2.1  -0.44380    0.09725  -4.564 5.09e-06 ***
sspline2.2   0.76553    0.18198   4.207 2.61e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.949 on 9897 degrees of freedom
Multiple R-squared:  0.006406,  Adjusted R-squared:  0.006105 
F-statistic: 21.27 on 3 and 9897 DF,  p-value: 9.959e-14
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.