জিপিপ্লট 2 ব্যবহার করে কিউকিউ প্লটের সাথে কীভাবে দুটি ডেটাসেটের তুলনা করবেন?


11

একজন পরিসংখ্যান এবং আর নবজাতক উভয় হিসাবে, আমি 1: 1 এর একটি অনুপাত সহ একটি QQplots উত্পন্ন করার চেষ্টা করতে সত্যিই খুব কঠিন সময় পার করছি। ggplot2 ডিফল্ট আর প্লটিং প্যাকেজগুলির চেয়ে প্লট করার উপর অনেক বেশি নিয়ন্ত্রণের প্রস্তাব দেয় বলে মনে হয়, তবে দুটি ডেটাসেটের তুলনা করার জন্য আমি কীভাবে ggplot2 এ কিউকিপ্লট করতে পারি তা দেখতে পাচ্ছি না।

সুতরাং আমার প্রশ্ন, ggplot2 এর মতো কিসের সমতুল্য:

qqplot(datset1,dataset2)

উত্তর:


12

সবচেয়ে সহজ কাজটি ঠিক কীভাবে qqplotকাজ করে তা দেখুন । সুতরাং আর টাইপ:

R> qqplot
function (x, y, plot.it = TRUE, xlab = deparse(substitute(x)), 
    ylab = deparse(substitute(y)), ...) 
{
    sx <- sort(x)
    sy <- sort(y)
    lenx <- length(sx)
    leny <- length(sy)
    if (leny < lenx) 
        sx <- approx(1L:lenx, sx, n = leny)$y
    if (leny > lenx) 
        sy <- approx(1L:leny, sy, n = lenx)$y
    if (plot.it) 
        plot(sx, sy, xlab = xlab, ylab = ylab, ...)
    invisible(list(x = sx, y = sy))
}
<environment: namespace:stats>

সুতরাং প্লটটি তৈরি করতে আমাদের কেবল পেতে হবে sxএবং sy, যেমন:

x <- rnorm(10);y <- rnorm(20)

sx <- sort(x); sy <- sort(y)
lenx <- length(sx)
leny <- length(sy)
if (leny < lenx)sx <- approx(1L:lenx, sx, n = leny)$y
if (leny > lenx)sy <- approx(1L:leny, sy, n = lenx)$y

require(ggplot2)
g = ggplot() + geom_point(aes(x=sx, y=sy))
g

qgplot ggplot2 ব্যবহার করে


2
ggplot2একটি আছে stat_qq(), এটি ব্যবহার করার কিছু উপায় আছে? এটি একটি ভেক্টরকে একটি তাত্ত্বিক বিতরণের সাথে তুলনা করার জন্য ডিজাইন করা হয়েছে বলে মনে হয়, দুটি ভিন্ন ভেক্টরকে তুলনা করতে কীভাবে এটি ব্যবহার করব তা আমি দেখতে পেলাম না।
কেন উইলিয়ামস

7
আপনি আসলে qqplot()আপনার জন্য সমস্ত sort/ length/ approxগণনা করতে পারেন: d <- as.data.frame(qqplot(x, y, plot.it=FALSE)); ggplot(d) + geom_point(aes(x=x, y=y))
কেন উইলিয়ামস

9

আমি যখন একটি সাধারণ লাইনও চাই তখন আমি এটি ব্যবহার করি।

ggplot(data, aes(sample = data$column1)) + stat_qq(color="firebrick2", alpha=1) + geom_abline(intercept = mean(data$column1), slope = sd(data$column1))


0

যদি আপনার আসল প্রয়োজনটি কেবল অনুপাত নিয়ন্ত্রণ করতে হয় তবে এটি করার একটি উপায় এখানে রয়েছে:

x <- rnorm(1000)
y <- rnorm(1500, 2)

myqq <- function(x, y, ...) {
  rg <- range(x, y, na.rm=T)
  qqplot(x, y, xlim=rg, ylim=rg, ...)
}

myqq(x, y)

myqq প্লট

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