আমি ঠিক ভাবছিলাম যে কোনও গুরুত্বপূর্ণ ফলাফল (যেমন, ) প্রাপ্ত না হওয়া পর্যন্ত কেন ডেটা সংগ্রহ করা (যেমন, পি-হ্যাকিং) টাইপ আই ত্রুটির হার বৃদ্ধি করে?
আমি R
এই ঘটনার একটি প্রদর্শনের জন্য অত্যন্ত প্রশংসা করব ।
আমি ঠিক ভাবছিলাম যে কোনও গুরুত্বপূর্ণ ফলাফল (যেমন, ) প্রাপ্ত না হওয়া পর্যন্ত কেন ডেটা সংগ্রহ করা (যেমন, পি-হ্যাকিং) টাইপ আই ত্রুটির হার বৃদ্ধি করে?
আমি R
এই ঘটনার একটি প্রদর্শনের জন্য অত্যন্ত প্রশংসা করব ।
উত্তর:
সমস্যাটি হ'ল আপনি নিজেকে পরীক্ষায় পাস করার জন্য অনেক বেশি সুযোগ দিচ্ছেন। এটি এই কথোপকথনের একটি অভিনব সংস্করণ:
রাতের খাবারের জন্য কে বেতন দেয় তা দেখতে আমি আপনাকে ফ্লিপ করব।
ঠিক আছে, আমি মাথা কল।
ইঁদুর, আপনি জিতেছে। সেরা তিনজনের মধ্যে দু'জন?
এটি আরও ভালভাবে বুঝতে , এই অনুক্রমিক পদ্ধতির একটি সরল - তবে বাস্তব - মডেল বিবেচনা করুন । মনে করুন আপনি একটি নির্দিষ্ট সংখ্যক পর্যবেক্ষণের "ট্রায়াল রান" দিয়ে শুরু করবেন, তবে চেয়ে কম পি-ভ্যালু পাওয়ার জন্য দীর্ঘ সময় ধরে পরীক্ষা চালিয়ে যেতে রাজি আছেন । নাল হাইপোথিসিসটি হ'ল প্রতিটি পর্যবেক্ষণ একটি স্ট্যান্ডার্ড সাধারণ বিতরণ থেকে আসে (স্বতন্ত্রভাবে)। বিকল্পটি হল যে একটি ননজারো গড় দিয়ে ইউনিট-ভেরিয়েন্সের স্বাভাবিক বিতরণ থেকে স্বতন্ত্রভাবে আসে। পরীক্ষার পরিসংখ্যান সব গড় হতে হবে পর্যবেক্ষণ, , তাদের মান ত্রুটি দ্বারা বিভক্ত, । দ্বিমুখী পরীক্ষার জন্য, সমালোচনামূলক মানগুলিএক্স আই এক্স আই এন ˉ এক্স 1 / √ 0.0250.975জেডα=±1.96 এবং শতাংশ আদর্শ সাধারণ বন্টনের শতাংশ পয়েন্ট, প্রায় ।
এটি একটি ভাল পরীক্ষা - একটি নির্দিষ্ট নমুনা আকার সাথে একক পরীক্ষার জন্য । এটি নাল হাইপোথিসিসকে প্রত্যাখ্যান করার ঠিক সম্ভাবনা রয়েছে, যাই হউক না কেন ।5 % এন
সমস্ত মান, এর যোগফলের ভিত্তিতে বীজগণিতভাবে এটিকে একটি সমতুল্য পরীক্ষায় রূপান্তর করি Let'sএস এন = এক্স 1 + এক্স 2 + ⋯ + এক্স এন = এন ˉ এক্স ।
সুতরাং, তথ্য যখন "তাৎপর্যপূর্ণ" হয়
এটাই,
আমরা যদি স্মার্ট হয়ে থাকি তবে আমরা আমাদের লোকসানগুলি কেটে দেব এবং খুব বড় হয়ে যাওয়ার পরে ছেড়ে চলে যাব এবং ডেটা এখনও সমালোচনামূলক অঞ্চলে প্রবেশ করেনি।
এটি একটি এলোমেলো হাঁটার বর্ণনা করে । সূত্র এলোমেলো হাঁটার প্লট এর চারপাশে একটি বাঁকা পরক "বেড়া," বা বাধা : এলোমেলো কোনও বিন্দু করলে ফলাফলটি "তাৎপর্যপূর্ণ" হয় । ( 1 ) ( এন , এস এন )
এটি এলোমেলো হাঁটার একটি সম্পত্তি যা আমরা যদি দীর্ঘক্ষণ অপেক্ষা করি তবে খুব সম্ভবত যে কোনও সময় ফলাফলটি তাৎপর্যপূর্ণ দেখাবে।
নমুনার সীমাতে এখানে 20 টি স্বতন্ত্র সিমুলেশন রয়েছে । এগুলি সবগুলি নমুনায় পরীক্ষা করা শুরু করে, যে বিন্দুতে আমরা প্রতিটি পয়েন্ট সূত্র অনুসারে আঁকা বাধাগুলির বাইরে রয়েছে কিনা তা পরীক্ষা করি । যে পরিসংখ্যানের পরীক্ষাটি প্রথম "তাৎপর্যপূর্ণ" হয় সেই বিন্দু থেকে সিমুলেটেড ডেটা রঙিন হয়।এন = 30 ( 1 )
কী চলছে তা আপনি দেখতে পাচ্ছেন: এলোমেলো হাঁটা চাবুকগুলি আরও বাড়িয়ে নিচে আরও বাড়ছেবাধাগুলি প্রায় একই হারে ছড়িয়ে পড়ছে - তবে এলোমেলো হাঁটা এড়াতে সবসময় পর্যাপ্ত দ্রুত নয়।
এর মধ্যে 20% সিমুলেশনে একটি "উল্লেখযোগ্য" পার্থক্য পাওয়া যায় - সাধারণত বেশ তাড়াতাড়ি - যদিও তাদের প্রত্যেকটিতে নাল অনুমানটি একেবারে সঠিক! এই ধরণের আরও সিমুলেশন চালানো ইঙ্গিত দেয় যে প্রকৃত পরীক্ষার আকারটি মানের চেয়ে কাছাকাছি : এটিই আপনার সিম্পল আকারের অবধি "তাত্পর্য" সন্ধান করতে আপনার আগ্রহী নাল সত্য হওয়া সত্ত্বেও আপনাকে নাল প্রত্যাখ্যান করার সুযোগ দেয় ।α = 5 % 5000 25 %
লক্ষ্য করুন যে চারটি "উল্লেখযোগ্য" ক্ষেত্রে যেমন পরীক্ষা চলতে থাকে তেমনি কিছু পয়েন্টে ডেটা উল্লেখযোগ্যভাবে দেখা বন্ধ করে দেয় । বাস্তব জীবনে, একজন পরীক্ষক যিনি তাড়াতাড়ি থামেন তিনি এই জাতীয় "বিপর্যয়" পর্যবেক্ষণ করার সুযোগ হারাচ্ছেন। Seচ্ছিক থামিয়ে পক্ষপাতদুষ্টের মাধ্যমে এই নির্বাচনের ফলস্বরূপ।
সৎ-থেকে-সদোধার ক্রমক্রমিক পরীক্ষায়, বাধাগুলি লাইন। এগুলি এখানে প্রদর্শিত বাঁকা বাধার চেয়ে দ্রুত ছড়িয়ে পড়ে।
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)
হাইপোথিসিস টেস্টিংয়ে নতুন যারা মনে করেন যে একবার এপি মান নীচে চলে যায় ।05, আরও অংশগ্রহণকারী যুক্ত করলে কেবল পি মান আরও হ্রাস পাবে। তবে এটি সত্য নয়। নাল অনুমানের অধীনে, এপি মান 0 এবং 1 এর মধ্যে সমানভাবে বিতরণ করা হয় এবং সেই পরিসরে বেশ কিছুটা কাছাকাছি আসতে পারে।
আমি আর-তে কিছু তথ্য সিমুলেটেড করেছি (আমার আর দক্ষতাগুলি বেশ বেসিক)। এই সিমুলেশনটিতে, আমি 5 টি ডাটা পয়েন্ট সংগ্রহ করি - প্রত্যেকে একটি এলোমেলোভাবে নির্বাচিত গ্রুপ সদস্যপদ (0 বা 1) এবং এলোমেলোভাবে নির্বাচিত ফলাফলের পরিমাপের জন্য প্রতিটি ~ N (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 এর কাছাকাছি হলে আমি উল্লেখযোগ্য ফলাফলগুলি পাই find আমি যদি সেখানে থামি, আমি আমার পরিণতিগুলি তাৎপর্য সহকারে শেষ করতে পারব কারণ আমার পি মানগুলি একটি বৃহত্তর নমুনা নিয়ে পিছনে ঝাঁপিয়ে পড়েছে (এই সত্যিকারের ডেটা দিয়ে আসলে আমার সাথে একবার হয়েছিল) এই বিষয়টিটি আমি মিস করেছি। যেহেতু আমি জানি উভয় জনসংখ্যারই গড় 0 আছে, এটি অবশ্যই একটি মিথ্যা ইতিবাচক হবে। পি <.05 অবধি ডেটা যুক্ত করার ক্ষেত্রে এটিই সমস্যা। যদি আপনি পর্যাপ্ত পরীক্ষা পরিচালনা করেন তবে পি শেষ পর্যন্ত .05 প্রান্তিকাকে অতিক্রম করবে এবং আপনি কোনও ডেটা সেট উল্লেখযোগ্য প্রভাব খুঁজে পেতে পারেন।
R
কোডটি মোটেই চলবে না।
df
প্রথমে তৈরি করতে হবে ( পছন্দমত এটির চূড়ান্ত আকারে)। যেহেতু কোডটি সারি at-এ লিখতে শুরু করে তা বোঝানো (যা উত্তরের পাঠ্যের সাথে খাপ খায়) হ'ল ডিএফ ইতিমধ্যে ভরাট 5 টি সারি নিয়ে উপস্থিত রয়েছে something সম্ভবত এরকম কিছু উদ্দেশ্য ছিল: 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])
এই উত্তরটি কেবলমাত্র শেষ পর্যন্ত "তাত্পর্যপূর্ণ" ফলাফল পাওয়ার সম্ভাবনা এবং @ হুইবারের মডেলের অধীনে এই ইভেন্টে সময় বিতরণ করার সম্ভাবনা নিয়েই উদ্বেগ প্রকাশ করে।
@ ভুবারের মডেল হিসাবে, পর্যবেক্ষণ সংগ্রহের পরে পরীক্ষার পরিসংখ্যানের মান বোঝায় এবং ধরে যে যদি আইআইডি স্ট্যান্ডার্ড হয় । তারপরে যেমন একটি ক্রমাগত সময়ের মান ব্রাউনিয়ান গতির মতো আচরণ করে, যদি আমরা এই মুহুর্তের জন্য উপেক্ষা করি তবে আমাদের একটি পৃথক-সময় প্রক্রিয়া (নীচে বাম প্লট) রয়েছে fact
যাক বোঝাতে প্রথম উত্তরণ সময় সময় নির্ভর বাধা জুড়ে (প্রয়োজন আগে পরীক্ষা উল্লেখযোগ্য সক্রিয় পর্যবেক্ষণ নম্বর)।
রুপান্তরিত প্রক্রিয়া বিবেচনা করুন স্কেলিং দ্বারা প্রাপ্ত সময়ে তার স্ট্যানডার্ড ডেভিয়েশন দ্বারা এবং নতুন সময় স্কেল লেট করে যেমন যে এটি (1) এবং (2) এর পরে অনুসরণ করে যে সাধারণত এবং
রুপান্তরিত মডেল জন্য, বাধা সময় স্বাধীন ধ্রুবক থেকে সমান হয়ে । এরপরে এটি জানা যায় ( নোবাইল ইত্যাদি। 1985 ; রিকার্দি এবং সাতো, 1988 ) যে এই বাধাগুলি পেরিয়ে OU প্রক্রিয়া এর প্রথম প্যাসেজ-টাইম- approximately প্রায় তাত্ক্ষণিকভাবে কিছু প্যারামিটার দিয়ে বিতরণ করা হয় (এ বাধা উপর নির্ভর করে ) (আনুমানিক জন্য নীচে)। এছাড়া আকারের একটা অতিরিক্ত বিন্দু ভর মধ্যে । "প্রত্যাখ্যান"অবশেষে সম্ভাব্যতার সাথে ঘটে যায় ১। সুতরাং, ("উল্লেখযোগ্য" ফলাফল পাওয়ার আগে যে পর্যবেক্ষণগুলি সংগ্রহ করতে হবে) আনুমানিক প্রত্যাশিত মান সহ একটি লগ প্রকাশকারী বিতরণ অনুসরণ করে সুতরাং, সীমাবদ্ধতা থাকে কেবলমাত্র যদি (পর্যাপ্ততার জন্য) তাত্পর্যপূর্ণ স্তরের )।
উপরেরগুলি সত্যিকারের মডেলের জন্য স্বতন্ত্র এবং আসল প্রক্রিয়াটি নিরবচ্ছিন্ন-সময়ের চেয়ে আলাদা - এই বিষয়টি উপেক্ষা করে । অতএব, উপরের মডেলটি বাধাটি অতিক্রম করেছে (এবং অবমূল্যায়ন করে ) সম্ভাবনাটিকে তাত্পর্যপূর্ণ করে তোলে কারণ অবিচ্ছিন্ন সময় নমুনা পথটি কেবল দুটি সংলগ্ন বিচ্ছিন্ন সময় পয়েন্ট এবং মধ্যে সাময়িকভাবে বাধা অতিক্রম করতে পারে । কিন্তু এই ধরনের ঘটনা বৃহৎ জন্য তুচ্ছ সম্ভাব্যতা থাকা উচিত । E T t t + 1 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)
এটি বলা দরকার যে উপরোক্ত আলোচনাটি ঘন ঘন এক বিশ্বদর্শনের জন্য যার জন্য আপনি বহুগুণ হবেন এমন তথ্য যা আপনার ডেটাটিকে আরও চরম হওয়ার সম্ভাবনা থেকে আসে, আপনি যে প্রভাব কার্যকর করার সম্ভাবনা দেন তা থেকে নয়। সমস্যার মূল কারণ হ'ল পি-মান এবং টাইপ আই ত্রুটিগুলি পিছনের সময়-পিছনের তথ্য-প্রবাহের কন্ডিশনিং ব্যবহার করে, যা এটি "আপনি এখানে কিভাবে এসেছেন" এবং এর পরিবর্তে কী ঘটতে পারে তা গুরুত্বপূর্ণ করে তোলে । অন্যদিকে, বায়সিয়ান দৃষ্টান্ত ডেটা নয়, প্যারামিটারের নিজের উপর প্রভাব সম্পর্কে সংশয়কে এনকোড করে। আপনি 5 মিনিট আগে কোনও প্রভাবের পরবর্তী উত্তর সম্ভাবনাটি গণনা করেছেন কিনা তা প্রতিটি উত্তরোত্তর সম্ভাবনাটিকেই একইভাবে ব্যাখ্যা করা যায়। আরও বিশদ এবং একটি সাধারণ সিমুলেশন পাওয়া যেতে পারে http://www.fharrell.com/2017/10/continuous-firening-from-data-no এ।
আমরা একটি গবেষককে কিছু অনুমান test পরীক্ষা করতে , , আকারের একটি নমুনা সংগ্রহ করা বিবেচনা । তিনি যদি প্রত্যাখ্যান করেন যে কোনও উপযুক্ত পরীক্ষার পরিসংখ্যান এর মাত্রা- সমালোচনামূলক মান ছাড়িয়ে যায় । যদি এটি না হয়, তবে তিনি , আকারের অন্য একটি নমুনা সংগ্রহ করেন এবং সম্মিলিত নমুনার পরীক্ষাটি প্রত্যাখ্যান করলে প্রত্যাখ্যান করে । যদি তিনি এখনও কোনও প্রত্যাখ্যান না পান তবে তিনি এই ফ্যাশনে এগিয়ে চলেছেন, মোট ।x 1 θ = θ 0 t α c n x 2 ( x 1 , x 2 ) কে
এই সমস্যাটিকে ইতিমধ্যে পি। আর্মিটেজ, সি কে ম্যাকফারসন এবং বিসি রোউ (1969), রয়্যাল স্ট্যাটিস্টিকাল সোসাইটির জার্নাল দ্বারা সম্বোধন করা হয়েছে বলে মনে হয় । সিরিজ এ (১৩২), ২, ২৩৫-২৪৪: "পুনরুদ্ধারযোগ্য উপাত্তগুলিতে গুরুত্বপূর্ণ টেস্টগুলি" ।
এই বিষয়টি নিয়ে বায়েশিয়ার দৃষ্টিভঙ্গি, এখানেও আলোচনা করা হয়েছে, বার্গার এবং ওলপার্ট (1988), "সম্ভাবনার নীতি" , বিভাগ 4.2-তে আলোচনা করা হয়েছে।
এখানে আর্মিটেজ এট আল-এর ফলাফলগুলির একটি আংশিক প্রতিলিপি দেওয়া হয়েছে (নীচের কোড), যা দেখায় যে যখন তাত্পর্য স্তরগুলি বাড়িয়ে দেয় তেমনি স্তর- সমালোচনামূলক মানগুলি পুনরুদ্ধার করতে সম্ভাব্য সংশোধন কারণগুলিও দেখায় । নোট করুন গ্রিড অনুসন্ধান চালাতে কিছুটা সময় নেয় --- বাস্তবায়ন বরং অকার্যকর হতে পারে।α
প্রচেষ্টার সংখ্যার ফাংশন হিসাবে স্ট্যান্ডার্ড প্রত্যাখ্যান নিয়মের আকার
বিভিন্ন জন্য ক্রমবর্ধমান সমালোচনামূলক মান হিসাবে একটি ফাংশন হিসাবে আকার
ফাংশন হিসাবে 5% পরীক্ষা পুনরুদ্ধার করতে সমন্বিত সমালোচনামূলক মানগুলি
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")