আমি পূর্বাভাসের জন্য বেশ কয়েকটি সরঞ্জাম অন্বেষণ করেছি এবং জেনারালাইজড অ্যাডিটিভ মডেলস (জিএএম) এই উদ্দেশ্যে সর্বাধিক সম্ভাবনা পেয়েছি। গ্যামস দুর্দান্ত! তারা জটিল মডেলগুলিকে খুব সংক্ষিপ্তভাবে নির্দিষ্ট করার অনুমতি দেয়। তবে, একই একই সংযোগটি আমাকে কিছুটা বিভ্রান্তির কারণ করছে, বিশেষ করে জিএএমরা কীভাবে ইন্টারঅ্যাকশন শর্তাদি এবং কোভেরিয়েটগুলি সম্পর্কে ধারণা দেয়।
উদাহরণস্বরূপ ডেটা সেট (পোস্টের শেষে পুনরুত্পাদনযোগ্য কোড) বিবেচনা করুন যার মধ্যে y
কয়েকজন গাউসিয়ান দ্বারা বিভক্ত একঘেয়ে ফাংশন এবং কিছুটা গোলমাল:
ডেটা সেটটিতে কয়েকটি পূর্বাভাসীর ভেরিয়েবল রয়েছে:
x
: তথ্য সূচী (1-100)।w
:y
গৌসিয়ান যেখানে উপস্থিত রয়েছে তার বিভাগগুলি চিহ্নিত করে এমন একটি গৌণ বৈশিষ্ট্য । 11 এবং 30 এবং 51 থেকে 70 এর মধ্যেw
থাকা 1-20 এর মান রয়েছে Otherwisex
অন্যথায়,w
0 হয়।w2
:w + 1
, যাতে কোনও 0 মান থাকে না।
আর এর mgcv
প্যাকেজটি এই ডেটার জন্য কয়েকটি সম্ভাব্য মডেল নির্দিষ্ট করা সহজ করে তোলে:
মডেল 1 এবং 2 মোটামুটি স্বজ্ঞাত। ডিফল্ট মসৃণতায় y
সূচকের মান থেকে কেবল ভবিষ্যদ্বাণী করা x
অস্পষ্টভাবে সঠিক কিছু তৈরি করে তবে খুব মসৃণ। y
কেবলমাত্র w
উপস্থিত "গড় গসিয়ান" মডেল উপস্থিত ফলাফল থেকে ভবিষ্যদ্বাণী করা y
এবং অন্যান্য তথ্য পয়েন্টগুলির কোনও "সচেতনতা" নেই, যার সবকটিরই w
মান 0 থাকে।
মডেল 3 উভয় x
এবং w
1 ডি মসৃণ হিসাবে ব্যবহার করে, একটি দুর্দান্ত ফিট তৈরি করে। মডেল 4 টি 2 ডি মসৃণ ব্যবহার করে x
এবং w
একটি দুর্দান্ত ফিট দেয়। এই দুটি মডেল অভিন্ন হলেও একই রকম similar
মডেল 5 মডেল x
"বাই" w
। মডেল 6 বিপরীতে না। mgcv
এর ডকুমেন্টেশনে উল্লেখ করা হয়েছে যে "যুক্তি দ্বারা যুক্তিটি নিশ্চিত করে যে মসৃণ ফাংশনটি ['আর্গুমেন্টে' দ্বারা প্রদত্ত কোভেরিয়েট] দ্বারা" বহুগুণ হয়ে যায় "। সুতরাং মডেলগুলি 5 এবং 6 এর সমতুল হওয়া উচিত নয়?
7 এবং 8 মডেলগুলি পূর্বাভাসকারীদের মধ্যে একটি লিনিয়ার শব্দ হিসাবে ব্যবহার করে। এগুলি আমার কাছে স্বজ্ঞাত জ্ঞান তৈরি করে, কারণ তারা জিএলএম এই ভবিষ্যদ্বাণীকারীদের সাথে কেবল কী করবে এবং তারপরে বাকি মডেলের প্রভাবটি যুক্ত করবে।
শেষ অবধি, মডেল 9 মডেল 5 এর সমান, এটি x
"বাই" দ্বারা w2
(যা w + 1
) স্মুথ করা ছাড়া । এখানে আমার কাছে আশ্চর্যের বিষয়টি হ'ল শূন্যগুলির অনুপস্থিতি w2
"বাই" ইন্টারঅ্যাকশনটিতে একটি উল্লেখযোগ্যভাবে আলাদা প্রভাব তৈরি করে।
সুতরাং, আমার প্রশ্নগুলি এগুলি:
- মডেল 3 এবং 4 এর স্পেসিফিকেশনের মধ্যে পার্থক্য কী? আরও কিছু উদাহরণ রয়েছে যা আরও স্পষ্টভাবে পার্থক্যটি আঁকতে পারে?
- ঠিক এখানে, "দ্বারা" কি করছে? উডের বইতে এবং এই ওয়েবসাইটটিতে যা পড়েছি তার বেশিরভাগটিই সুপারিশ করে যে "বাই" একটি গুণগত প্রভাব এনে দেয় তবে এর অনুভূতিটি উপলব্ধি করতে আমার সমস্যা হচ্ছে।
- মডেল 5 এবং 9 এর মধ্যে কেন এইরকম উল্লেখযোগ্য পার্থক্য থাকবে?
রেপ্রেক্স অনুসরণ করে, আরে লেখা হয়েছে।
library(magrittr)
library(tidyverse)
library(mgcv)
set.seed(1222)
data.ex <- tibble(
x = 1:100,
w = c(rep(0, 10), 1:20, rep(0, 20), 1:20, rep(0, 30)),
w2 = w + 1,
y = dnorm(x, mean = rep(c(20, 60), each = 50), sd = 3) + (seq(0, 1, length = 100)^2) / 2 + rnorm(100, sd = 0.01)
)
models <- tibble(
model = 1:9,
formula = c('y ~ s(x)', 'y ~ s(w)', 'y ~ s(x) + s(w)', 'y ~ s(x, w)', 'y ~ s(x, by = w)', 'y ~ s(w, by = x)', 'y ~ x + s(w)', 'y ~ w + s(x)', 'y ~ s(x, by = w2)'),
gam = map(formula, function(x) gam(as.formula(x), data = data.ex)),
data.to.plot = map(gam, function(x) cbind(data.ex, predicted = predict(x)))
)
plot.models <- unnest(models, data.to.plot) %>%
mutate(facet = sprintf('%i: %s', model, formula)) %>%
ggplot(data = ., aes(x = x, y = y)) +
geom_point() +
geom_line(aes(y = predicted), color = 'red') +
facet_wrap(facets = ~facet)
print(plot.models)