কীভাবে আর এর মধ্যে একটি বিচ্ছুরিত প্লটে নন-লিনিয়ার ট্রেন্ড লাইন যুক্ত করবেন? [বন্ধ]


27

আমার একটি ছত্রভঙ্গ প্লট আছে আমি কীভাবে নন-লিনিয়ার ট্রেন্ড লাইন যুক্ত করতে পারি?


4
আপনার কাছে ইতিমধ্যে প্রবণতা বক্রের সমীকরণ রয়েছে বা এটি যুক্ত করা ডেটা থেকে এর সমীকরণের কম্পিউটিং অন্তর্ভুক্ত করে?
হোবার

উত্তর:


34

আসুন কিছু ডেটা তৈরি করা যাক।

এন <- 100
x <- সিক (এন)
y <- rnorm (n, 50 + 30 * x ^ (- 0.2), 1)
ডেটা <- data.frame (x, y)

নিম্নলিখিতটি আপনাকে কীভাবে একটি লোয়েস লাইন বা একটি অ-লিনিয়ার রিগ্রেশন ফিট করতে পারে তা দেখায়।

প্লট (y ~ x, ডেটা)

# একটি লোয়েস লাইনে ফিট করুন
লয়েস_ফিট <- লয়েস (y ~ x, ডেটা)
লাইনগুলি (ডেটা $ x, পূর্বাভাস (লোস_ফিট), কল = "নীল")

# একটি অ-লিনিয়ার রিগ্রেশন ফিট করুন
nls_fit <- nls (y ~ a + b * x ^ (- সি), ডেটা, শুরু = তালিকা (a = 80, খ = 20, 
    সি = 0.2%)
লাইনগুলি (ডেটা $ x, পূর্বাভাস (এনএলএস_ফিট), কল = "লাল")

খণ্ড রফতানি_প্লট এর প্লট


1
ষড়যন্ত্র সম্পর্কে, যারা অর্ডার সমস্যাগুলির সম্মুখীন হয় তাদের জন্য এই পরামর্শটি কার্যকর
tflutre

23

আপনি যদি ggplot2(তৃতীয় প্লটিং সিস্টেমটি আর তে, বেস আর এবং ল্যাটিসের পরে) ব্যবহার করেন তবে এটি হয়ে যায়:

library(ggplot2)
ggplot(Data, aes(x,y)) + geom_point() + geom_smooth()

চক্রান্ত

আপনি কীভাবে ডেটা স্মুটেড চয়ন করতে পারেন: ?stat_smoothবিশদ এবং উদাহরণের জন্য দেখুন।


চমৎকার গ্রাফ এবং ব্যাখ্যা! তবে ছায়ার অঞ্চল মানে কী?
ডারউইন পিসি

3
ছায়াযুক্ত অঞ্চলটি স্মুথড লাইনের চারপাশে আস্থার ব্যবধান। ভিনসেন্টের বক্তব্য অনুযায়ী stat_smoothটাইপ করে আর সাহায্যের ফাইলটি অ্যাক্সেস করে আপনি নিজেই এটি জানতে পেরেছিলেন ?stat_smooth। :-)
আমি

9

আপনি যা সন্ধান করছেন ঠিক তা না জেনে latticeপ্যাকেজটি ব্যবহার করে আপনি সহজেই একটি লোয়েস বক্ররেখা যুক্ত করতে পারেন type="smooth"; যেমন,

> library(lattice)
> x <- rnorm(100)
> y <- rnorm(100)
> xyplot(y ~ x, type=c("smooth", "p"))

help("panel.loess")পরিবর্তনের জন্য লো-ফিটিং রুটিনে যেতে পারে এমন যুক্তিগুলির জন্য দেখুন , উদাহরণস্বরূপ, ব্যবহারের জন্য বহুপক্ষের ডিগ্রি।

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

হালনাগাদ

লোয়েসের বক্ররেখার রঙ পরিবর্তন করতে, আপনি একটি ছোট ফাংশন লিখতে এবং এটি panelপ্যারামিটার হিসাবে পাস করতে পারেন xyplot:

x <- rnorm(100)
y <- rnorm(100)

panel_fn <- function(x, y, ...)
{
    panel.xyplot(x, y, ...)
    panel.xyplot(x, y, type="smooth", col="red", ...)
}

xyplot(y ~ x, panel=panel_fn)

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


আপনি লাইনটি অন্য রঙে কীভাবে তৈরি করবেন?
এনগ্রিস্টুডেন্ট - মনিকা

1
@ এঙ্গারস্টুডেন্ট আমি আমার উত্তর আপডেট করেছি।
জেসন মরগান

8

আপনার প্রশ্নটি কিছুটা অস্পষ্ট, তাই আপনার সমস্যাটি কী তা নিয়ে আমি কিছুটা অনুমান করাচ্ছি। আপনি যদি একটি স্ক্যাটারপ্লট স্থাপন করতে পারেন এবং ডেটাটিকে কিছুটা বর্ণনা করতে পারেন তবে এটি অনেক সাহায্য করবে। দয়া করে, আমি যদি খারাপ অনুমান করে থাকি তবে আমার উত্তরটি উপেক্ষা করুন।

প্রথমত, এটি সম্ভব যে আপনার ডেটা এমন কিছু প্রক্রিয়া বর্ণনা করেছে যা আপনি যুক্তিসঙ্গতভাবে বিশ্বাস করেন যে অ-রৈখিক। উদাহরণস্বরূপ, আপনি যদি গাড়ীটির গতি বনাম হঠাৎ ব্রেকিং থামিয়ে গাড়িটির দূরত্বের প্রতিরোধের চেষ্টা করছেন, পদার্থবিজ্ঞান আমাদের বলবে যে গাড়ির শক্তি বেগের বর্গক্ষেত্রের সমানুপাতিক - বেগ নয় নিজেই। সুতরাং আপনি সম্ভবত এক্ষেত্রে বহুপদী রিগ্রেশন চেষ্টা করতে চাইতে পারেন এবং (আরে) আপনি এর মতো কিছু করতে পারেন model <- lm(d ~ poly(v,2),data=dataset)। রিগ্রেশন মডেলটিতে বিভিন্ন অ-লিনিয়ারিটি কীভাবে পাবেন সে সম্পর্কে অনেকগুলি ডকুমেন্টেশন রয়েছে।

অন্যদিকে, যদি আপনি একটি লাইন পেয়ে থাকেন যা "দোলা দিয়ে" থাকে এবং আপনি কেন জানেন যে এটি কেন দোলা দিয়ে থাকে তবে একটি ভাল সূচনা পয়েন্ট সম্ভবত স্থানীয়ভাবে ওজনযুক্ত রিগ্রেশন হতে পারে, বা loessআর এ This অঞ্চল, পুরো ডেটাসেটের বিপরীতে। একটি "কে নিকটতম-প্রতিবেশী" সংস্করণটি কল্পনা করা সবচেয়ে সহজ, যেখানে যে কোনও বিন্দুতে কার্ভের মান গণনা করতে, আপনি আগ্রহের পয়েন্টের নিকটবর্তী কে পয়েন্টগুলি খুঁজে পেতে পারেন এবং এগুলি গড় করেন। লয়স ঠিক এর মতো তবে স্ট্রেট গড়ের পরিবর্তে রিগ্রেশন ব্যবহার করে। এর জন্য ব্যবহার করুন model <- loess(y ~ x, data=dataset, span=...), যেখানে spanভেরিয়েবল স্মুথিংয়ের ডিগ্রি নিয়ন্ত্রণ করে।

তৃতীয় দিকে (হাতছাড়া হয়ে) - আপনি প্রবণতা সম্পর্কে কথা বলছেন? এটি কি অস্থায়ী সমস্যা? যদি তা হয় তবে ট্রেন্ড লাইনের ব্যাখ্যা এবং পরিসংখ্যানিক তাত্পর্যকে নিয়ে একটু সতর্ক হন। টাইম সিরিজের ট্রেন্ডগুলি "অটোরিগ্রেসিভ" প্রসেসগুলিতে উপস্থিত হতে পারে এবং এই প্রক্রিয়াগুলির জন্য প্রক্রিয়াটির এলোমেলো ঘটনা মাঝে মধ্যে এলোমেলো গোলমাল থেকে প্রবণতা তৈরি করতে পারে এবং ভুল পরিসংখ্যানগত তাত্পর্য পরীক্ষা আপনাকে বলতে পারে এটি তাৎপর্যপূর্ণ নয়!


6

স্ক্যাটার প্লটের নমুনা পয়েন্ট এবং একই গ্রাফের উপর মসৃণ বক্ররেখা স্থাপন করা:

  library(graphics)
  ## Create some x,y sample points falling on hyperbola, but with error:
  xSample = seq(0.1, 1.0, 0.1)
  ySample = 1.0 / xSample
  numPts <- length(xSample)
  ySample <- ySample + 0.5 * rnorm(numPts) ## Add some noise

  ## Create x,y points for smooth hyperbola:
  xCurve <- seq(0.1, 1.0, 0.001)
  yCurve <- 1.0 / xCurve

  plot(xSample, ySample, ylim = c(0.0, 12.0))   ## Plot the sample points
  lines(xCurve, yCurve, col = 'green', lty = 1) ## Plot the curve

মসৃণ বক্ররেখার সাথে স্ক্যাটার প্লট

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