एक महत्वपूर्ण परिणाम प्राप्त करने तक डेटा एकत्र करना टाइप I त्रुटि दर में वृद्धि क्यों करता है?


60

मैं वास्तव में सोच रहा था कि एक महत्वपूर्ण परिणाम (जैसे, ) प्राप्त होने तक डेटा क्यों एकत्र किया जाता है (यानी, पी-हैकिंग) टाइप I त्रुटि दर को बढ़ाता है?p<.05

मैं Rइस घटना के प्रदर्शन की भी बहुत सराहना करूंगा ।


6
आप शायद "पी-हैकिंग" का मतलब है, क्योंकि "नुकसान पहुंचाने" से तात्पर्य "हाइपोथिसाइजिंग आफ्टर रिजल्ट्स नोज" से है और, हालांकि इसे संबंधित पाप माना जा सकता है, यह वह नहीं है जिसके बारे में आप पूछ रहे हैं।
whuber

2
एक बार फिर, xkcd चित्रों के साथ एक अच्छे प्रश्न का उत्तर देता है। xkcd.com/882
जेसन

7
@ जेसन मुझे आपके लिंक से असहमत होना है; डेटा के संचयी संग्रह के बारे में बात नहीं करता है। तथ्य यह है कि एक ही चीज़ के बारे में डेटा का संचयी संग्रह और सभी डेटा का उपयोग करने के लिए आपको -value की गणना करना गलत है, उस xkcd के मामले की तुलना में बहुत अधिक nontrivial है। p
जीके

1
@ जय, निष्पक्ष कॉल। मैं "तब तक कोशिश करता रहा, जब तक हमें कोई ऐसा परिणाम नहीं मिल जाता, जब तक हमें वह पसंद नहीं आता" पहलू पर ध्यान केंद्रित किया जाता, लेकिन आप बिल्कुल सही हैं, हाथ में इस सवाल के लिए बहुत कुछ है।
जेसन

@whuber और user163778 ने इस धागे में "ए / बी (अनुक्रमिक) परीक्षण" के व्यावहारिक रूप से समान मामले के लिए चर्चा के समान जवाब दिए: आंकड़े ।stackexchange.com / questions / 244646/…। वहाँ, हमने परिवार की समझदारी त्रुटि के संदर्भ में तर्क दिया है बार-बार परीक्षण में पी-मूल्य समायोजन के लिए दर और आवश्यकता। वास्तव में इस प्रश्न को बार-बार परीक्षण समस्या के रूप में देखा जा सकता है!
टमका

जवाबों:


87

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

मैं आपको देखने के लिए फ्लिप करूंगा कि रात के खाने के लिए कौन भुगतान करता है।

ठीक है, मैं सिर कहता हूं।

चूहों, तुम जीत गए। तीन में से सर्वश्रेष्ठ दो?


इसे बेहतर समझने के लिए, इस क्रमिक प्रक्रिया के एक सरलीकृत लेकिन यथार्थवादी - मॉडल पर विचार करें । मान लीजिए कि आप एक निश्चित संख्या में टिप्पणियों के "ट्रायल रन" के साथ शुरू करेंगे, लेकिन से कम पी-मूल्य प्राप्त करने के लिए लंबे समय तक प्रयोग जारी रखने के लिए तैयार हैं । अशक्त परिकल्पना यह है कि प्रत्येक अवलोकन एक मानक सामान्य वितरण से (स्वतंत्र रूप से) आता है। विकल्प यह है कि स्वतंत्र रूप से एक यूनिट- सामान्य वितरण से एक आता है। परीक्षण आँकड़ा सभी अवलोकनों का माध्यम होगा, , उनकी मानक त्रुटि, द्वारा विभाजित । दो तरफा परीक्षण के लिए, महत्वपूर्ण मूल्य हैंएक्स मैं एक्स मैं n ˉ एक्स 1 / 0.05XiXinX¯ 0.0250.975जेडα=±1.961/n0.025मानक सामान्य वितरण के और प्रतिशत अंक, लगभग।0.975Zα=±1.96

यह एक अच्छा परीक्षण है - निश्चित नमूना आकार साथ एक एकल प्रयोग । यह वास्तव में एक है शून्य परिकल्पना को खारिज, कोई बात नहीं क्या की संभावना हो सकता है।5 % एनn5%n

आइए बीजगणितीय रूप से इसे सभी मानों, के योग के आधार पर समतुल्य परीक्षण मेंएस एन = एक्स 1 + एक्स 2 + + एक्स n = n ˉ एक्सn

Sn=X1+X2++Xn=nX¯.

इस प्रकार, जब डेटा "महत्वपूर्ण" होता है

|Zα||X¯1/n|=|Snn/n|=|Sn|/n;

अर्थात्,

(1)|Zα|n|Sn|.

अगर हम होशियार हैं, तो हम अपने नुकसान में कटौती करेंगे और एक बार बड़ा हो जाएगा और डेटा अभी भी महत्वपूर्ण क्षेत्र में प्रवेश नहीं किया है।n

यह एक यादृच्छिक चलना वर्णन करता है । रैंडम वॉक के प्लॉट के चारों ओर एक घुमावदार परवलयिक "बाड़", या बैरियर को खड़ा करने के लिए सूत्र मात्रा है : यदि रैंडम वॉक के किसी भी बिंदु से बाड़ हिट होती है, तो परिणाम "महत्वपूर्ण" है । ( 1 ) ( एन , एस एन )Sn(1)(n,Sn)

यह यादृच्छिक चलता की एक संपत्ति है कि अगर हम लंबे समय तक इंतजार करते हैं, तो यह बहुत संभावना है कि कुछ बिंदु पर परिणाम महत्वपूर्ण दिखाई देगा।

यहाँ नमूनों की सीमा तक 20 स्वतंत्र सिमुलेशन हैं। वे सभी नमूनों पर परीक्षण करना शुरू करते हैं, जिस बिंदु पर हम जांचते हैं कि क्या प्रत्येक बिंदु सूत्र अनुसार खींची गई बाधाओं के बाहर है । जिस बिंदु पर सांख्यिकीय परीक्षण पहले "महत्वपूर्ण" है, नकली डेटा लाल रंग का है।n = 30 ( 1 )n=5000n=30(1)

आकृति

आप देख सकते हैं कि क्या चल रहा है: रैंडम वॉक ऊपर और नीचे बढ़ता है और बढ़ जाता है। बाधाओं को एक ही दर से अलग-अलग फैलाया जा रहा है - लेकिन इतनी तेजी से नहीं कि हमेशा यादृच्छिक चलने से बचें।n

इन सिमुलेशन के 20% में, एक "महत्वपूर्ण" अंतर पाया गया - आमतौर पर काफी जल्दी - भले ही उनमें से हर एक में परिकल्पना बिल्कुल सही है! इस प्रकार के अधिक सिमुलेशन चलाने से संकेत मिलता है कि असली परीक्षण आकार के इच्छित मूल्य के बजाय करीब है : अर्थात, नमूने के आकार तक "महत्व" की तलाश में रहने की आपकी इच्छा नल के सत्य होने पर भी आपको शून्य को अस्वीकार करने का मौका देता है।α = 5 % 5000 25 %25%α=5%500025%

ध्यान दें कि सभी चार "महत्वपूर्ण" मामलों में, जैसा कि परीक्षण जारी रहा, कुछ बिंदुओं पर डेटा महत्वपूर्ण दिखना बंद हो गया । वास्तविक जीवन में, एक प्रयोगकर्ता जो जल्दी रुक जाता है, ऐसे "उलटफेर" का निरीक्षण करने का मौका खो रहा है। वैकल्पिक रोक के माध्यम से यह चयनात्मकता परिणामों को पूर्वाग्रहित करती है।

ईमानदार-से-अच्छाता अनुक्रमिक परीक्षणों में, बाधाएं लाइनें हैं। वे यहां दिखाए गए घुमावदार बाधाओं की तुलना में तेजी से फैलते हैं।

library(data.table)
library(ggplot2)

alpha <- 0.05   # Test size
n.sim <- 20     # Number of simulated experiments
n.buffer <- 5e3 # Maximum experiment length
i.min <- 30     # Initial number of observations
#
# Generate data.
#
set.seed(17)
X <- data.table(
  n = rep(0:n.buffer, n.sim),
  Iteration = rep(1:n.sim, each=n.buffer+1),
  X = rnorm((1+n.buffer)*n.sim)
)
#
# Perform the testing.
#
Z.alpha <- -qnorm(alpha/2)
X[, Z := Z.alpha * sqrt(n)]
X[, S := c(0, cumsum(X))[-(n.buffer+1)], by=Iteration]
X[, Trigger := abs(S) >= Z & n >= i.min]
X[, Significant := cumsum(Trigger) > 0, by=Iteration]
#
# Plot the results.
#
ggplot(X, aes(n, S, group=Iteration)) +
  geom_path(aes(n,Z)) + geom_path(aes(n,-Z)) +
  geom_point(aes(color=!Significant), size=1/2) +
  facet_wrap(~ Iteration)

12
nO(n)2/π

10
n=5,000,000α=0.051/4

4
α=0.05n

6
p<0.05n1=10nk+1=10nkpnk+1pnkp<0.0510nkA(nk)BB(nk)

10
@CL। मैंने कई साल पहले आपकी आपत्ति का अनुमान लगाया था: 17 मेरा सार्वजनिक बीज है। वास्तव में, शुरुआती (बहुत लंबे समय तक) परीक्षणों में मुझे लगातार 20% से अधिक महत्वपूर्ण महत्व की बड़ी दरें प्राप्त हो रही थीं । मैंने अंतिम छवि बनाने के लिए बीज को 17 पर सेट किया और निराश था कि प्रभाव इतना नाटकीय नहीं था। C'est la vie। एक संबंधित पोस्ट (आपकी बात को दर्शाते हुए) आँकड़े.स्टैकएक्सचेंज . com / a / 38067 / 919 पर है
whuber

18

जो लोग परिकल्पना परीक्षण के लिए नए हैं, वे सोचते हैं कि एक बार एपी मान .05 से नीचे चला जाता है, अधिक प्रतिभागियों को जोड़ने से केवल पी मूल्य में और कमी आएगी। लेकिन यह सच नहीं है। अशक्त परिकल्पना के तहत, एपी मान 0 और 1 के बीच समान रूप से वितरित किया जाता है और उस सीमा में लगभग थोड़ा सा उछल सकता है।

मैंने R में कुछ डेटा का अनुकरण किया है (मेरे आर कौशल काफी बुनियादी हैं)। इस सिमुलेशन में, मैं 5 डेटा अंक एकत्र करता हूं - प्रत्येक एक यादृच्छिक चयनित समूह सदस्यता (0 या 1) के साथ और प्रत्येक एक यादृच्छिक रूप से चयनित परिणाम माप ~ एन (0,1) के साथ। प्रतिभागी 6 पर शुरू करते हुए, मैं हर पुनरावृत्ति पर एक टी-टेस्ट आयोजित करता हूं।

for (i in 6:150) {
  df[i,1] = round(runif(1))
  df[i,2] = rnorm(1)
  p = t.test(df[ , 2] ~ df[ , 1], data = df)$p.value
  df[i,3] = p
}

P मान इस आकृति में हैं। ध्यान दें कि जब नमूना आकार 70-75 के आसपास होता है तो मुझे महत्वपूर्ण परिणाम मिलते हैं। अगर मैं वहां रुकता हूं, तो मैं यह निश्चय करूंगा कि मेरे निष्कर्ष महत्वपूर्ण हैं क्योंकि मैं इस तथ्य को याद करूंगा कि मेरे पी मान एक बड़े नमूने के साथ वापस कूद गए (यह वास्तव में मेरे साथ वास्तविक डेटा के साथ एक बार हुआ था)। चूंकि मुझे पता है कि दोनों आबादी में 0 का मतलब है, यह एक गलत सकारात्मक होना चाहिए। यह p <.05 तक डेटा जोड़ने के साथ समस्या है। यदि आप पर्याप्त परीक्षण करते हैं, तो पी अंततः अंततः .05 सीमा को पार कर जाएगा और आप पा सकते हैं एक महत्वपूर्ण प्रभाव किसी भी डेटा सेट है।

यहाँ छवि विवरण दर्ज करें


1
धन्यवाद, लेकिन आपका Rकोड बिल्कुल नहीं चलता है।
रेजा

3
@ रेज़ा आपको dfपहले बनाना होगा (अधिमानतः इसके अंतिम आकार पर)। जब से कोड 6 पंक्ति में लिखना शुरू होता है, तो निहितार्थ (जो उत्तर के पाठ के साथ फिट बैठता है) यह है कि df पहले से ही 5 पंक्तियों के साथ पहले से ही मौजूद है, शायद कुछ इस तरह का इरादा था: n150<-vector("numeric",150); df<-data.frame(gp=n150,val=n150,pval=n150); init<-1:5; df[init,1]<-c(0,1,0,1,0); df[init,2]<-rnorm(5)(फिर ऊपर दिए गए कोड को चलाएं) तो शायद: plot(df$pv[6:150])
Glen_b

@ user263778 बहुत ध्यान केंद्रित उपयोगी और प्रासंगिक जवाब। लेकिन इसके अलावा पी-मूल्य की व्याख्या करने के बारे में बहुत भ्रम है - तथाकथित नाच सौंदर्य।
सुभाष सी। डावर

@ user163778 - आपको सब कुछ आरंभ करने के लिए कोड भी शामिल करना चाहिए
दासॉन

17

यह उत्तर केवल अंततः "महत्वपूर्ण" परिणाम प्राप्त करने की संभावना और @ व्ह्यूबर मॉडल के तहत इस घटना को समय के वितरण की चिंता करता है।

S(t)=X1+X2++XttX1,X2,

(1)S(t+h)|S(t)=s0N(s0,h),
S(t)

TS(t)±zα/2t

Y(τ)S(t)tτ=lnt

(2)Y(τ)=S(t(τ))t(τ)=eτ/2S(eτ).
Y(τ+δ)
E(Y(τ+δ)|Y(τ)=y0)=E(e(τ+δ)/2S(eτ+δ)|S(eτ)=y0eτ/2)(3)=y0eδ/2
Var(Y(τ+δ)|Y(τ)=y0)=Var(e(τ+δ)/2S(eτ+δ)|S(eτ)=y0eτ/2)(4)=1eδ,
Y(τ)

यहाँ छवि विवरण दर्ज करें

±zα/2TY(τ)λ±zα/2λ^=0.125α=0.05ατ=0H0T=eT

(5)ET1+(1α)0eτλeλτdτ.
Tλ>1α

TETtt+1t

P(T>t)

यहाँ छवि विवरण दर्ज करें

आर कोड:

# Fig 1
par(mfrow=c(1,2),mar=c(4,4,.5,.5))
set.seed(16)
n <- 20
npoints <- n*100 + 1
t <- seq(1,n,len=npoints)
subset <- 1:n*100-99
deltat <- c(1,diff(t))
z <- qnorm(.975)
s <- cumsum(rnorm(npoints,sd=sqrt(deltat)))
plot(t,s,type="l",ylim=c(-1,1)*z*sqrt(n),ylab="S(t)",col="grey")
points(t[subset],s[subset],pch="+")
curve(sqrt(t)*z,xname="t",add=TRUE)
curve(-sqrt(t)*z,xname="t",add=TRUE)
tau <- log(t)
y <- s/sqrt(t)
plot(tau,y,type="l",ylim=c(-2.5,2.5),col="grey",xlab=expression(tau),ylab=expression(Y(tau)))
points(tau[subset],y[subset],pch="+")
abline(h=c(-z,z))

# Fig 2
nmax <- 1e+3
nsim <- 1e+5
alpha <- .05
t <- numeric(nsim)
n <- 1:nmax
for (i in 1:nsim) {
  s <- cumsum(rnorm(nmax))
  t[i] <- which(abs(s) > qnorm(1-alpha/2)*sqrt(n))[1]
}
delta <- ifelse(is.na(t),0,1)
t[delta==0] <- nmax + 1
library(survival)
par(mfrow=c(1,1),mar=c(4,4,.5,.5))
plot(survfit(Surv(t,delta)~1),log="xy",xlab="t",ylab="P(T>t)",conf.int=FALSE)
curve((1-alpha)*exp(-.125*(log(x))),add=TRUE,col="red",from=1,to=nmax)

धन्यवाद! क्या आपके पास इन परिणामों के लिए कोई (मानक) संदर्भ हैं? उदाहरण के लिए, वाई क्यों एक ओर्निस्टीन-उहलेनबेक प्रक्रिया है और हम पास किए गए समय परिणाम को कहां से प्राप्त कर सकते हैं?
ग्रासिए

1
Tτ=0Y(0)

@Grassie इसके अलावा math.stackexchange.com/questions/1900304/…
Jarle Tufto

Y(0)

5

यह कहने की जरूरत है कि उपरोक्त चर्चा एक निरंतर विश्व दृष्टिकोण के लिए है, जिसके लिए बहुलता उन अवसरों से आती है जो आप डेटा को अधिक चरम देते हैं, न कि उन अवसरों से जब आप मौजूद होने के लिए एक प्रभाव देते हैं। समस्या का मूल कारण यह है कि पी-वैल्यूज़ और टाइप I एरर्स बैकवर्ड-टाइम बैकवर्ड-इंफॉर्मेशन फ्लो कंडीशनिंग का उपयोग करते हैं, जो इसे "आप यहाँ कैसे मिला" महत्वपूर्ण बनाता है और इसके बजाय क्या हो सकता है। दूसरी ओर, बायेसियन प्रतिमान पैरामीटर पर प्रभाव के बारे में संदेह व्यक्त करता है, न कि डेटा पर। इससे प्रत्येक पश्च-संभाव्यता की व्याख्या उसी रूप में की जा सकती है, जब आपने 5 मिनट पहले प्रभाव की एक और बाद की संभावना की गणना की थी या नहीं। अधिक विवरण और एक सरल सिमुलेशन http://www.fharrell.com/2017/10/continuous-learning-from-data-no पर पाया जा सकता है


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

1
0.95

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

2
खैर, मैं इस "बड़े बिंदु" पर विवाद करता हूं। मुझे नहीं लगता कि यह सच है। जैसा कि मैं दोहराता रहता हूं, शून्य प्रभाव के शून्य के तहत और किसी दिए गए पूर्व के साथ (चलो शून्य पर केंद्रित कुछ व्यापक निरंतर पूर्व कहते हैं), दोहराया नमूना हमेशा या बाद में प्राप्त होगा> 0.98 पीछे की संभावना शून्य से ऊपर केंद्रित है। ऐसा होने तक नमूना लेने वाला व्यक्ति (यानी इस रोक नियम को लागू करना) हर बार गलत होगा । आप कैसे कह सकते हैं कि यह व्यक्ति केवल 0.02 का समय गलत होगा? मुझे समझ नहीं आ रहा है। इन विशेष परिस्थितियों में, नहीं, वह नहीं करेगा, वह हमेशा गलत होगा।
अमीबा का कहना है कि मोनिका

2
मुझे नहीं लगता कि मैं हूं। मेरा बड़ा मुद्दा यह है कि अनुक्रमिक परीक्षण से पीड़ित होने के लिए एक साथ लगातार प्रक्रियाओं को दोष देना अनुचित और असंगत है और अनुक्रमिक परीक्षण द्वारा अप्रभावित के रूप में बायेसियन प्रक्रियाओं की रक्षा करना। मेरा कहना है (जो एक गणितीय तथ्य है) यह है कि वे दोनों बिल्कुल उसी तरह से प्रभावित हैं, जिसका अर्थ है कि अनुक्रमिक परीक्षण बेइज़ियन प्रकार I त्रुटि को सभी तरह से 100% तक बढ़ा सकता है। बेशक अगर आप कहते हैं कि आप सिद्धांत की बात के रूप में, टाइप I त्रुटि दरों में दिलचस्पी नहीं रखते हैं, तो यह अप्रासंगिक है। लेकिन तब लगातार प्रक्रियाओं को इसके लिए दोषी नहीं ठहराया जाना चाहिए।
अमीबा का कहना है कि मोनिका

3

nx1θ=θ0tαcnx2(x1,x2)K

इस समस्या के बारे में पहले से ही पता चला है । पी। अर्मेटेज, सीके मैकफर्सन और बीसी रोवे (1969), जर्नल ऑफ द रॉयल स्टैटिस्टिकल सोसाइटी द्वारा संबोधित किया गया है सीरीज़ ए (132), 2, 235-244: "संचित डेटा पर दोहराए गए महत्वपूर्ण परीक्षण"

इस मुद्दे पर बेयसियन दृष्टिकोण, यहां भी चर्चा की गई है, जिस तरह से, बर्जर और वोल्पर (1988), "द लिक्लिएलहुड सिद्धांत" , धारा 4.2 में चर्चा की गई है ।

K>1α

के प्रयासों की संख्या के फलस्वरूप मानक अस्वीकृति नियम का आकारK

यहाँ छवि विवरण दर्ज करें

विभिन्न लिए महत्वपूर्ण मूल्यों को बढ़ाने के एक समारोह के रूप में आकारK

यहाँ छवि विवरण दर्ज करें

एक फ़ंक्शन के रूप में 5% परीक्षणों को पुनर्स्थापित करने के लिए महत्वपूर्ण मान समायोजित किए गएK

यहाँ छवि विवरण दर्ज करें

reps <- 50000

K <- c(1:5, seq(10,50,5), seq(60,100,10)) # the number of attempts a researcher gives herself
alpha <- 0.05
cv <- qnorm(1-alpha/2)

grid.scale.cv <- cv*seq(1,1.5,by=.01) # scaled critical values over which we check rejection rates
max.g <- length(grid.scale.cv)
results <- matrix(NA, nrow = length(K), ncol=max.g)

for (kk in 1:length(K)){
  g <- 1
  dev <- 0
  K.act <- K[kk]
  while (dev > -0.01 & g <= max.g){
    rej <- rep(NA,reps)
    for (i in 1:reps){
      k <- 1
      accept <- 1
      x <- rnorm(K.act)
      while(k <= K.act & accept==1){
        # each of our test statistics for "samples" of size n are N(0,1) under H0, so just scaling their sum by sqrt(k) gives another N(0,1) test statistic
        rej[i] <- abs(1/sqrt(k)*sum(x[1:k])) > grid.scale.cv[g] 
        accept <- accept - rej[i]
        k <- k+1
      }
    }
    rej.rate <- mean(rej)
    dev <- rej.rate-alpha
    results[kk,g] <- rej.rate
    g <- g+1
  }
}
plot(K,results[,1], type="l")
matplot(grid.scale.cv,t(results), type="l")
abline(h=0.05)

cv.a <- data.frame(K,adjusted.cv=grid.scale.cv[apply(abs(results-alpha),1,which.min)])
plot(K,cv.a$adjusted.cv, type="l")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.