লিনিয়ার রিগ্রেশন-এ নাল হাইপোথিসিস পরিবর্তন করা


18

আমার কাছে এমন কিছু ডেটা রয়েছে যা অত্যন্ত পরস্পর সম্পর্কিত। যদি আমি লিনিয়ার রিগ্রেশন চালাই তবে আমি একটি (= 0.93) এর কাছাকাছি withাল সহ একটি রিগ্রেশন রেখা পাই। আমি কি করতে চাই তা পরীক্ষা করা যদি এই slাল 1.0 থেকে উল্লেখযোগ্যভাবে আলাদা হয়। আমার প্রত্যাশা এটি হয় না। অন্য কথায়, আমি রৈখিক প্রতিরোধের নাল অনুমানটি শূন্যের slাল থেকে একের opeালুতে পরিবর্তন করতে চাই। এটি কি কোনও বুদ্ধিমান পন্থা? আমি সত্যিই এটির প্রশংসা করব যে আপনি আপনার উত্তরে কিছু আর কোড অন্তর্ভুক্ত করতে পারেন যাতে আমি এই পদ্ধতিটি প্রয়োগ করতে পারি (বা আপনার প্রস্তাবিত আরও ভাল!)। ধন্যবাদ।

উত্তর:


11
set.seed(20); y = rnorm(20); x = y + rnorm(20, 0, 0.2) # generate correlated data
summary(lm(y ~ x))                  # original model
summary(lm(y ~ x, offset= 1.00*x))  # testing against slope=1
summary(lm(y-x ~ x))                # testing against slope=1

আউটপুট:

            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.01532    0.04728   0.324     0.75    
x            0.91424    0.04128  22.148 1.64e-14 ***

 

            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.01532    0.04728   0.324   0.7497  
x           -0.08576    0.04128  -2.078   0.0523 .

 

            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.01532    0.04728   0.324   0.7497  
x           -0.08576    0.04128  -2.078   0.0523 .

ধন্যবাদ! আমি কীভাবে lm কমান্ড পরিবর্তন করতে পারি তা বুঝতে পারি না।
নিক ক্র্যাফোর্ড

তাহলে এটি কি "এলএম (ওয়াই x, অফসেট = 1.00 * এক্স)" (বা সেই 1.00 ছাড়াই) এর চেয়ে ঠিক একই "lm (yx ~ x)"? সেই বিয়োগটি কি কমপক্ষে স্কোয়ারগুলির জন্য অনুমানের সাথে বা সহপাঠীর সাথে সমস্যা হবে না? আমি এলোমেলো প্রভাব গ্লমার (....) এর সাথে লজিস্টিক রিগ্রেশনের জন্য এটি ব্যবহার করতে চাই। পি-ভ্যালুগুলি পাওয়ার জন্য একটি সহজ তবে সঠিক পদ্ধতি থাকা দুর্দান্ত হবে।
স্ক্যান

এখানে stats.stackexchange.com/questions/111559/… মাতিফু বলেছেন যে ওয়াল্ড পরীক্ষাটি ব্যবহার করার চেয়ে এই পদ্ধতিটি আরও খারাপ।
স্ক্যান

7

আপনার হাইপোথিসিসটি হিসাবে প্রকাশ করা যেতে পারে যেখানে হল আপনার রিগ্রেশন সহগ এবং সীমাবদ্ধতার সাথে নিষেধাজ্ঞার ম্যাট্রিক্স । আমাদের মডেল যদি হয়Rβ=rβRr

y=β0+β1x+u

তারপরে হাইপোথিসিসের জন্য , এবং ।β1=0R=[0,1]r=1

এই ধরণের অনুমানের জন্য আপনি linearHypothesisপ্যাকেজ কার থেকে ফাংশন ব্যবহার করতে পারেন :

set.seed(20); y = rnorm(20); x = y + rnorm(20, 0, 0.2) # generate correlated data
mod <- lm(y ~ x))                  # original model


> linearHypothesis(mod,matrix(c(0,1),nrow=1),rhs=c(1))
Linear hypothesis test

Hypothesis:
x = 1

Model 1: restricted model
Model 2: y ~ x

  Res.Df     RSS Df Sum of Sq      F  Pr(>F)  
1     19 0.96022                              
2     18 0.77450  1   0.18572 4.3162 0.05234 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

এটি কি একতরফা পরীক্ষার জন্য ব্যবহার করা যেতে পারে?
jpmath

6

দেখে মনে হচ্ছে আপনি এখনও একটি নাল অনুমানকে প্রত্যাখ্যান করার চেষ্টা করছেন। এর সাথে প্রচুর সমস্যা রয়েছে, এর মধ্যে কমপক্ষে এটিও সম্ভব নয় যে এটি আপনি যে ১ থেকে আলাদা তা দেখার মতো যথেষ্ট ক্ষমতা আপনার নেই It মনে হচ্ছে আপনার মনে হয় না যে careালটি 0.07 থেকে আলাদা you 1. তবে আপনি যদি সত্যিই বলতে না পারেন তবে কী হবে? আপনি যদি এমন কোনও aাল নির্ধারণ করেন যা বন্যভাবে পরিবর্তিত হয় এবং আসলে 0 থেকে confidence 0.4 এর আত্মবিশ্বাসের ব্যবধানের মতো 1 এর চেয়ে অনেক দূরে হতে পারে। এখানে আপনার সেরা কৌশলটি নাল হাইপোথিসিস পরিবর্তন করছে না তবে একটি বিরতি অনুমান সম্পর্কে আসলে যুক্তিযুক্তভাবে কথা বলছে। আপনি যদি আপনার মডেলটিতে কমান্ড সীমাবদ্ধতা () প্রয়োগ করেন তবে আপনি আপনার opeালের চারপাশে একটি 95% আস্থা অন্তর পেতে পারেন। তারপরে আপনি যে opeালটি পেয়েছেন তা আলোচনা করতে আপনি এটি ব্যবহার করতে পারেন। 1 যদি আত্মবিশ্বাসের ব্যবধানের মধ্যে থাকে তবে আপনি বলতে পারেন যে এটি মানগুলির মধ্যে রয়েছে যা আপনি বিশ্বাস করেন যে সত্যিকারের মান রয়েছে। তবে আরও গুরুত্বপূর্ণ বিষয় আপনি যে মানগুলির পরিসীমা তা কী তাও জানাতে পারেন।


3

পরীক্ষার বিষয়টি হ'ল আপনি নিজের নাল অনুমানটি বাতিল করতে চান, এটি নিশ্চিত করে না। কোনও উল্লেখযোগ্য পার্থক্য নেই এই সত্যটি কোনওভাবেই উল্লেখযোগ্য পার্থক্যের অনুপস্থিতির প্রমাণ নয়। তার জন্য, আপনাকে নালটিকে প্রত্যাখ্যান করার পক্ষে কোন প্রভাব আকারকে যুক্তিসঙ্গত বলে মনে করবে তা নির্ধারণ করতে হবে।

আপনার sl থেকে উল্লেখযোগ্যভাবে পৃথক কিনা তা পরীক্ষা করা খুব কঠিন নয়, আপনি কেবল পরীক্ষা করে নিন যে পার্থক্য শূন্যের থেকে উল্লেখযোগ্যভাবে পৃথক কিনা । হাতে এই কিছু হবে:slope1

set.seed(20); y = rnorm(20); x = y + rnorm(20, 0, 0.2)
model <- lm(y~x)

coefx <- coef(summary(model))[2,1]
seslope <- coef(summary(model))[2,2]
DF <- model$df.residual

# normal test
p <- (1 - pt(coefx/seslope,DF) )*2
# test whether different from 1
p2 <- (1 - pt(abs(coefx-1)/seslope,DF) )*2

এখন আপনার এই বিষয়টি সম্পর্কে সচেতন হওয়া উচিত যে প্রভাবের আকারের জন্য কোনও পার্থক্য তাৎপর্যপূর্ণ হয়ে ওঠে, এটি

> qt(0.975,DF)*seslope
[1] 0.08672358

শর্ত থাকে যে আমাদের opeালুতে স্ট্যান্ডার্ড ত্রুটির একটি শালীন অনুমানকারী রয়েছে। অতএব, আপনি যদি সিদ্ধান্ত নেন যে কেবলমাত্র 0.1 থেকে একটি গুরুত্বপূর্ণ পার্থক্য সনাক্ত করা উচিত, তবে আপনি নিম্নলিখিত ডিএফটি নিম্নলিখিতভাবে গণনা করতে পারেন:

optimize(
    function(x)abs(qt(0.975,x)*seslope - 0.1),
    interval=c(5,500)
) 
$minimum
[1] 6.2593

মনে মনে, এটি সিসলপের অনুমানের উপর নির্ভর করে। সিস্লোপে আরও ভাল অনুমান করার জন্য, আপনি নিজের ডেটা পুনর্নির্মাণ করতে পারেন। একটি নিষ্পাপ উপায় হবে:

n <- length(y)
seslope2 <-
  mean(
    replicate(n,{
      id <- sample(seq.int(n),1)
      model <- lm(y[-id]~x[-id])
      coef(summary(model))[2,2]
    })
  )

অপ্টিমাইজেশান ফাংশনে seslope2 স্থাপন, ফিরে আসে:

$minimum
[1] 6.954609

এগুলি আপনাকে জানিয়ে দেবে যে আপনার ডেটাসেটটি আপনার প্রয়োজনীয় বিবেচনার চেয়ে দ্রুততর ফলস্বরূপ ফিরে আসবে এবং আপনি কেবলমাত্র 7 ডিগ্রি স্বাধীনতার প্রয়োজন (এই ক্ষেত্রে 9 টি পর্যবেক্ষণ) আপনি যদি নিশ্চিত হতে চান যে অ-তাৎপর্যপূর্ণ মানে আপনি যা চান উপায়।

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