मुझे चिकनी तख़्ता / शतरंज प्रतिगमन का एक पी-मूल्य कैसे मिल सकता है?


10

मेरे पास कुछ चर हैं और मैं उनके बीच गैर-रैखिक संबंध खोजने के लिए इच्छुक हूं। इसलिए मैंने कुछ तख़्ता या लूप फिट करने का फैसला किया, और अच्छे प्लॉट प्रिंट किए (नीचे कोड देखें)। लेकिन, मैं कुछ आंकड़े भी रखना चाहता हूं, जिससे मुझे अंदाजा हो कि संबंध कितने बेतरतीब हैं ... यानी मुझे कुछ समग्र पी-वैल्यू की जरूरत है, जैसे मुझे उदाहरण के लिए रेखीय प्रतिगमन की आवश्यकता है। दूसरे शब्दों में, मुझे यह जानने की जरूरत है कि क्या फिट किए गए वक्र का कोई मतलब है, क्योंकि मेरा कोड किसी भी डेटा पर वक्र फिट होगा।

x <- rnorm(1000)
y <- sin(x) + rnorm(1000, 0, 0.5)

cor.test(x,y)
plot(x, y, xlab = xlab, ylab = ylab)
spl1 <- smooth.spline(x, y, tol = 1e-6, df = 8)
lines(spl1, col = "green", lwd = 2)

spl2 <- loess(y ~ x)
x.pr <- seq(min(x), max(x), length.out = 100)
lines(x.pr, predict(spl2, x.pr), col = "blue", lwd = 2)

जवाबों:


8

स्पाइन लाइब्रेरी में फ़ंक्शंस होते हैं bsऔर nsजो फंक्शन के साथ उपयोग करने के लिए स्प्लिन आधार बनाता है lm, फिर आप एक रेखीय मॉडल और एक मॉडल फिट कर सकते हैं जिसमें स्प्लिन भी शामिल है और anovaफुल और कम किए गए मॉडल टेस्ट करने के लिए फंक्शन का उपयोग करके यह देख सकते हैं कि क्या स्पाइन मॉडल बेहतर ढंग से फिट बैठता है रैखिक मॉडल की तुलना में।

यहाँ कुछ उदाहरण कोड है:

x <- rnorm(1000)
y <- sin(x) + rnorm(1000, 0, 0.5)

library(splines)

fit1 <- lm(y~x)
fit0 <- lm(y~1)
fit2 <- lm(y~bs(x,5))

anova(fit1,fit2)
anova(fit0,fit2)

plot(x,y, pch='.')
abline(fit1, col='red')
xx <- seq(min(x),max(x), length.out=250)
yy <- predict(fit2, data.frame(x=xx))
lines(xx,yy, col='blue')

आप polyएक बहुपद फिट करने के लिए फ़ंक्शन का उपयोग कर सकते हैं और वक्रता की परीक्षा के रूप में गैर-रैखिक शब्दों का परीक्षण कर सकते हैं।

R2

एक योग्य फिट के लिए एक आत्मविश्वास अंतराल की गणना और साजिश करने की तकनीकें हैं (मुझे लगता है कि ggplot2 पैकेज में एक अंतर्निहित तरीका हो सकता है), आप विश्वास बैंड की साजिश कर सकते हैं और देख सकते हैं कि क्या एक सीधी रेखा बैंड के भीतर फिट होगी (यह) एक पी-मूल्य नहीं है, लेकिन फिर भी हां / नहीं देता है।

आप एक रेखीय मॉडल को फिट कर सकते हैं और अवशिष्टों को ले सकते हैं और प्रतिक्रिया के रूप में अवशिष्टों के लिए एक loess मॉडल को फिट कर सकते हैं (और भविष्यवक्ता के रूप में रुचि का चर), यदि सही मॉडल रैखिक है तो यह फिट एक सपाट रेखा के करीब होना चाहिए और बिंदुओं को फिर से व्यवस्थित करना चाहिए। भविष्यवक्ता के सापेक्ष कोई अंतर नहीं होना चाहिए। आप एक क्रमचय परीक्षण बनाने के लिए इसका उपयोग कर सकते हैं। लॉयस को फ़िट करें, 0 से पूर्वानुमानित मूल्य को सबसे दूर खोजें, अब बेतरतीब ढंग से पॉइंट्स की अनुमति दें और एक नई लय को फिट करें और 0 से फ़र्स्टेस्टेड प्रेडिस्ड पॉइंट को ढूंढें, बार का एक गुच्छा दोहराएं, पी-वैल्यू उन परमिट मूल्यों का अनुपात है जो आगे हैं मूल मूल्य से 0 से।

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


धन्यवाद ग्रेग! मुझे लगता है कि 1 पैराग्राफ जाने के रास्ते के रूप में लगता है, सिवाय इसके कि मुझे रैखिक मॉडल की तुलना में कोई दिलचस्पी नहीं है, बस यह देखने के लिए कि क्या तख़्ता इसे समझाता है या नहीं। क्या आप कृपया कुछ कोड या अधिक ठोस संकेत प्रदान कर सकते हैं कि एनोवा के साथ स्पलाइन का परीक्षण कैसे करें? मैं bs और ns फ़ंक्शंस को देख रहा हूँ, लेकिन मैं आँकड़ों में इतना अच्छा नहीं हूँ कि मैं स्वयं इसका आविष्कार कर सकूँ।
उत्सुक

R2R2

anovaR2R21R2R21R2

ग्रेग, धन्यवाद! 1) क्या आप बता सकते हैं कि क्या lm(y~bs(x,5))कर रहा है और क्यों नहीं lm(y~I(bs(x,5)))? मैं इस कॉल से काफी भ्रमित हूं क्योंकि bs (x, 5) का परिणाम एक चर नहीं है ... 2) क्या मैं इसे सही ढंग से समझता हूं कि मैं जिस पी-वैल्यू की तलाश कर रहा हूं उसका परिणाम क्या है anova(fit0,fit2)?
जिज्ञासु

1
xx2x3bsxlm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.