দুই বা ততোধিক রিগ্রেশন মডেল থেকে opালু তুলনা করতে আমি কোন পরীক্ষা ব্যবহার করতে পারি?


29

আমি একজন ভবিষ্যদ্বাণীকের কাছে দুটি ভেরিয়েবলের প্রতিক্রিয়ার পার্থক্যটি পরীক্ষা করতে চাই। এখানে একটি ন্যূনতম প্রজননযোগ্য উদাহরণ।

library(nlme) 
## gls is used in the application; lm would suffice for this example
m.set <- gls(Sepal.Length ~ Petal.Width, data = iris, 
               subset = Species == "setosa")
m.vir <- gls(Sepal.Length ~ Petal.Width, data = iris, 
               subset = Species == "virginica")
m.ver <- gls(Sepal.Length ~ Petal.Width, data = iris, 
               subset = Species == "versicolor")

আমি দেখতে পাচ্ছি যে opeাল সহগগুলি পৃথক:

m.set$coefficients
(Intercept) Petal.Width 
  4.7771775   0.9301727
m.vir$coefficients
(Intercept) Petal.Width 
  5.2694172   0.6508306 
m.ver$coefficients
(Intercept) Petal.Width 
   4.044640    1.426365 

আমার তিনটি প্রশ্ন রয়েছে:

  1. আমি slালুগুলির মধ্যে পার্থক্যটি কীভাবে পরীক্ষা করতে পারি?
  2. আমি কীভাবে অবশিষ্টাংশের পার্থক্যটি পরীক্ষা করতে পারি?
  3. এই তুলনা উপস্থাপন করার একটি সহজ, কার্যকর উপায় কী?

একটি সম্পর্কিত প্রশ্ন, দুটি রিগ্রেশন মডেলের ভেরিয়েবল সহগের তুলনা করার পদ্ধতি , op ালু পার্থক্যের জন্য একটি ডামি ভেরিয়েবলের সাথে মডেলটিকে পুনরায় চালিত করার পরামর্শ দেয়, এমন কোনও বিকল্প রয়েছে যা স্বাধীন ডেটা সেট ব্যবহারের অনুমতি দেবে?


প্রথম প্রশ্নের সাথে সম্পর্কিত দেখুন stats.stackexchange.com/questions/55501/…
রাসেলপিয়ের্স

উত্তর:


22

আমি slালুগুলির মধ্যে পার্থক্যটি কীভাবে পরীক্ষা করতে পারি?

প্রজাতির জন্য একটি ডামি অন্তর্ভুক্ত করুন, এটি সাথে যোগাযোগ করুন এবং দেখুন যে এই ডামিটি তাৎপর্যপূর্ণ কিনা। যাক বৃত্যংশ দৈর্ঘ্য হতে হবে এবং প্যাডাল প্রস্থ হবে এবং তিন প্রজাতির জন্য ডামি ভেরিয়েবল হও। মডেল তুলনাএল আই পি আই এস 1 , এস 2 , এস 3পিআমিএলআমিপিআমিএস1,এস2,এস3

(এলআমি)=β0+ +β1পিআমি

মডেলটির সাহায্যে যা প্রতিটি প্রজাতির জন্য প্রভাব আলাদা হতে দেয় :পিআমি

(এলআমি)=α0+ +α1এস2+ +α2এস3+ +α4পিআমি+ +α5পিআমিএস2+ +α6পিআমিএস3

জিএলএস অনুমানকারীগুলি এমএলই এবং প্রথম মডেল দ্বিতীয়টির একটি সাবমডেল, তাই আপনি এখানে সম্ভাবনা অনুপাত পরীক্ষা ব্যবহার করতে পারেন। সম্ভাব্যতাগুলি logLikফাংশনটি ব্যবহার করে উত্তোলন করা যেতে পারে এবং পরীক্ষার জন্য স্বাধীনতার ডিগ্রি হবে যেহেতু আপনি সাবমোডলে পৌঁছানোর জন্য পরামিতি মুছে ফেলেছেন।444

তুলনা উপস্থাপনের একটি সহজ, কার্যকর উপায় কী?

আমি মনে করি সবচেয়ে আকর্ষণীয় উপায় হ'ল স্ট্যান্ডার্ড ত্রুটির উপর ভিত্তি করে ত্রুটি বারের সাহায্যে প্রতিটি প্রজাতির জন্য একই ধরণের অক্ষের রেখাগুলি প্লট করা। এটি প্রজাতির এবং সাথে তাদের সম্পর্কের মধ্যে পার্থক্য (বা অ-পার্থক্য) তৈরি করবে apparentপিআমি

সম্পাদনা: আমি লক্ষ্য করেছি যে আরও একটি প্রশ্ন শরীরে যুক্ত হয়েছে। সুতরাং, আমি একটি উত্তর যোগ করছি:

আমি কীভাবে অবশিষ্টাংশের পার্থক্যটি পরীক্ষা করতে পারি?

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

  • যদি আপনি কেবল তারতম্যগুলি পরীক্ষা করতে চান তবে মূল প্রভাবগুলি রেখে, তারপরে "নাল" মডেলটি আমি উপরে উল্লিখিত ইন্টারঅ্যাকশনগুলির সাথে মডেল হওয়া উচিত। পরীক্ষার জন্য স্বাধীনতার ডিগ্রিগুলি তখন ।2

  • আপনি যদি সহগের সাথে যৌথভাবে বৈকল্পিক পরীক্ষা করতে চান, তবে নাল মডেলটি আমি উপরে লিখেছি এমন প্রথম মডেল হওয়া উচিত। পরীক্ষার জন্য স্বাধীনতার ডিগ্রিগুলি তখন ।6


দ্বিতীয় মডেলটিতে কেন কোনও নেই ? আরে মডেলটির সঠিক বাস্তবায়ন কি ? এস1gls(Sepal.Length ~ species:Petal.Width, data = iris)
আবে

হাই @ আবে হ'ল "রেফারেন্স" প্রজাতি - সেই প্রজাতির জন্য রিগ্রেশন রেখাটি । যদি একটি শ্রেণিবদ্ধ পরিবর্তনশীল হয় তবে আমার ধারণা সিনট্যাক্স হবে। α 0 + α 4 পি iএস1α0+ +α4পিআমিspeciesgls(Sepal.Length ~ species*Petal.Width, data=iris)
ম্যাক্রো

@ ম্যাক্রো সুন্দর উত্তর (+1)! আমি অবাক হয়েছি আপনি glsমডেলটি ফিট করতে পারবেন তবে বিকল্পটি weights=varIdent(form=~1|Species)(দ্বিতীয় প্রশ্ন সম্পর্কিত) দিয়ে প্রতিটি প্রজাতির জন্য বিভিন্ন অবশেষ বৈকল্পের জন্য অনুমতি দেবেন কিনা ?
COOLSerdash

15

আর কোডের সাথে এই প্রশ্নের উত্তর দিতে, নিম্নলিখিতটি ব্যবহার করুন:
1. আমি কীভাবে opালুগুলির মধ্যে পার্থক্যটি পরীক্ষা করতে পারি?
উত্তর: প্রজাতি দ্বারা পেটাল.উইথথের মিথস্ক্রিয়া থেকে অানোভা পি-মানটি পরীক্ষা করুন, তারপরে নীচে lsmeans :: lstrends ব্যবহার করে opালু তুলনা করুন।

library(lsmeans)
m.interaction <- lm(Sepal.Length ~ Petal.Width*Species, data = iris)
anova(m.interaction)
 Analysis of Variance Table

 Response: Sepal.Length
                      Df Sum Sq Mean Sq  F value Pr(>F)    
 Petal.Width           1 68.353  68.353 298.0784 <2e-16 ***
 Species               2  0.035   0.017   0.0754 0.9274    
 Petal.Width:Species   2  0.759   0.380   1.6552 0.1947    
 Residuals           144 33.021   0.229                    
 ---
 Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

# Obtain slopes
m.interaction$coefficients
m.lst <- lstrends(m.interaction, "Species", var="Petal.Width")
 Species    Petal.Width.trend        SE  df   lower.CL upper.CL
 setosa             0.9301727 0.6491360 144 -0.3528933 2.213239
 versicolor         1.4263647 0.3459350 144  0.7425981 2.110131
 virginica          0.6508306 0.2490791 144  0.1585071 1.143154

# Compare slopes
pairs(m.lst)
 contrast                 estimate        SE  df t.ratio p.value
 setosa - versicolor    -0.4961919 0.7355601 144  -0.675  0.7786
 setosa - virginica      0.2793421 0.6952826 144   0.402  0.9149
 versicolor - virginica  0.7755341 0.4262762 144   1.819  0.1669

২. কীভাবে আমি অবশিষ্টাংশের পার্থক্যটি পরীক্ষা করতে পারি?
যদি আমি প্রশ্নটি বুঝতে পারি তবে আপনি পিয়ারসন পারস্পরিক সম্পর্কের তুলনায় ফিশার ট্রান্সফর্মের সাথে তুলনা করতে পারেন, এটি "ফিশারের আর-টু-জেড" নামেও পরিচিত, নীচে।

library(psych)
library(data.table)
iris <- as.data.table(iris)
# Calculate Pearson's R
m.correlations <- iris[, cor(Sepal.Length, Petal.Width), by = Species]
m.correlations
# Compare R values with Fisher's R to Z
paired.r(m.correlations[Species=="setosa", V1], m.correlations[Species=="versicolor", V1], 
         n = iris[Species %in% c("setosa", "versicolor"), .N])
paired.r(m.correlations[Species=="setosa", V1], m.correlations[Species=="virginica", V1], 
         n = iris[Species %in% c("setosa", "virginica"), .N])
paired.r(m.correlations[Species=="virginica", V1], m.correlations[Species=="versicolor", V1], 
         n = iris[Species %in% c("virginica", "versicolor"), .N])

৩. এই তুলনাগুলি উপস্থাপনের একটি সহজ, কার্যকর উপায় কী?
"আমরা প্রতিটি প্রজাতির জন্য পেটাল দৈর্ঘ্যের সাথে পেটাল দৈর্ঘ্যের সম্পর্ককে তুলনার জন্য লিনিয়ার রিগ্রেশন ব্যবহার করি। আই. সেটোসা (বি = 0.9), আই। ভার্সিকোলার (বি ) এর জন্য সেপাল দৈর্ঘ্যের থেকে পেটাল প্রস্থের সম্পর্কের মধ্যে আমরা একটি উল্লেখযোগ্য মিথস্ক্রিয়া খুঁজে পাইনি। = 1.4), না আমি ভার্জিনিকা (বি = 0.6); এফ (2, 144) = 1.6, পি = 0.19 একটি ফিশারের আর-টু-জেড তুলনা I. সেটোসা (আর = 0.28) এর পিয়ারসন পারস্পরিক সম্পর্ক ছিল I এর তুলনায় উল্লেখযোগ্যভাবে কম (p = 0.02) । ভার্সিকোলার (r = 0.55) একইভাবে, I. ভার্জিনিকার (r = 0.28) এর পারস্পরিক সম্পর্ক I. ভার্সিকোলারের জন্য পরিলক্ষিত তুলনায় উল্লেখযোগ্যভাবে দুর্বল (p = 0.02) ছিল was। "

অবশেষে, সর্বদা আপনার ফলাফল চাক্ষুষ!

plotly_interaction <- function(data, x, y, category, colors = col2rgb(viridis(nlevels(as.factor(data[[category]])))), ...) {
  # Create Plotly scatter plot of x vs y, with separate lines for each level of the categorical variable. 
  # In other words, create an interaction scatter plot.
  # The "colors" must be supplied in a RGB triplet, as produced by col2rgb().

  require(plotly)
  require(viridis)
  require(broom)

  groups <- unique(data[[category]])

  p <- plot_ly(...)

  for (i in 1:length(groups)) {
    groupData = data[which(data[[category]]==groups[[i]]), ]
    p <- add_lines(p, data = groupData,
                   y = fitted(lm(data = groupData, groupData[[y]] ~ groupData[[x]])),
                   x = groupData[[x]],
                   line = list(color = paste('rgb', '(', paste(colors[, i], collapse = ", "), ')')),
                   name = groups[[i]],
                   showlegend = FALSE)
    p <- add_ribbons(p, data = augment(lm(data = groupData, groupData[[y]] ~ groupData[[x]])),
                     y = groupData[[y]],
                     x = groupData[[x]],
                     ymin = ~.fitted - 1.96 * .se.fit,
                     ymax = ~.fitted + 1.96 * .se.fit,
                     line = list(color = paste('rgba','(', paste(colors[, i], collapse = ", "), ', 0.05)')), 
                     fillcolor = paste('rgba', '(', paste(colors[, i], collapse = ", "), ', 0.1)'),
                     showlegend = FALSE)
    p <- add_markers(p, data = groupData, 
                     x = groupData[[x]], 
                     y = groupData[[y]],
                     symbol = groupData[[category]],
                     marker = list(color=paste('rgb','(', paste(colors[, i], collapse = ", "))))
  }
  p <- layout(p, xaxis = list(title = x), yaxis = list(title = y))
  return(p)
}

plotly_interaction(iris, "Sepal.Length", "Petal.Width", "Species")

irisPlot


8

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


দেখে মনে হচ্ছে আমরা প্রায় একই সময়ে মোটামুটি অনুরূপ উত্তর পোস্ট করেছি। +1
ম্যাক্রো

@ ম্যাক্রো, হ্যাঁ, তবে আপনারা বেশিরভাগই ভাল (+1 আগে); আপনি সমস্ত 3 টি প্রশ্নের উত্তর দিয়েছিলেন যা আমি আমার প্রথম পড়ার (পুরোপুরি নয়) মিস করেছি। আমার অবদান এখানে বিভ্রান্তিকর অংশ।
গুং - মনিকা পুনরায়

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

3
আমার চিন্তাভাবনা থেকে আপনারা উভয়কেই উত্সাহ দেওয়া উচিত যা আমি করছি।
মাইকেল আর চেরনিক

1
মডেলগুলির মধ্যে ত্রুটির বৈকল্পিকতা প্রশংসনীয়ভাবে পৃথক না হয় তবে ডামি ভেরিয়েবল পরামর্শটি একটি ভাল অন্যথায় আপনি একটি স্যাটার্থওয়েট-ওয়েলচ টি-টেস্ট প্রয়োগ করতে পারেন (যা কেবলমাত্র সংক্ষিপ্ত পরিসংখ্যান জানা থাকলে উপলব্ধ হওয়ার একক একক সুবিধা রয়েছে, যেমন প্রকাশিত কাগজপত্র পড়ার ক্ষেত্রে প্রায়শই ঘটে থাকে) বা সম্মিলিত মডেলটির সাথে মানানসই ভারসাম্যযুক্ত ন্যূনতম স্কোয়ার ব্যবহার করতে পারেন।
হোবার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.