আমি ফর্মের যে তথ্য আছে । থেকে অনুমানের জন্য আমি এই কাগজের সূত্রগুলি ব্যবহার করি: জন ফক্স - ননলাইনার রিগ্রেশন এবং ননলাইনার লেস্ট স্কোয়ার্স এই কাগজে, at বিটা_1 ডেটা দেখে অনুমান করা হয়। আমি যদি এটি করি তবে এটি ঠিক কাজ করে, এমনকি আমার কেবল তিনটি পয়েন্ট রয়েছে। সে থেকে আমি আরও দুজনকে গণনা করতে পারি। আমি আমার প্যারামিটারগুলি এনএল () এর সাথে আর সি # তে লেভেনবার্গমার্কোয়ার্ড দিয়ে পরীক্ষা করেছি। তাদের দ্বারা প্রত্যাবর্তিত মডেলগুলি সন্তুষ্ট হয়। β1β3
সমস্যাটি হ'ল আমি \ বিটা_1 এর জন্য কোনও ভাল অনুমানকারী পেতে ডেটাটি দেখতে চাই না, আমি চাই আমার প্রোগ্রামটি এটি গণনা করুক। কিছু সময়ের জন্য আমি মানগুলি ব্যবহার করলাম যা আমার মানগুলির সর্বাধিকের চেয়ে কিছুটা বেশি ছিল (সর্বোচ্চ কিছু এবং । ডেটা পয়েন্টগুলি কার্ভের "শীর্ষ" থেকে কোথাও ছিল, তবে যখন তারা সমস্ত "অনুভূতি পয়েন্ট" নীচে "অঞ্চল থেকে এসেছিল তখন এই অনুমানকারীটি অবশ্যই তার চেয়ে কম ছিল এবং আমি মডেলটি ফিট করতে পারিনি। আমি যদি কিছু ব্যবহার করি তবে এটি অবশ্যই সর্বোচ্চ পয়েন্টের চেয়ে বেশি (এটি হাস্যকর উচ্চ মানের সাথে গুণ করে) মডেলটি কোনও কার্যকর উপায়ে ফিট করে না।
পরিমাপগুলি এর মতো দেখতে পারে:
x = (40, 50, 60, 70), y = (1000, 950, 400, 200) -> সহজেই অনুমান করা যায়
x = (40, 50, 60, 70), y = (1000, 950, 800, 100) -> অনুমান করা সহজ
x = (40, 50, 60, 70), y = (500, 200, 100, 50) -> অনুমান করা এত সহজ নয়
আমি অনুমান করি যে প্রদত্ত পয়েন্টগুলিতে ডেল্টাস গণনা করে আমি ফাংশনে ("নীচে", "শীর্ষে", slালুতে) আমি কোথায় তা জানতে পেরেছি এবং তার উপর নির্ভর করে একটি উচ্চতর গণ্ডি গণনা করতে পারি। কারও কি আরও ভাল সমাধানের ইঙ্গিত রয়েছে? অতিরিক্ত তথ্য: যদি এটি করা না যায় তবে এটি আমার পক্ষে আরও গুরুত্বপূর্ণ যে মাপকাঠিগুলি যথাযথভাবে যথাযথ হতে পারে এবং আমি স্বীকার করি যে কিছু পরিমাপ মোটেও উপযুক্ত হতে পারে না।
(যদিও আমি সি # তে একটি বাস্তবায়ন চাই আমি এটি এখানে পোস্ট করেছি, তবে আমি মনে করি না যে সমস্যাটি ভাষা নির্ভর করে)
আপডেট (এটি প্রয়োগ):
x হ'ল তাপমাত্রা মান এবং আনুপাতিক পরিমাপ। প্রকৃতির দ্বারা এটি দেওয়া হয় যে এটি কম তাপমাত্রায় উচ্চতর y মানগুলির সাথে একটি লজিস্টিক বক্রের মতো হওয়া উচিত। গলনাঙ্কটি বক্ররেখার প্রতিচ্ছবি বিন্দুর সমান, যা মডেল পরামিতিগুলির ছোট পরিবর্তনগুলির সাথে অনেক পরিবর্তন করে।
আপডেট (কিছু 7 ডেটা পয়েন্ট এবং 60 এ পরিচিত প্রতিচ্ছবি পয়েন্ট সহ ডেটা আপ আপ):
//first I made up some data without any noise and enough (13) points
double[] x17 = { 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90 };
double[] y17 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 59.642....
//Then I took three different parts of that data
(to simulate how much data I will have in the real world)
double[] x18 = { 30, 35, 40, 45, 50, 55, 60 };
double[] y18 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000 };
//calculated inflection point: 59.263.... is ok!
double[] x19 = { 60, 65, 70, 75, 80, 85, 90 };
double[] y19 = { 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 53.447.... to small!
double[] x20 = { 45, 50, 55, 60, 65, 70, 75 };
double[] y20 = { 1700, 1500, 1280, 1000, 720, 500, 300 };
//calculated inflection point: 59.868... almost perfect!
উচ্চতর বাউন্ডের অনুমানের জন্য আমার বর্তমান পদ্ধতিটি y0 * y0 / y1। এইভাবে আমি আমলে নেওয়ার আশা করি যে আমার কাছে সর্বদা সর্বোচ্চের কাছাকাছি কোনও মান নাও থাকতে পারে।
আপডেট: x এবং y মানগুলি কখনই নেতিবাচক হবে না। এক্স ডেটা পয়েন্ট হারিয়ে না গেলে x সর্বদা 40 ডলার, 45, 50, 55, 60, 65, 70। থাকবে।
আপডেট: আমি সিমুলেটেড ডেটা সহ অনেকগুলি অনেক পরীক্ষা করেছিলাম যা মাপসই করা সহজ হওয়া উচিত (আমি কোনও ডাটা পয়েন্টগুলি বেছে নিয়েছিলাম যা কোনও বাঁকবিহীন = কোনও গোলমাল ছাড়াই) এবং আমি দেখতে পাই যে এটি ঠিক আছে, যদি না প্রথম বা দ্বিতীয় ডেটা বিন্দু (যেখানে x = 40 বা x = 45) অনুপস্থিত। আমি অনুমান করি যে আমাকে এই জাতীয় পরিমাপ বাতিল করতে হবে এবং ব্যবহারকারীকে এটির সাথে থাকতে হবে।