Ggplot2 এ রিগ্রেশন লাইনের পূর্বাভাস বা প্রসারিত কীভাবে?


18

আমার কাছে একটি ডেটা ফ্রেম রয়েছে যাতে দুটি সময়ের সিরিজ থাকে: তারিখ এবং সংস্করণ নম্বর Emacs এবং ফায়ারফক্স প্রকাশের। একটি ggplot2 কমান্ড ব্যবহার করে বিন্দুগুলিকে লাইনে পরিণত করার জন্য একটি চার্ট তৈরি করা সহজ যা লোয়েস (এমনভাবে দেখায় যে কিছুটা মজাদার মনে হয়) uses

কীভাবে আমি ভবিষ্যতে লাইনগুলি প্রসারিত করতে পারি? আমি নির্ধারণ করতে চাই যে ইমাক্স এবং ফায়ারফক্স সংস্করণ নম্বরগুলি কখন এবং কখন অতিক্রম করবে এবং যদি ত্রুটির পরিসীমা দেখানোর কোনও উপায় থাকে তবে আরও ভাল।

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

> library(ggplot2)
> programs <- read.csv("http://www.miskatonic.org/files/se-program-versions.csv")
> programs$Date <- as.Date(programs$Date, format="%B %d, %Y")
> head(programs)
  Program Version       Date
1   Emacs    24.1 2012-06-10
2   Emacs    23.4 2012-01-29
3   Emacs    23.3 2011-03-10
4   Emacs    23.2 2010-05-08
5   Emacs    23.1 2009-07-29
6   Emacs    22.3 2008-09-05
> head(subset(programs, Program == "Firefox"))
   Program Version       Date
18 Firefox      16 2012-10-09
19 Firefox      15 2012-08-28
20 Firefox      14 2012-06-26
21 Firefox      13 2012-06-15
22 Firefox      12 2012-04-24
23 Firefox      11 2012-03-13
> ggplot(programs, aes(y = Version, x = Date, colour = Program)) + geom_point() + geom_smooth(span = 0.5, fill = NA)

তারিখ অনুসারে ইমাস এবং ফায়ারফক্স সংস্করণ

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

উত্তর:


22

@ গ্লেন যেমন উল্লেখ করেছেন আপনাকে stat_smoothএক্সট্রাপোলেশনগুলি সমর্থন করে এমন একটি পদ্ধতি ব্যবহার করতে হবে , যা loessতা নয়। lmতবে। আপনাকে যা করতে হবে তা হ'ল আপনি যে পরিমানটি পূর্বাভাস দিতে চান তা অন্তর্ভুক্ত করতে এক্স-অক্ষের fullrangeপ্যারামিটারটি ব্যবহার stat_smoothএবং প্রসারিত করা। আমার কাছে আপনার ডেটা নেই, তবে এখানে এমটিকার্স ডেটাসেট ব্যবহার করে একটি উদাহরণ দেওয়া হয়েছে:

ggplot(mtcars,aes(x=disp,y=hp)) + geom_point() + xlim(0,700) +
stat_smooth(method="lm",fullrange=TRUE)

1
ধন্যবাদ, এটি কাজ করে (ফায়ারফক্স লাইনটি কাজ করে এমন কিছু তথ্য রেখে): জিজিপ্লট (সাবসেট (প্রোগ্রামগুলি! (প্রোগ্রাম == "ফায়ারফক্স" এবং সংস্করণ <4)), এস (y = সংস্করণ, x = তারিখ, রঙ = প্রোগ্রাম)) + জিওম_পয়েন্ট () + ইলিম (0,30) + xlim (as. তারিখ ("1985-01-01")) হিসাবে, তারিখ ("2015-01-01") + স্ট্যাটাস_মথ (পদ্ধতি = lm, পূর্ণাঙ্গ = সত্য)
উইলিয়াম ডেন্টন

3

আপনাকে ggplot2 এর বাইরে ভবিষ্যতের পর্যবেক্ষণের জন্য মানগুলির পূর্বাভাস দিতে হবে এবং তারপরে পূর্বাভাসিত মানগুলি প্লট করতে হবে, আপনি এই ভবিষ্যদ্বাণীগুলির জন্য একটি আস্থা অন্তরও পেতে পারেন।

লোস ফাংশনটি দেখুন, যদিও এটি আপনার ডেটার সীমার বাইরে ভবিষ্যদ্বাণীগুলি করে কিনা তা আমি নিশ্চিত নই, তবে আমি নিশ্চিত যে কিছু মসৃণ ফাংশন এটি করে।

তবে আপনার ডেটা সীমার বাইরে মানগুলি পূর্বাভাস দেওয়া বুদ্ধিমানের কাজ নয়। আমি এই ভবিষ্যদ্বাণীগুলির উপর খুব বেশি ভরসা রাখব না।

আপনি সময় সিরিজের মডেল ব্যবহার করে ভবিষ্যদ্বাণী করা মানগুলি তদন্ত করতে চাইতে পারেন।

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