বুটস্ট্র্যাপ রিগ্রেশন থেকে সহগের পি-মানগুলি কীভাবে পাবেন?


10

রবার্ট কাবাাকফের কুইক-আর থেকে আমার কাছে এসেছে

# Bootstrap 95% CI for regression coefficients 
library(boot)
# function to obtain regression weights 
bs <- function(formula, data, indices) {
  d <- data[indices,] # allows boot to select sample 
  fit <- lm(formula, data=d)
  return(coef(fit)) 
} 
# bootstrapping with 1000 replications 
results <- boot(data=mtcars, statistic=bs, 
     R=1000, formula=mpg~wt+disp)

# view results
results
plot(results, index=1) # intercept 
plot(results, index=2) # wt 
plot(results, index=3) # disp 

# get 95% confidence intervals 
boot.ci(results, type="bca", index=1) # intercept 
boot.ci(results, type="bca", index=2) # wt 
boot.ci(results, type="bca", index=3) # disp

আমি কীভাবে বুটস্ট্র্যাপ রিগ্রেশন সহগের পি-মান পারি?H0:bj=0


"পি মান" মানে কি? কোন নাল অনুমানের সাথে কোন নির্দিষ্ট পরীক্ষা?
ব্রায়ান ডিগস

সংশোধন এইচ 0: বিজে = 0
ইসিআইআই

3
আপনি ইতিমধ্যে পেয়েছেন পি<0.05/পি>0.05আত্মবিশ্বাসের ব্যবধানে 0 অন্তর্ভুক্ত হয় না কিনা তার উপর ভিত্তি করে বুটস্ট্র্যাপ থেকে প্যারামিটার বিতরণ প্যারামিট্রিক না হওয়ায় আর কোনও বিশদ বিবরণ সম্ভব নয় (এবং সুতরাং আপনি মান 0 হওয়ার সম্ভাবনাও পেতে পারেন না)।
ব্রায়ান ডিগস

আপনি যদি ডিস্ট্রিবিউশন ধরে নিতে না পারেন তবে সিআই 0 টি অন্তর্ভুক্ত না করে আপনি কীভাবে জানেন যে পি <0.05? এটি z বা টি বিভ্রান্তির ক্ষেত্রে সত্য।
ইসিআইআই

আমি এটি পেয়েছি তবে আপনি কেবল এই <পি 0.05 বলতে পারেন, আপনি কোনও নির্দিষ্ট মান সংযুক্ত করতে পারবেন না?
ইসিআইআই

উত্তর:


8

কেবলমাত্র অন্য একটি রূপ যা কিছুটা সরল, তবে আমি মনে করি গ্রন্থাগারটি স্পষ্টভাবে ব্যবহার না করে বার্তাটি সরবরাহ করুন bootযা কিছু লোককে এটির সিনট্যাক্সের সাথে বিভ্রান্ত করতে পারে।

আমাদের একটি রৈখিক মডেল রয়েছে: Y=এক্সβ+ +ε, ε~এন(0,σ2)

নিম্নলিখিতটি লিনিয়ার মডেলের জন্য একটি প্যারাম্যাট্রিক বুটস্ট্র্যাপ রয়েছে, এর অর্থ হল যে আমরা আমাদের মূল ডেটা পুনরায় নমুনা করি না তবে বাস্তবে আমরা আমাদের লাগানো মডেল থেকে নতুন ডেটা তৈরি করি। অতিরিক্ত হিসাবে আমরা ধরে নিই যে রিগ্রেশন সহগের বুটস্ট্র্যাপড বিতরণβপ্রতিসম হয় এবং এটি অনুবাদ অদম্য। (খুব মোটামুটিভাবে বলছি যে আমরা এর বৈশিষ্ট্যগুলিকে প্রভাবিত করার সাথে এটির অক্ষটি স্থানান্তর করতে পারি) পিছনে ধারণাটি হ'ল এর মধ্যে ওঠানামাβ এর কারণে হয় εএবং অতএব পর্যাপ্ত নমুনাগুলির সাথে তাদের সত্যিকারের বিতরণের একটি ভাল অনুমানের সরবরাহ করা উচিতβ'S। আগের মত আমরা আবার পরীক্ষাএইচ0:0=βএবং আমরা আমাদের পি-মানগুলি "সম্ভাব্যতা হিসাবে চিহ্নিত করেছিলাম , তথ্যের সম্ভাব্যতা বন্টনের জন্য নাল অনুমান দেওয়া, যে ফলাফলটি পর্যবেক্ষিত ফলাফলের চেয়ে চরম বা আরও চরম হবে" (যেখানে এই ক্ষেত্রে পর্যবেক্ষণের ফলাফলগুলি হয়βআমরা আমাদের মূল মডেলটি পেয়েছি)। সুতরাং এখানে যায়:

# Sample Size
N           <- 2^12;
# Linear Model to Boostrap          
Model2Boot  <- lm( mpg ~ wt + disp, mtcars)
# Values of the model coefficients
Betas       <- coefficients(Model2Boot)
# Number of coefficents to test against
M           <- length(Betas)
# Matrix of M columns to hold Bootstraping results
BtStrpRes   <- matrix( rep(0,M*N), ncol=M)

for (i in 1:N) {
# Simulate data N times from the model we assume be true
# and save the resulting coefficient in the i-th row of BtStrpRes
BtStrpRes[i,] <-coefficients(lm(unlist(simulate(Model2Boot)) ~wt + disp, mtcars))
}

#Get the p-values for coefficient
P_val1 <-mean( abs(BtStrpRes[,1] - mean(BtStrpRes[,1]) )> abs( Betas[1]))
P_val2 <-mean( abs(BtStrpRes[,2] - mean(BtStrpRes[,2]) )> abs( Betas[2]))
P_val3 <-mean( abs(BtStrpRes[,3] - mean(BtStrpRes[,3]) )> abs( Betas[3]))

#and some parametric bootstrap confidence intervals (2.5%, 97.5%) 
ConfInt1 <- quantile(BtStrpRes[,1], c(.025, 0.975))
ConfInt2 <- quantile(BtStrpRes[,2], c(.025, 0.975))
ConfInt3 <- quantile(BtStrpRes[,3], c(.025, 0.975))

উল্লিখিত হিসাবে পুরো ধারণাটি হ'ল আপনার বুটস্ট্র্যাপড বিতরণ রয়েছে βএর সত্যিকারের কাছাকাছি। (স্পষ্টতই এই কোডটি গতির জন্য তবে পাঠযোগ্যতার জন্য অনুকূলিত :) :)


16

সম্প্রদায় এবং @ ব্রায়ানডিগস আমি ভুল হলে আমাকে সংশোধন করতে পারে তবে আমি বিশ্বাস করি যে আপনি নিম্নলিখিত হিসাবে আপনার সমস্যার জন্য একটি পি-মান পেতে পারেন। দ্বিমুখী পরীক্ষার জন্য একটি পি-মান হিসাবে সংজ্ঞায়িত করা হয়

2*সর্বনিম্ন[পি(এক্সএক্স|এইচ0),পি(এক্সএক্স|এইচ0)]

সুতরাং আপনি যদি আকার অনুসারে বুটস্ট্র্যাপযুক্ত সহগগুলি অর্ডার করেন এবং তারপরে অনুপাতগুলি বৃহত্তর এবং ছোট শূন্য নির্ধারণ করেন তবে সর্বনিম্ন অনুপাতের দ্বিগুণ আপনাকে একটি পি-মান দেবে।

আমি সাধারণত এই জাতীয় পরিস্থিতিতে নিম্নলিখিত ক্রিয়াকলাপটি ব্যবহার করি:

twosidep<-function(data){
  p1<-sum(data>0)/length(data)
  p2<-sum(data<0)/length(data)
  p<-min(p1,p2)*2
  return(p)
}

4

বুটস্ট্র্যাপ গণনা করতে ব্যবহার করা যেতে পারে পিমূল্যবোধ, কিন্তু এটি আপনার কোডে যথেষ্ট পরিবর্তন প্রয়োজন change যেহেতু আমি আরআই এর সাথে পরিচিত নই কেবল আপনাকে একটি রেফারেন্স দিতে পারি যাতে আপনি কী করতে হবে তা সন্ধান করতে পারেন: অধ্যায় 4 (ডেভিসন এবং হিংকলে 1997)।

ডেভিসন, এসি এবং হিঙ্কলি, ডিভি 1997 Boot বুটস্ট্র্যাপ পদ্ধতি এবং তাদের প্রয়োগ। কেমব্রিজ: কেমব্রিজ বিশ্ববিদ্যালয় প্রেস।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.