আর [কোড এবং আউটপুট অন্তর্ভুক্ত] এলোমেলো প্রভাব সহ একটি ভাঙ্গা লাঠি / টুকরোমুখী লিনিয়ার মডেলটিতে ব্রেক পয়েন্ট অনুমান করা


14

কেউ দয়া করে আমাকে কীভাবে বলতে পারবেন যে কীভাবে আর-র্যান্ডম এফেক্টগুলি অনুমান করার দরকার হলে টুকরোজ লিনিয়ার মডেলটিতে (স্থির বা র্যান্ডম প্যারামিটার হিসাবে) ব্রেক পয়েন্টটি কীভাবে অনুমান করা যায়?

আমি নীচে একটি খেলনা উদাহরণ অন্তর্ভুক্ত করেছি যা হকি স্টিক / ভাঙ্গা স্টিকের রিগ্রেশনকে এলোমেলো slাল রূপের সাথে মানিয়ে যায় এবং ৪ এর বিরতি পয়েন্টের জন্য একটি এলোমেলো ওয়াই-ইন্টারসেপ্ট ভেরিয়েন্সটি উল্লেখ করতে চাই। এটি একটি এলোমেলো প্রভাব (পছন্দনীয়) বা একটি নির্দিষ্ট প্রভাব হতে পারে।

library(lme4)
str(sleepstudy)

#Basis functions
bp = 4
b1 <- function(x, bp) ifelse(x < bp, bp - x, 0)
b2 <- function(x, bp) ifelse(x < bp, 0, x - bp)

#Mixed effects model with break point = 4
(mod <- lmer(Reaction ~ b1(Days, bp) + b2(Days, bp) + (b1(Days, bp) + b2(Days, bp) | Subject), data = sleepstudy))

#Plot with break point = 4
xyplot(
        Reaction ~ Days | Subject, sleepstudy, aspect = "xy",
        layout = c(6,3), type = c("g", "p", "r"),
        xlab = "Days of sleep deprivation",
        ylab = "Average reaction time (ms)",
        panel = function(x,y) {
        panel.points(x,y)
        panel.lmline(x,y)
        pred <- predict(lm(y ~ b1(x, bp) + b2(x, bp)), newdata = data.frame(x = 0:9))
            panel.lines(0:9, pred, lwd=1, lty=2, col="red")
        }
    )

আউটপুট:

Linear mixed model fit by REML 
Formula: Reaction ~ b1(Days, bp) + b2(Days, bp) + (b1(Days, bp) + b2(Days, bp) | Subject) 
   Data: sleepstudy 
  AIC  BIC logLik deviance REMLdev
 1751 1783 -865.6     1744    1731
Random effects:
 Groups   Name         Variance Std.Dev. Corr          
 Subject  (Intercept)  1709.489 41.3460                
          b1(Days, bp)   90.238  9.4994  -0.797        
          b2(Days, bp)   59.348  7.7038   0.118 -0.008 
 Residual               563.030 23.7283                
Number of obs: 180, groups: Subject, 18

Fixed effects:
             Estimate Std. Error t value
(Intercept)   289.725     10.350  27.994
b1(Days, bp)   -8.781      2.721  -3.227
b2(Days, bp)   11.710      2.184   5.362

Correlation of Fixed Effects:
            (Intr) b1(D,b
b1(Days,bp) -0.761       
b2(Days,bp) -0.054  0.181

ভাঙা লাঠি রিগ্রেশন প্রতিটি পৃথক


1
বিপি কে এলোমেলোভাবে প্রভাব দেওয়ার কোনও উপায়?
djhocking

উত্তর:


20

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

library(lme4)
str(sleepstudy)

#Basis functions
bp = 4
b1 <- function(x, bp) ifelse(x < bp, bp - x, 0)
b2 <- function(x, bp) ifelse(x < bp, 0, x - bp)

#Wrapper for Mixed effects model with variable break point
foo <- function(bp)
{
  mod <- lmer(Reaction ~ b1(Days, bp) + b2(Days, bp) + (b1(Days, bp) + b2(Days, bp) | Subject), data = sleepstudy)
  deviance(mod)
}

search.range <- c(min(sleepstudy$Days)+0.5,max(sleepstudy$Days)-0.5)
foo.opt <- optimize(foo, interval = search.range)
bp <- foo.opt$minimum
bp
[1] 6.071932
mod <- lmer(Reaction ~ b1(Days, bp) + b2(Days, bp) + (b1(Days, bp) + b2(Days, bp) | Subject), data = sleepstudy)

ব্রেকপয়েন্টের জন্য একটি আত্মবিশ্বাসের ব্যবধান পেতে, আপনি প্রোফাইল সম্ভাবনাটি ব্যবহার করতে পারেন । qchisq(0.95,1)ন্যূনতম বিচ্যুতিতে ( উদাহরণস্বরূপ, 95% আত্মবিশ্বাসের ব্যবধানের জন্য) যুক্ত করুন, তারপরে foo(x)এমন পয়েন্টগুলি সন্ধান করুন যেখানে গণনার মানের সমান:

foo.root <- function(bp, tgt)
{
  foo(bp) - tgt
}
tgt <- foo.opt$objective + qchisq(0.95,1)
lb95 <- uniroot(foo.root, lower=search.range[1], upper=bp, tgt=tgt)
ub95 <- uniroot(foo.root, lower=bp, upper=search.range[2], tgt=tgt)
lb95$root
[1] 5.754051
ub95$root
[1] 6.923529

কিছুটা অসমিত, তবে এই খেলনা সমস্যার জন্য খারাপ নির্ভুলতা নয়। বুটস্ট্র্যাপটি নির্ভরযোগ্য করে তুলতে আপনার কাছে পর্যাপ্ত ডেটা থাকলে, অনুমানের পদ্ধতিটি বুটস্ট্র্যাপ করা বিকল্প would


আপনাকে ধন্যবাদ - এটি খুব সহায়ক ছিল। এই কৌশলটিকে কি দ্বি-পর্যায়ের প্রাক্কলন পদ্ধতি বলা হয়, বা এর কোনও মানক নাম রয়েছে যা আমি উল্লেখ করতে / দেখার চেষ্টা করতে পারি?
39

এটি সর্বাধিক সম্ভাবনা, বা যদি কমার সম্ভাবনা সর্বাধিক হয় (আমার মনে হয় ডিফল্টটি আসলেই আরএমএল, এমএল অনুমানের জন্য আপনাকে লামার জন্য একটি পরামিতি আরএমএল = ফলস পাস করতে হবে)। একবারে সকলের চেয়ে কেবল নেস্টেড পদ্ধতিতে অনুমান করা। আমি উত্তরের সামনের অংশে কিছু স্পষ্টতা যুক্ত করেছি।
jboman

আমার আসল তথ্য দিয়ে প্রোফাইল সম্ভাবনাটি উল্টানোর সময় আমার কিছু অপ্টিমাইজেশন সমস্যা এবং প্রশস্ত সিআই ছিল, তবে আমার বাস্তবায়নে সংকীর্ণ বুটস্ট্র্যাপ সিআই পেয়েছি। আপনি কি সাবজেক্টের ডেটা ভেক্টরগুলির প্রতিস্থাপনের সাথে নমুনা সহ একটি ননপ্যারমেট্রিক বুটস্ট্র্যাপের কল্পনা করছেন? উদাহরণস্বরূপ, স্লিপস্টুডি ডেটার জন্য, এটি কোনও বিষয়ের ডেটা ভেক্টরের অভ্যন্তরে কোনও পুনরায় মডেলিং না করে 10 টি পয়েন্টের 18 (বিষয়) ভেক্টরগুলির সাথে প্রতিস্থাপনের সাথে নমুনা জড়িত করতে পারে।
লকঅফ অফ

হ্যাঁ, আপনি বর্ণনা করার সাথে সাথে আমি একটি ননপ্যারামেট্রিক বুটস্ট্র্যাপের কল্পনা করছিলাম, তবে আংশিকভাবে এটি কারণ আমি উন্নত বুটস্ট্র্যাপ কৌশলগুলি প্রয়োগ করতে পারি (বা নাও হতে পারে) সম্পর্কে তেমন কিছুই জানি না। প্রোফাইল সম্ভাবনা-ভিত্তিক সিআই এবং বুটস্ট্র্যাপ উভয়ই অ্যাসিম্পোটোটিক্যালি সঠিক, তবে এটি আপনার নমুনার জন্য বুটস্ট্র্যাপটি উল্লেখযোগ্যভাবে আরও ভাল হতে পারে।
jboman

5

জোবোম্যান প্রস্তাবিত সমাধানটি খুব ভাল, কেবল কয়েকটি তাত্ত্বিক মন্তব্য যুক্ত করেছেন:

  • ব্যবহৃত সূচক ফাংশনটির অবিচ্ছিন্নতা প্রদত্ত, প্রোফাইল-সম্ভাবনা একাধিক স্থানীয় মিনিমার সাথে অত্যন্ত অনিচ্ছাকৃত হতে পারে, তাই স্বাভাবিক অপ্টিমাইজারগুলি কাজ নাও করতে পারে। এই জাতীয় "প্রান্তিক মডেল" এর স্বাভাবিক সমাধান হ'ল পরিবর্তে আরও জটিল গ্রিড অনুসন্ধান ব্যবহার করা, প্রতিটি সম্ভাব্য ব্রেকডপয়েন্ট / থ্রেশহোল্ড দিনগুলিতে বিচ্যুতির মূল্যায়ন করা (এবং কোডের মধ্যে যেমন হয় তার মধ্যে কোনও মান হয় না)। নীচে কোড দেখুন।

  • এই অ-মানক মডেলের মধ্যে যেখানে ব্রেকপয়েন্টটি অনুমান করা হয়, ডিভ্যান্সের সাধারণত স্ট্যান্ডার্ড বিতরণ থাকে না। আরও জটিল পদ্ধতি সাধারণত ব্যবহৃত হয়। নীচে হ্যানসেন (2000) এর উল্লেখ দেখুন।

  • বুটস্ট্র্যাপ এই ক্ষেত্রে সর্বদা সামঞ্জস্যপূর্ণ নয়, নীচে ইউ (আসন্ন) দেখুন।

  • শেষ পর্যন্ত, কেন আপনি দিনের চারদিকে কেন্দ্রীভূত করে (যেমন, বিপি - এক্স কেবলমাত্র এক্সের পরিবর্তে) ডেটা রুপান্তর করছেন তা আমার কাছে স্পষ্ট নয়। আমি দুটি ইস্যু দেখতে পাচ্ছি:

    1. এই পদ্ধতির সাহায্যে আপনি কৃত্রিম দিনগুলি তৈরি করেন যেমন .1.১ দিন, ৪.১ ইত্যাদি I.০7 এর ফলাফলটি কীভাবে ব্যাখ্যা করা যায় তা আমি নিশ্চিত নই, যেহেতু আপনি কেবল day দিন এবং 7 দিনের মূল্যবোধ পালন করেছেন? (স্ট্যান্ডার্ড ব্রেকপয়েন্ট পয়েন্টে, 6 থেকে 7 এর মধ্যে প্রান্তিকের যে কোনও মান আপনাকে একই কোফ / বিচ্যুতি দেয়)
    2. বি 1 এবং বি 2 এর বিপরীত অর্থ রয়েছে, যেহেতু বি 1 দিন কমছে, যখন বি 2 এর জন্য বাড়ছে? সুতরাং কোনও ব্রেকপয়েন্টের অনানুষ্ঠানিক পরীক্ষাটি বি 1! = - বি 2

এর জন্য আদর্শ রেফারেন্সগুলি হ'ল:

  • স্ট্যান্ডার্ড ওএলএস: হ্যানসেন (2000) স্যাম্পল স্প্লিটিং এবং থ্রেশহোল্ড অনুমান, একনোমেট্রিকা, খণ্ড। 68, নং 3. (মে, 2000), পিপি 575-603।
  • আরও বহিরাগত মডেল: লি, সেও, শিন (২০১১) রিগ্রেশন মডেলগুলির প্রান্তিক প্রভাবগুলির জন্য পরীক্ষা করা, আমেরিকান স্ট্যাটিস্টিকাল অ্যাসোসিয়েশন জার্নাল (থিয়োরি এবং মেথডস) (২০১১), ১০6, ২২০-২31১
  • পিং ইউ (আগত) বুটস্ট্র্যাপ ইন থ্রোসোল্ড রিগ্রেশন ", একনোমেট্রিক থিওরি।

কোড:

# Using grid search over existing values:
search.grid <- sort(unique(subset(sleepstudy, Days > search.range[1] &
Days<search.range[2], "Days", drop=TRUE)))

res <- unlist(lapply(as.list(search.grid), foo))

plot(search.grid, res, type="l")
bp_grid <- search.grid[which.min(res)]

0

আপনি একটি মার্স মডেল চেষ্টা করতে পারেন । তবে, আমি এলোমেলো প্রভাবগুলি কীভাবে নির্দিষ্ট করব তা নিশ্চিত নই। earth(Reaction~Days+Subject, sleepstudy)


1
ধন্যবাদ - আমি প্যাকেজ ডকুমেন্টেশনের মাধ্যমে ব্রাউজ করেছি তবে এটি এলোমেলো প্রভাব সমর্থন করে বলে মনে হয় না।
39

0

এটি এমন একটি কাগজ যা মিশ্র প্রভাবগুলি মার্স প্রস্তাব করে। @ লকডঅফ যেমন উল্লেখ করেছে, কোনও প্যাকেজে আমি এর কোনও প্রয়োগ দেখতে পাচ্ছি না।

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