কীভাবে জিএএম তে একটি মিথস্ক্রিয়া শব্দ অন্তর্ভুক্ত করা যায়?


24

নিম্নলিখিত কোড দুটি সময় সিরিজের মধ্যে মিলটি মূল্যায়ন করে:

set.seed(10)
RandData <- rnorm(8760*2)
America <- rep(c('NewYork','Miami'),each=8760)

Date = seq(from=as.POSIXct("1991-01-01 00:00"), 
           to=as.POSIXct("1991-12-31 23:00"), length=8760)

DatNew <- data.frame(Loc = America,
                     Doy = as.numeric(format(Date,format = "%j")),
                     Tod = as.numeric(format(Date,format = "%H")),
                     Temp = RandData,
                     DecTime = rep(seq(1, length(RandData)/2) / (length(RandData)/2),
                                   2))
require(mgcv)
mod1 <- gam(Temp ~ Loc + s(Doy) + s(Doy,by = Loc) +
  s(Tod) + s(Tod,by = Loc),data = DatNew, method = "ML")

এখানে, gamনিউ ইয়র্ক এবং মিয়ামির তাপমাত্রা দিনের বিভিন্ন সময়ে গড় তাপমাত্রা (উভয় অবস্থানের) থেকে কীভাবে পরিবর্তিত হয় তা মূল্যায়ন করতে ব্যবহৃত হয়। আমার এখন যে সমস্যাটি রয়েছে তা হ'ল আমাকে একটি মিথস্ক্রিয়া শব্দটি অন্তর্ভুক্ত করতে হবে যা দেখায় যে বছরের প্রতিটি দিনের তাপমাত্রা কীভাবে বছরের বিভিন্ন দিনগুলিতে দিন জুড়ে থাকে। আমি শেষ পর্যন্ত এই সমস্ত তথ্য একটি গ্রাফে (প্রতিটি অবস্থানের জন্য) প্রদর্শিত হবে বলে আশা করি। সুতরাং, মায়ামির জন্য আমি একটি গ্রাফ রাখব আশা করি যা দেখায় যে দিনের বিভিন্ন সময় এবং বছরের বিভিন্ন সময়ে তাপমাত্রা গড় থেকে কীভাবে পরিবর্তিত হয় (3 ডি প্লট?)


2
আপনি এই প্রশ্নের উত্তর খুঁজে পেতে পারেন stats.stackexchange.com/questions/18937/… প্রাসঙ্গিক।
jboman

উত্তর:


18

"গ্যাম" এ "এ" এর অর্থ "অ্যাডিটিভ" যার অর্থ কোনও ইন্টারঅ্যাকশন নেই, সুতরাং আপনি যদি ইন্টারঅ্যাকশনগুলিতে ফিট করেন তবে আপনি সত্যিই আর কোনও গ্যাম মডেল ফিট করছেন না।

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

আপনি আরও উপযুক্ত সরঞ্জাম হিসাবে প্রজেকশন অনুসরণের রিগ্রেশনটিকেও দেখতে পারেন। Essণ বা আরও বেশি প্যারামেট্রিক মডেল (পাপ এবং / অথবা কোস সহ )ও কার্যকর হতে পারে।

কোন সরঞ্জাম (গুলি) ব্যবহার করবেন সে সম্পর্কে সিদ্ধান্তের অংশ হ'ল আপনি কোন প্রশ্নের উত্তর দেওয়ার চেষ্টা করছেন। আপনি কি কেবল ভবিষ্যতের তারিখ এবং সময় পূর্বাভাস দেওয়ার জন্য একটি মডেল সন্ধান করার চেষ্টা করছেন? মডেলটিতে কোনও নির্দিষ্ট ভবিষ্যদ্বাণীকারী তাৎপর্যপূর্ণ কিনা তা পরীক্ষা করার চেষ্টা করছেন? আপনি কি ভবিষ্যদ্বাণী এবং ফলাফলের মধ্যে সম্পর্কের আকৃতিটি বোঝার চেষ্টা করছেন? অন্যকিছু?


3
ধরুন আপনার কাছে দুটি ভবিষ্যদ্বাণী রয়েছে - এখনও একটি ? এটিকে কোনও অর্থে 'ইন্টারঅ্যাকশন' হিসাবে ভাবা যেতে পারে। এছাড়াও, আমি মনে করি প্যাকেজটি আপনাকে (যা আমার মনে হয় যুক্তিটি কী করছে)। এটা কি এখনও গ্যাম? y = f 1 ( x 1 ) + f 2 ( x 2 ) + f 3 ( x 1 x 2 ) + ε y = f 1 ( x 1 ) + f 2 ( x 2 ) + f 3 ( x 1 ) x 2 + f 4 ( x 2)এক্স1,এক্স2
Y=1(এক্স1)+ +2(এক্স2)+ +3(এক্স1এক্স2)+ +ε
gam
Y=1(এক্স1)+ +2(এক্স2)+ +3(এক্স1)এক্স2+ +4(এক্স2)এক্স1+ +ε
by
ম্যাক্রো

1
@ ম্যাক্রো, আপনি চুল ভাগ করতে চান বা না চান এটি নির্ভর করে (ভাল প্রযুক্তিগতভাবে আপনি যা লিখেছেন তা সম্ভবত এটি যেহেতু আপনি সত্যিই জি অংশটি ব্যবহার করছেন না)।
গ্রেগ তুষার

2
@ ম্যাক্রো, আমি নিশ্চিত যে এই বিষয়ে আরও কিছু বলা হয়েছে, তবে লিনিয়ার মডেলগুলির এক্সিজিজেস এই ভেন্যালের নিবন্ধের জিএএমএস-এর পৃষ্ঠা 4 দেখুন । এটি কীভাবে নন-অ্যাডেটিভ মূল প্রভাব এবং মিথস্ক্রিয়া প্রভাবগুলি একই সাথে চিহ্নিত করা যায় তা পরিষ্কার নয়।
অ্যান্ডি ডাব্লু

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

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

25

দুটি ক্রমাগত ভেরিয়েবলের জন্য আপনি যা চান তা করতে পারেন (এটি একটি ইন্টারঅ্যাকশন হোক বা না হোক আমি অন্যদেরকে @ গ্রেগের উত্তরের মন্তব্য অনুসারে আলোচনার জন্য ছেড়ে দেব) ব্যবহার করে:

mod1 <- gam(Temp ~ Loc + s(Doy, bs = "cc", k = 5) + 
                         s(Doy, bs = "cc", by = Loc, k = 5, m = 1) + 
                         s(Tod, bs = "cc", k = 5) + 
                         s(Tod, bs = "cc", by = Loc, k = 5, m = 1) +
                         te(Tod, Doy, by = Loc, bs = rep("cc",2)),
            data = DatNew, method = "ML")

এরপরে আরও জটিল মডেলের মধ্যে আরও সহজ মডেলটি নেস্ট করা উচিত। সেই সহজ মডেলটি হ'ল:

mod0 <- gam(Temp ~ Loc + s(Doy, bs = "cc", k = 5) + 
                         s(Doy, bs = "cc", by = Loc, k = 5, m = 1) + 
                         s(Tod, bs = "cc", k = 5) + 
                         s(Tod, bs = "cc", by = Loc, k = 5, m = 1),
            data = DatNew, method = "ML")

দুটি জিনিস এখানে নোট করুন:

  1. প্রতিটি স্মুথ জন্য বেস-টাইপ বর্ণিত হয়। এই ক্ষেত্রে আমরা সেখানে 23:59 এবং 00:00 এর মধ্যে টেম্প কোন সান্তরতা আছে আশা Todকিংবা মধ্যবর্তী Doy == 1এবং Doy == 365.25। সুতরাং চক্রীয় ঘন স্প্লিংস উপযুক্ত, এখানে মাধ্যমে নির্দেশিত bs = "cc"
  2. ভিত্তি মাত্রা স্পষ্টভাবে বলা হয় ( k = 5)। এটি একটি te()পদে প্রতিটি মসৃণ জন্য ডিফল্ট ভিত্তিক মাত্রা মেলে ।

একসাথে এই বৈশিষ্ট্যগুলি নিশ্চিত করে যে সহজ মডেলটি আরও জটিল মডেলের অভ্যন্তরে বাসা বাঁধে।

আরো দেখুন ?gam.modelsমধ্যে mgcv


আপনার ২ য় পয়েন্টের সাথে সম্পর্কিত - এর স্পেসিফিকেশন ছাড়াও, কোনও kগিঁটের সংখ্যাও ঠিক করা উচিত (উদাঃ fx=TRUE)। যদি তা না হয় তবে ফলাফলের মডেল edfপ্রতিটি শর্তের জন্য পৃথক দেখায় ।
মার্ক

আমি এই উত্তর একটু কিছু নতুন কার্যকারিতা দেওয়া আপডেট করা উচিত mgcv প্রান্তিক ঘাঁটি জন্য splines পরিপ্রেক্ষিতে প্যাকেজ। এটি বলেছিল, আমি একমত নই যে আপনাকে স্প্লাইনের জন্য স্বাধীনতার ডিগ্রি ঠিক করতে হবে। মূলগুলি হ'ল মডেলগুলির ঘাঁটিগুলি যথাযথভাবে নেস্ট করা হয়েছে তা নিশ্চিত করা। তারপরে মডেলগুলির মধ্যে পার্থক্যগুলি ভিত্তি ফাংশনগুলির জন্য কিছু সহগকে সেট করে শূন্যে স্থাপন করা সম্ভব, ঠিক যেমন অন-স্প্লাইন শর্তাবলী সহ রৈখিক মডেলগুলিতে ঘটে।
মনিকা পুনরায় ইনস্টল করুন - জি সিম্পসন

3
আশা করছেন কেউ এই থ্রেডটি এখনও দেখছেন এবং উত্তর দিতে পারে। এই মডেলের জন্য, আপনাকে উভয় কিভাবে নির্দিষ্ট করতে হবে আসা s(Doy...)এবং s(Doy, by =Loc...)? আমি ভেবেছিলাম প্রথমটিকে পরবর্তীকালে বাসা বেঁধে দেওয়া হবে এবং এইভাবে উল্লেখ করা অস্বাভাবিক হবে?
অহং_

3
না, প্রথম মসৃণটি হ'ল গ্লোবাল ফাংশন এবং মসৃণ দ্বারা এটি এবং বৈশ্বিক স্মুথের মধ্যে সাইট-নির্দিষ্ট পার্থক্যের প্রতিনিধিত্ব করে। m = 1যদিও মসৃণদের পার্থক্যটি মসৃণ করার জন্য প্রথম ডেরাইভেটিভের উপর জরিমানা দেওয়ার জন্য তাদের সত্যিই যুক্ত করা দরকার ।
মনিকা পুনরায় ইনস্টল করুন - জি সিম্পসন

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