আর এ প্রাকৃতিক কিউবিক স্প্লাইনে নট সেট করা


23

আমার অনেকগুলি সম্পর্কযুক্ত বৈশিষ্ট্যযুক্ত ডেটা রয়েছে এবং আমি এলডিএ চালানোর আগে মসৃণ ভিত্তিতে ফাংশন দিয়ে বৈশিষ্ট্যগুলি হ্রাস করে শুরু করতে চাই। আমি ফাংশন splinesসহ প্যাকেজে প্রাকৃতিক কিউবিক স্প্লাইনগুলি ব্যবহার করার চেষ্টা করছি nsআমি গিঁটগুলি বরাদ্দের বিষয়ে কীভাবে যেতে পারি?

এখানে বেসিক আর কোড রয়েছে:

library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))

তবে কীভাবে নটগুলিকে বেছে নিতে হবে সে সম্পর্কে আমার কোনও ধারণা নেই ns


3
আপনি কীভাবে (যেমন এনএস-তে যুক্তির মাধ্যমে ) নট নির্দিষ্ট করবেন সে সম্পর্কে জিজ্ঞাসা করছেন বা নটগুলি কোথায় রাখবেন তা সিদ্ধান্ত নেওয়ার কৌশল সম্পর্কে জিজ্ঞাসা করছেন? আর
কার্ডিনাল

1
গিঁটগুলি কোথায় রাখবেন সে সম্পর্কে একটি ভাল আলোচনার জন্য হ্যারেল, রিগ্রেশন কৌশল 2015 দেখুন দেখুন (এটি কোনও ব্যাপার নয়, কোয়ান্টাইলগুলি যে কোনও কিছুর মতোই ভাল - ব্যতিক্রমগুলি যদি আপনার কোনও সময়ে আচরণের পরিবর্তনগুলি বিশ্বাস করার দৃ sound় কারণ থাকে) এবং নট সংখ্যা (3, 4, বা 5 এন এর উপর নির্ভর করে)
statsguy

উত্তর:


40

আর-তে কীভাবে নট নির্দিষ্ট করা যায়

nsফাংশন একটি উত্পন্ন প্রাকৃতিক রিগ্রেশন স্প্লাইন একটি ইনপুট ভেক্টর দেওয়া ভিত্তিতে। নটগুলি হয় একটি ডিগ্রি অফ-স্বাধীনতার আর্গুমেন্টের মাধ্যমে নির্দিষ্ট করা যেতে পারে dfযা একটি পূর্ণসংখ্যার লাগে বা নট যুক্তির মাধ্যমে knotsযা কোনও ভেক্টরকে নটগুলির পছন্দসই স্থান নির্ধারণ করে দেয়। আপনি যে কোড লিখেছেন তা নোট করুন

library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))

আপনি পাঁচটি নট অনুরোধ করেছেন, বরং একটি অনুরোধ করেছেন একক দিকে (অভ্যন্তর) গিঁট অবস্থান 5।

আপনি যদি dfযুক্তিটি ব্যবহার করেন তবে অভ্যন্তরীণ নটগুলি ভেক্টরের কোয়ান্টাইলের উপর ভিত্তি করে নির্বাচন করা হবে x। উদাহরণস্বরূপ, যদি আপনি কল করেন

ns(x, df=5)

তারপরে ভিত্তিতে দুটি সীমানা নট এবং 4 টি অভ্যন্তরীণ নট অন্তর্ভুক্ত থাকবে xযথাক্রমে 20, 40, 60, এবং 80 তম কোয়ানটিলে । সীমানা নটগুলি ডিফল্টরূপে নূন্যতম এবং সর্বাধিকতে স্থাপন করা হয় x

নটগুলির অবস্থানগুলি নির্দিষ্ট করার জন্য এখানে একটি উদাহরণ

x <- 0:100
ns(x, knots=c(20,35,50))

আপনি যদি পরিবর্তে কল ns(x, df=4)করতে চান তবে আপনি যথাক্রমে 25, 50 এবং 75 অবস্থানগুলিতে 3 অভ্যন্তরীণ নট দিয়ে শেষ করবেন।

আপনি কোনও ইন্টারসেপ্ট টার্ম চান কিনা তাও আপনি নির্দিষ্ট করতে পারেন। সাধারণত এটি নির্দিষ্ট করা হয় না যেহেতু nsপ্রায়শই এটির সাথে মিলিতভাবে ব্যবহৃত হয় lm, এতে অন্তর্নিহিত অন্তর্ভুক্ত থাকে (বাধ্য না করা হলে)। আপনি যদি intercept=TRUEনিজের কলটিতে ব্যবহার করেন তবে nsনিশ্চিত হন যে আপনি কেন এটি করছেন তা নিশ্চিত করুন , যেহেতু আপনি যদি এটি করেন এবং পরে lmনির্দোষভাবে কল করেন তবে ডিজাইনের ম্যাট্রিক্সটি র‌্যাঙ্কের ঘাটতি হয়ে উঠবে।

গিঁট রাখার কৌশলসমূহ

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

অন্যান্য পছন্দগুলি স্পষ্টতই তৈরি করা যেতে পারে এবং এটি ডোমেন-নির্দিষ্ট। আপনার ভবিষ্যদ্বাণীকারীদের হিস্টোগ্রাম এবং ঘনত্বের অনুমানের দিকে তাকানো যদি গিঁটের দরকার হয় সে সম্পর্কে একটি সূত্র সরবরাহ করতে পারে, যদি না আপনার ডেটা প্রদত্ত কিছু "আধ্যাত্মিক" পছন্দ না থাকে।

প্রতিক্রিয়াগুলির ব্যাখ্যার ক্ষেত্রে, আমি নোট করব, আপনি অবশ্যই গিঁটের স্থান নির্ধারণের সাথে "চারপাশে" খেলতে পারবেন, আপনি বুঝতে পারবেন যে এর জন্য আপনাকে একটি মডেল-নির্বাচনের জরিমানা লাগতে হবে যা আপনাকে মূল্যায়ণ করতে সতর্ক হওয়া উচিত এবং কোনও হিসাবে কোনও অনুমানকে সামঞ্জস্য করা উচিত স্থাপিত।


প্রদত্ত x <- 0:100, ব্রেকপয়েন্টগুলি সংজ্ঞায়নের "যথাযথ" উপায়টি হ'ল knots_x <- quantile(x, probs=c(.2, .35, .5)), যা পরে ns(x, knots=knots_x)যথাক্রমে 25, 50 এবং 75 অবস্থানে 3 অভ্যন্তরীণ নট সংজ্ঞায়িত করতে ব্যবহৃত হবে । উত্তরে আমাকে যে বিষয়টি গুলিয়ে knotsx
ফেলল তা হ'ল

স্বাস্থ্য জরিপ বিশ্লেষণ, এডওয়ার্ড এল। কর্ন দ্বারা, ব্যারি আই গ্র্যাবার্ড p.98 লিখেছেন যে ডার্লম্যান এবং সাইমন (1989) প্রাকৃতিক স্প্লাইজের জন্য (0.05,0.50,0.95) সুপারিশ করেছেন
ক্রিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.