বিরল তথ্য সহ সমীকরণের একটি সিস্টেম সমাধান করা


11

আমি সমীকরণগুলির একটি সেট সমাধান করার চেষ্টা করছি যার 40 টি স্বাধীন ভেরিয়েবল (x1, ..., x40) এবং একটি নির্ভরশীল ভেরিয়েবল (y) রয়েছে। সমীকরণের মোট সংখ্যা (সারিগুলির সংখ্যা) 300 ডলার, এবং আমি 40 সহগের সেটের জন্য সমাধান করতে চাই যা y এবং পূর্বাভাসিত মানের মধ্যে মোট যোগফলের বর্গ ত্রুটি হ্রাস করে।

আমার সমস্যাটি হ'ল ম্যাট্রিক্সটি খুব বিরল এবং আমি স্পার্স ডেটা দিয়ে সমীকরণের সিস্টেমটি সমাধানের সেরা উপায়টি জানি না। ডাটাসেটের উদাহরণ নীচে দেখানো হয়েছে:

   y    x1  x2 x3 x4 x5 x6 ... x40
87169   14  0  1  0  0  2  ... 0 
46449   0   0  4  0  1  4  ... 12
846449  0   0  0  0  0  3  ... 0
....

এটি সমাধানের জন্য আমি বর্তমানে জেনেটিক অ্যালগরিদম ব্যবহার করছি এবং পর্যবেক্ষণ এবং প্রত্যাশার মধ্যে দুটি পার্থক্যের প্রায় একটি কারণ নিয়ে ফলাফল প্রকাশিত হচ্ছে out

যে কেউ বিবিধ ডেটা সহ সমীকরণের একটি সেট সমাধান করতে সক্ষম এমন বিভিন্ন পদ্ধতি বা কৌশলগুলির পরামর্শ দিতে পারে।


2
শিরোনামে টাইপ করুন: অতিরিক্ত => বিরল।
আলেকসান্ডার ব্লেক

উত্তর:


11

যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে এটি স্পার্স ডেটা ( স্পার্স রিগ্রেশন ) সহ একাধিক লিনিয়ার রিগ্রেশনের ক্ষেত্রে । ধরে নিলাম, আমি আশা করি আপনি নিম্নলিখিত সংস্থানগুলিকে দরকারী বলে মনে করবেন।

1) NCSU বিক্ষিপ্ত রিগ্রেশন উপর বক্তৃতা স্লাইড সাহিত্যের আলগোরিদিম, নোট, সূত্র, গ্রাফিক্স এবং রেফারেন্স ওভারভিউ সঙ্গে http://www.stat.ncsu.edu/people/zhou/courses/st810/notes/lect23sparse.pdf

2) Rবাস্তুতন্ত্র অনেকগুলি প্যাকেজ সরবরাহ করে , যা বিরল রিগ্রেশন বিশ্লেষণের জন্য দরকারী, সহ:

3) একটি সঙ্গে একটি ব্লগ পোস্টে বিক্ষিপ্ত রিগ্রেশন সমাধান উদাহরণ উপর ভিত্তি করে SparseM: http://aleph-nought.blogspot.com/2012/03/multiple-linear-regression-with-sparse.html

৪) আর এ স্পার্স ম্যাট্রিক্স ব্যবহারের উপর একটি ব্লগ পোস্ট যা ব্যবহারে প্রাইমার অন্তর্ভুক্ত রয়েছে glmnet: http://www.johnmyleswhite.com/notebook/2011/10/31/used-sparse-matrices-in-r

5) আরও উদাহরণ এবং বিষয়টিতে কিছু আলোচনা স্ট্যাকওভারফ্লোতে পাওয়া যাবে : /programming/3169371/large-scale-regression-in-r-with-a-sparse-feature-matrix

আপডেট (আপনার মন্তব্যের ভিত্তিতে):

যদি আপনি সীমাবদ্ধতার সাথে কোনও এলপি সমস্যা সমাধানের চেষ্টা করছেন, আপনি এই তাত্ত্বিক কাগজটি দরকারী দেখতে পাবেন : http://web.stanford.edu/group/SOL/papers/gmsw84.pdf

এছাড়াও, আর প্যাকেজ লিমসলভ পরীক্ষা করুন : http://cran.r-project.org/web/packages/limSolve । এবং সাধারণভাবে সিআরএএন টাস্ক ভিউতে "অপটিমাইজেশন এবং ম্যাথমেটিক্যাল প্রোগ্রামিং" প্যাকেজগুলি পরীক্ষা করুন : http://cran.r-project.org/web/views/Optimization.html

অবশেষে, "বিজ্ঞান ও প্রকৌশল মধ্যে সংখ্যার বিশ্লেষণ ব্যবহার করে" বইটি দেখুন (ভিক্টর এ ব্লুমফিল্ড দ্বারা)। এটিতে সমীকরণের সিস্টেমগুলি সমাধান করার একটি বিভাগ রয়েছে, স্পার্স ম্যাট্রিকেস (বিভাগ 5.7, পৃষ্ঠা 99-104) দ্বারা প্রতিনিধিত্ব করা হয়েছে , যার উপরোক্ত কয়েকটি উল্লিখিত প্যাকেজগুলির উপর ভিত্তি করে উদাহরণ রয়েছে: http://books.google.com/books? আইডি = 9ph_AwAAQBAJ & PG = PA99 & এলপিজি = PA99 & DQ = R + + limsolve + + বিক্ষিপ্ত + + ম্যাট্রিক্স & উৎস = BL & OTS = PHDE8nXljQ & স্বাক্ষর = sPi4n5Wk0M02ywkubq7R7KD_b04 & hl = স্বীকারোক্তি & SA = এক্স & ই আমি = FZjiU-ioIcjmsATGkYDAAg & বেদ = 0CDUQ6AEwAw # বনাম = onepage & Q = দ% 20limsolve% 20sparse% 20matrix & F = মিথ্যা


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

1
@ মাইক 1886: আমার আনন্দ! আপনার মন্তব্যের ভিত্তিতে আমি আমার উত্তর আপডেট করেছি। আশা করি এটা সাহায্য করবে.
আলেকসান্দ্র ব্লেক 21

7

আলেকসান্ডারের উত্তর সম্পূর্ণ সঠিক।

তবে, প্রশ্নটি যেভাবে উত্থাপিত হয়েছে তার থেকে বোঝা যায় যে এটি একটি সরল সাধারণ ন্যূনতম স্কোয়ার রিগ্রেশন প্রশ্ন: নির্ভরশীল ভেরিয়েবল এবং ভবিষ্যদ্বাণীকের একটি লিনিয়ার সংমিশ্রনের মধ্যে স্কোয়ার অবশিষ্টাংশের যোগফলকে হ্রাস করুন।

এখন, আপনার ডিজাইনের ম্যাট্রিক্সে অনেকগুলি শূন্য থাকতে পারে, আপনার সিস্টেমটি অত্যধিক আকারে বড় নয়: 40 ভবিষ্যদ্বাণীকের উপর 300 পর্যবেক্ষণ মাঝারি আকারের বেশি নয়। আপনি স্পার্স ডেটার জন্য কোনও বিশেষ প্রচেষ্টা ছাড়াই আর ব্যবহার করে এই ধরনের রিগ্রেশন চালাতে পারেন। কেবল lm()কমান্ডটি ব্যবহার করুন ("লিনিয়ার মডেল" এর জন্য)। ?lmসহায়তা পৃষ্ঠাটি দেখতে ব্যবহার করুন । এবং নোট করুন যে lmডিফল্টরূপে নিঃশব্দে আপনার ডিজাইনের ম্যাট্রিক্সে (ধীরে ধীরে) একটি ধ্রুবক কলাম যুক্ত করবে - -1এটি দমন করতে আপনার সূত্রের ডানদিকে একটি অন্তর্ভুক্ত করুন। সামগ্রিকভাবে, আপনার সমস্ত ডেটা (এবং অন্য কিছুই) অভিমানী একটি হল data.frameবলা foo, আপনি এটা করতে পারেন:

model <- lm(y~.-1,data=foo)

এবং তারপরে আপনি এর মতো প্যারামিটারের প্রাক্কলন ইত্যাদি দেখতে পারেন:

summary(model)
residuals(model)

যদি আপনার সিস্টেম অনেক বড়, বিশেষ বিক্ষিপ্ত solvers দিকে তাকিয়ে 10,000 পর্যবেক্ষণ এবং ভবিষ্যতবক্তা শত শত আদেশ বলে অনুযায়ী আলেক্সান্দ্র এর উত্তর জানার জন্য শুরু হতে পারে।

অবশেষে, আলেকসান্দারের উত্তরের মন্তব্যে আপনি নিজের সমীকরণের প্রতিবন্ধকতা উল্লেখ করেছেন। তাহলে যে আসলে আপনার কী বিষয়, সেখানে ব্যক্তিগতভাবে মত আর আমি লিস্ট স্কোয়ার সীমাবদ্ধ নিরূপণ করার উপায় আছে pcls()যে mgcvপ্যাকেজ। সীমাবদ্ধতার ধরণের (বাক্স সীমাবদ্ধতা, ননএগিয়েটিভিটি সীমাবদ্ধতা, একীকরণের সীমাবদ্ধতা, লিনিয়ার সীমাবদ্ধতা, ...) আপনি কীভাবে অন্তর্ভুক্ত করবেন তা অন্তর্ভুক্ত করার জন্য সম্ভবত আপনি নিজের প্রশ্নটি সম্পাদনা করতে চান?


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