কমপ্লেক্স রিগ্রেশন প্লট আর


10

ভিজ্যুয়াল ডেটা বিশ্লেষণের জন্য আমার একটি জটিল গ্রাফিক্স আঁকার দরকার। আমার 2 টি ভেরিয়েবল এবং বড় সংখ্যক কেস রয়েছে (> 1000)। উদাহরণস্বরূপ (সংখ্যাটি যদি 100 কম ছড়িয়ে "সাধারণ" করা হয়):

x <- rnorm(100,mean=95,sd=50)
y <- rnorm(100,mean=35,sd=20)
d <- data.frame(x=x,y=y)

1) আমার পয়েন্ট সাইজের সাথে কাঁচা ডেটা প্লট করতে হবে, কাকতালীয়তার আপেক্ষিক ফ্রিকোয়েন্সি সম্পর্কিত, তাই plot(x,y)কোনও বিকল্প নয় - আমার পয়েন্ট সাইজ দরকার। এটি অর্জনের জন্য কী করা উচিত?

২) একই প্লটে আমাকে 95% আত্মবিশ্বাসের অন্তর্বৃত্তবৃত্তবৃত্তবৃত্ত এবং পারস্পরিক সম্পর্কের পরিবর্তনের প্রতিনিধিত্বকারী রেখা (সঠিকভাবে নামকরণ করতে হবে কি না জানি) প্লট করতে হবে - এরকম কিছু:

library(corrgram)
corrgram(d, order=TRUE, lower.panel=panel.ellipse, upper.panel=panel.pts)

correlogramm

তবে একটি প্লটে দুটি গ্রাফ রয়েছে।

3) অবশেষে, আমার এইগুলির উপরে একটি ফলস লাইনার রিগ্রেশন মডেল আঁকতে হবে:

r<-lm(y~x, data=d)
abline(r,col=2,lwd=2)

তবে ত্রুটির ব্যাপ্তির সাথে ... কিউকিউ-প্লটের মতো কিছু:

কিউকিউ-চক্রান্ত

তবে ফিটিং ত্রুটির জন্য, যদি এটি সম্ভব হয়।

সুতরাং প্রশ্নটি হ'ল:

কিভাবে এক গ্রাফ এ সব অর্জন?

উত্তর:


29

আপনি কি অর্জন করতে চান নীচের চিত্রটি কি এমন দেখাচ্ছে?

এখানে চিত্র বর্ণনা লিখুন

আপনার মতামত অনুসরণ করে এখানে আপডেট করা আর কোড রয়েছে:

do.it <- function(df, type="confidence", ...) {
  require(ellipse)
  lm0 <- lm(y ~ x, data=df)
  xc <- with(df, xyTable(x, y))
  df.new <- data.frame(x=seq(min(df$x), max(df$x), 0.1))
  pred.ulb <- predict(lm0, df.new, interval=type)
  pred.lo <- predict(loess(y ~ x, data=df), df.new)
  plot(xc$x, xc$y, cex=xc$number*2/3, xlab="x", ylab="y", ...)
  abline(lm0, col="red")
  lines(df.new$x, pred.lo, col="green", lwd=1.5)
  lines(df.new$x, pred.ulb[,"lwr"], lty=2, col="red")
  lines(df.new$x, pred.ulb[,"upr"], lty=2, col="red")    
  lines(ellipse(cor(df$x, df$y), scale=c(sd(df$x),sd(df$y)), 
        centre=c(mean(df$x),mean(df$y))), lwd=1.5, col="green")
  invisible(lm0)
}

set.seed(101)
n <- 1000
x <- rnorm(n, mean=2)
y <- 1.5 + 0.4*x + rnorm(n)
df <- data.frame(x=x, y=y)

# take a bootstrap sample
df <- df[sample(nrow(df), nrow(df), rep=TRUE),]

do.it(df, pch=19, col=rgb(0,0,.7,.5))

এবং এখানে ggplotized সংস্করণ

এখানে চিত্র বর্ণনা লিখুন

নিম্নলিখিত কোডের টুকরা দিয়ে উত্পাদিত:

xc <- with(df, xyTable(x, y))
df2 <- cbind.data.frame(x=xc$x, y=xc$y, n=xc$number)
df.ell <- as.data.frame(with(df, ellipse(cor(x, y), 
                                         scale=c(sd(x),sd(y)), 
                                         centre=c(mean(x),mean(y)))))
library(ggplot2)

ggplot(data=df2, aes(x=x, y=y)) + 
  geom_point(aes(size=n), alpha=.6) + 
  stat_smooth(data=df, method="loess", se=FALSE, color="green") + 
  stat_smooth(data=df, method="lm") +
  geom_path(data=df.ell, colour="green", size=1.2)

কালার শেডিং এফেক্ট সহ কুকের দূরত্বের মতো মডেল ফিট সূচকগুলি যুক্ত করে এটি আরও কিছুটা কাস্টমাইজ করা যেতে পারে।


1
@ chl +1, দুর্দান্ত গ্রাফ এবং সংক্ষিপ্ত কোড।
এমপিক্টাস

@ এমপিটাস ধন্যবাদ এটি আমাকে বুঝতে পেরেছিল যে আমি সঠিক নমুনা নিয়ে কাজ করি নি, আসলে :-)
chl

df.new <- data.frame(x = seq(min(x), max(x), 0.1))s size is also strange (too small). Also tryed এক্স,library(car) cr.plots(m0)

(এক্স,Y)car::dataEllipseellipse

2
@ টাল উপবৃত্তের ব্যাখ্যা corrgramপ্যাকেজের মতোই : এটি 95% জোড়ায়িত আত্মবিশ্বাসের অঞ্চলটি দ্বিখণ্ডিত স্বাভাবিক বিতরণকে কেন্দ্র করে এবং এসডি (এক্স) এবং এসডি (y) দ্বারা স্কেল করে দেখায় shows যদিও স্ক্যাটারপ্লোটে ব্যবহৃত হয় তখন আমি এর বড় ফ্যান নই। তবে মারডোক অ্যান্ড চৌ, বৃহত্তর পারস্পরিক সম্পর্কের ম্যাট্রিক্সের একটি গ্রাফিকাল প্রদর্শন , এম স্ট্যাট (1996) 50: 178 বা বন্ধুত্বপূর্ণ, সংশোধন: পারস্পরিক সম্পর্ক ম্যাট্রিক্সের জন্য অনুসন্ধানের প্রদর্শনসমূহ , এম স্ট্যাট (2002) 56: 316।
chl

2

পয়েন্ট 1 জন্য কেবল ব্যবহার করুন cex জন্য পয়েন্টের আকার নির্ধারণ করতে প্লটের পরামিতিটি ।

এই ক্ষেত্রে

x = rnorm(100)
plot(x, pch=20, cex=abs(x))

একটি প্লটে একাধিক গ্রাফ par(mfrow=c(numrows, numcols))থাকতে একটি সমান দুরত্ব বিন্যাস থাকতে বা layoutআরও জটিল তৈরি করতে ব্যবহার করুন।


1
টিপটি সম্পর্কে +1 cex, তবে আমি মনে করি যে ওপি পৃথক জিনিস নয়, একই ষড়যন্ত্র অঞ্চলে সমস্ত স্টাফ চায়।
chl

আহ ... এখন আমি প্রশ্নটি বুঝতে পারছি। ঠিক আছে, তবে তিনি কেবল তিনটি গ্রাফ ব্যবহার করতে curveবা pointsওভারপ্লিট করতে পারেন ;)
নিকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.