আর-তে ম্লগিট ফাংশনটি চালানোর পরে ভবিষ্যদ্বাণী করুন


11

এখানে আমি যা করতে চাই তা কিন্তু এখানে predictম্লগিটের কোনও পদ্ধতি নেই বলে মনে হচ্ছে । কোন ধারনা?

library(mlogit)
data("Fishing", package = "mlogit")
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")

Fish_fit<-Fish[-1,]
Fish_test<-Fish[1,]
m <- mlogit(mode ~price+ catch | income, data = Fish_fit)
predict(m,newdata=Fish_test)

4
আপনি কি অনুগামী ভিগনেটটি পড়েছেন, আর-তে বহুজাতিক লজিট মডেলগুলির অনুমান: মলগিট প্যাকেজগুলি ? আমার কাছে মনে হচ্ছে আপনাকে কেবল নতুন ডেটাতে লাগানো সহগগুলি প্রয়োগ করতে হবে, তাই না?
chl

@ সিএইচএল হ্যাঁ, আমার এটি করা দরকার, তবে আমি আশা করছিলাম যে চাকাটি পুনরায় উদ্ভাবন করতে হবে না।
জাচ

উত্তর:


2

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


6

Mlogit প্যাকেজের একটি পূর্বাভাস () পদ্ধতি রয়েছে, কমপক্ষে আমি যে সংস্করণটি ব্যবহার করছি তা (0.2% এর আর 2.15.3 সহ)।

@ জ্যাচের দেওয়া কোডটিতে এটির একটি ত্রুটি রয়েছে। এমলোজিট () দ্বারা ব্যবহৃত "দীর্ঘ ফর্ম্যাট" ডেটার প্রতিটি বিকল্পের জন্য একটি সারি রয়েছে; এটি mlogit.data () ফাংশন দ্বারা তৈরি ফর্ম্যাট। সুতরাং প্রথম মামলার পূর্বাভাস পাওয়ার জন্য আপনাকে সেই মামলার জন্য সমস্ত সারি বের করতে হবে, এবং এখানে 4 টি রয়েছে:

Fish_fit<-Fish[-(1:4),]
Fish_test<-Fish[1:4,]
m <- mlogit(mode ~price+ catch | income, data = Fish_fit)
predict(m,newdata=Fish_test)

যা একটি ভাল ফলাফল দেয়।


4

জনসংখ্যার জন্য পূর্বাভাস ফাংশনটি ব্যবহার করার চেষ্টা করার প্রচেষ্টার পরে, আমি মনে করি আপনার সমস্ত উত্তরগুলিতে আমি কিছু অন্তর্দৃষ্টি যুক্ত করতে পারি।

predictMlogit ফাংশন কাজ করে জরিমানা, আপনি শুধু কিছু মানিয়ে নিতে এবং নিশ্চিত করুন যে নিম্নলিখিত অপশন যত্ন নেয়া হয় হতে হবে:

  1. newdata(প্রত্যাশিত হিসাবে) মডেল হিসেব ব্যবহৃত নমুনা হিসাবে ঠিক একই তথ্য অন্তর্ভুক্ত করা উচিত। এর অর্থ এই যে কোনও ব্যক্তির ডেটাগুলির "লুকানো" বৈশিষ্ট্যগুলি পরীক্ষা করা উচিত (যেমন একটি factorঅস্তিত্ব নেই এমন স্তরগুলির উত্তরাধিকারী হয় - droplevelএই ক্ষেত্রে দরকারী হতে পারে-, বা নমুনা উপাদানগুলির সাথে পরিচয় করা হয়নি, বা কোনও ভুল colnameইত্যাদি)।

  2. আপনাকে আপনার নতুনডাটাতে (যদি এটি বিদ্যমান না থাকে) এমন কিছু কাজ করতে হবে যা সহজেই sampleফাংশনটি ব্যবহার করে করা যেতে পারে :

    MrChoice <-sample(c("Car", "Bus", "Walk"),nrow(datase),replace=TRUE, prob = c(0.5, 0.4, 0.1))
    mynewData$mode<-MrChoice
    
  3. পরবর্তী প্রয়োজনীয় পদক্ষেপটি আবার নমুনা ডেটার জন্য ব্যবহৃত একই ফাংশনটি ব্যবহার করে ডেটা ম্লগিত ডেটাতে রূপান্তর করা হয়, উদাহরণস্বরূপ:

    ExpData3<- mlogit.data(mynewData, shape="wide", choice = "mode",sep=".",id = "TripID")
  4. চূড়ান্ত পদক্ষেপটি হ'ল predictফাংশনটি ব্যবহার করে আসল পূর্বাভাস ।

    resulted<-predict(ml1,newdata=ExpData3)

2

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


1

mlogitএকটি পূর্বাভাস ফাংশন আছে, কিন্তু আমি এটি ব্যবহার করা খুব কঠিন বলে মনে করি। আমার যে বাস্তবায়ন আছে তার জন্য আমি আমার নিজস্ব কদর্য ফাংশন লিখেছি। যে কেউ তাদের ব্যবহার বা উন্নত করতে স্বাগত জানায়, আমার গিথুব প্রোফাইলে সঞ্চিত ।


0

আমি বেশ নিশ্চিত যে এটি সহজেই লাগানো ম্লগিট প্যাকেজটি লাগানো ফিটিং ফাংশনটি ব্যবহার করে এবং তারপরে স্ট্যান্ডার্ড আর প্রেডিক্ট ফাংশনটি ব্যবহার করে is চিএল যেমন উল্লেখ করেছেন, যদিও আমি এখনও এটি নিজে করে নিই (কমপক্ষে ভবিষ্যদ্বাণী করা হয়নি), প্যাকেজ 29 এ প্যাকেজ ভিগনেটসের নমুনা দেওয়া হয়েছে


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