স্মুথিংয়ের জন্য স্মুথ স্প্লাইস বনাম লোইসের তুলনা করছেন?


25

আমি কোনও বক্ররেখার মসৃণকরণের জন্য লোস বা একটি স্মুথ স্প্লাইজগুলি ব্যবহার করার পক্ষে ভাল / কৌশলগুলি আরও ভালভাবে বুঝতে চাই।

আমার প্রশ্নের অন্য একটি পরিবর্তন হ'ল যদি এমন কোনও উপায়ে মসৃণ স্প্লাইন তৈরির উপায় থাকে যা লোয়েস ব্যবহারের মতো একই ফলাফল দেয় yield

কোন রেফারেন্স বা অন্তর্দৃষ্টি স্বাগত জানানো হয়।


তাল, নীচের উত্তম-উদ্ধৃত নিবন্ধটি বুজা, এ, হাসিটি, টি।, এবং তিবশিরানী, আর। (1989) এর অনেকগুলি নন-প্যারাম্যাট্রিক রিগ্রেশন পন্থার দিকে তাকিয়েছে। লিনিয়ার স্মুথার এবং অ্যাডেটিভ মডেলপরিসংখ্যানগুলির অ্যানালস , 17 (2), 453-5510, সেরা।
আলেক্সিস

উত্তর:


16

এখানে কিছু আর কোড / উদাহরণ রয়েছে যা আপনাকে একটি লোয়েস ফিট এবং একটি স্প্লাইন ফিটের জন্য ফিটগুলি তুলনা করতে দেয়:

library(TeachingDemos)
library(splines)

tmpfun <- function(x,y,span=.75,df=3) {
    plot(x,y)
    fit1 <- lm(y ~ ns(x,df))
    xx <- seq( min(x), max(x), length.out=250 )
    yy <- predict(fit1, data.frame(x=xx))
    lines(xx,yy, col='blue')
    fit2 <- loess(y~x, span=span)
    yy <- predict(fit2, data.frame(x=xx))
    lines(xx,yy, col='green')
    invisible(NULL)
}

tmplst <- list( 
    span=list('slider', from=0.1, to=1.5, resolution=0.05, init=0.75),
    df=list('slider', from=3, to=25, resolution=1, init=3))

tkexamp( tmpfun(ethanol$E, ethanol$NOx), tmplst )

আপনি এটি আপনার ডেটা দিয়ে চেষ্টা করতে পারেন এবং কোড পরিবর্তন করতে অন্য ধরণের বা বিকল্প ব্যবহার করতে পারেন। এছাড়াও আপনি তাকান করতে পারেন loess.demoকি ধুসর - হরিদ্রাভ রঙের মিহি মাটির স্তর যা রাইন algorythm করে ভাল করে বুঝতে জন্য TeachingDemos প্যাকেজের মধ্যে ফাংশন। নোট করুন যা আপনি লোয়েস থেকে দেখেন তা প্রায়শই দ্বিতীয় ইন্টারপোলেশন স্মুথিং (কখনও কখনও নিজেই একটি স্প্লাইন) এর সাথে লোমের সংমিশ্রণ হয়, loess.demoফাংশনটি আসলে স্মুথড এবং কাঁচা লোয়েস উভয়ই ফিট করে।

তাত্ত্বিকভাবে আপনি সর্বদা একটি স্প্লাইন খুঁজে পেতে পারেন যা আপনি চান হিসাবে আরও একটানা ক্রিয়াকলাপের সমান করে দেয় তবে এটি নটগুলির একটি সহজ পছন্দ রয়েছে যা কোনও ডেটা সেটের জন্য নির্ভরযোগ্যভাবে একটি লোয়েস ফিটের একটি ঘনিষ্ঠ সান্নিধ্য দেবে বলে সম্ভাবনা নেই।


হাই গ্রেগ: 1) উত্তরের জন্য আপনাকে ধন্যবাদ। 2) আমি আপনার loess.demo ফাংশনটি পছন্দ করি ...
তাল

29

স্মুথিং স্প্লাইন বা লোস থেকে প্রকৃত ফলাফলগুলি বেশ একই রকম হতে চলেছে। তারা সমর্থনের প্রান্তগুলিতে কিছুটা আলাদা দেখতে পারে তবে আপনি যতক্ষণ না এটি নিশ্চিত করেন যে এটি "প্রাকৃতিক" স্মুথিং স্প্লাইন তারা সত্যই অনুরূপ দেখতে পাবে।

আপনি যদি স্ক্রেটারপ্লোটে কেবল "স্মুথ" যুক্ত করতে একটি ব্যবহার করছেন, অন্যটির চেয়ে একজনকে পছন্দ করার মতো সত্যিকারের কারণ নেই। পরিবর্তে আপনি যদি নতুন ডেটা নিয়ে ভবিষ্যদ্বাণী করতে চান তবে সাধারণত একটি স্মুথিং স্প্লাইন ব্যবহার করা অনেক সহজ। এটি কারণ স্মুথিং স্প্লাইন মূল তথ্যগুলির সরাসরি ভিত্তি সম্প্রসারণ; যদি আপনি এটি তৈরি করতে 100 নট ব্যবহার করেন তবে এর অর্থ আপনি আসল ভেরিয়েবল থেকে ~ 100 নতুন ভেরিয়েবল তৈরি করেছেন। পরিবর্তে লোস অভিজ্ঞ সমস্ত মানগুলিতে প্রতিক্রিয়াটি অনুমান করে (বা বড় ডেটার জন্য একটি স্তরযুক্ত উপসেট)।

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

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


+1, সুন্দর উত্তর! আমি পরিষ্কার তাত্ত্বিক বিবরণ পছন্দ করি।
গুং - মনিকা পুনরায়

যদিও তারা সমর্থন প্রান্ত কাছাকাছি পৃথক?
imu96

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