আর বনাম। সাইপাই-তে ফিটিং লগ-সাধারণ বিতরণ


10

আমি ডেটা সেট সহ আর ব্যবহার করে একটি লগনারাল মডেল ফিট করেছি। ফলাফলের পরামিতিগুলি ছিল:

meanlog = 4.2991610 
sdlog = 0.5511349

আমি এই মডেলটি স্কিপিতে স্থানান্তর করতে চাই, যা আমি আগে কখনও ব্যবহার করি না। স্কিপি ব্যবহার করে, আমি 1 এবং 3.1626716539637488e + 90 - খুব আলাদা সংখ্যাগুলির একটি আকার এবং স্কেল পেতে সক্ষম হয়েছি। আমি মেনেলগ এবং এসডলগের এক্সপ ব্যবহার করার চেষ্টা করেছি কিন্তু উদ্ভট গ্রাফ পেতে থাকি।

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

স্কিপি লগনারমাল (নীল) বনাম আর লগনারমাল (লাল): স্কিপি লগনারমাল (নীল) বনাম আর লগনারমাল (লাল)

কোন দিক নিতে কোন চিন্তা? উপাত্তটি আর মডেলের সাথে খুব ভাল ফিট করে, যাইহোক, যদি এটি পাইথনের অন্য কোনও মতো লাগে তবে নির্দ্বিধায় ভাগ করে নিন।

ধন্যবাদ!

হালনাগাদ:

আমি স্কিপি 0.11 চালাচ্ছি

এখানে ডেটা একটি উপসেট আছে। প্রকৃত নমুনাটি ৩১.৫৩k7 এর গড় সহ 38k +:

উপসেট:

x
[60, 170, 137, 138, 81, 140, 78, 46, 1, 168, 138, 148, 145, 35, 82, 126, 66, 147, 88, 106, 80, 54, 83, 13, 102, 54, 134, 34]
numpy.mean (x)
99.071428571428569

বিকল্পভাবে:

আমি পিডিএফ ক্যাপচার জন্য একটি ফাংশন উপর কাজ করছি:

def lognoral(x, mu, sigma):
    a = 1 / (x * sigma * numpy.sqrt(2 * numpy.pi) )
    b = - (numpy.log(x) - mu) ^ 2 / (2 * sigma ^ 2)
    p = a * numpy.exp(b)
    return p

যাইহোক, এটি আমাকে নিম্নলিখিত নম্বরগুলি দেয় (এসডলগ এবং মেনলোগের অর্থ মিশ্রিত হওয়ার ক্ষেত্রে আমি বেশ কয়েকটি চেষ্টা করেছি):

>>> lognormal(54,4.2991610, 0.5511349)
0.6994656085799437
 >>> lognormal(54,numpy.exp(4.2991610), 0.5511349)
0.9846125119455129
>>> lognormal(54,numpy.exp(4.2991610), numpy.exp(0.5511349))
0.9302407837304372

কোন চিন্তা?

হালনাগাদ:

"ইউপিকিউয়ার্কস" পরামর্শটি দিয়ে পুনরায় কাজ করা:

আকৃতি, লোকেশন, স্কেল (1.0, 50.03445923295007, 19.074457156766517)

গ্রাফের আকারটি খুব সমান, তবে 21 এর কাছাকাছি ঘটছে।


এই প্রশ্নের উত্তর সাহায্য করতে পারেন: stackoverflow.com/questions/8747761/...
jbowman

আপনাকে ধন্যবাদ, আমি এটি খুঁজে পেয়েছি এবং লগনারমালের সাথে "ফিটিং" শিখেছি। যাইহোক, আমার প্রশ্নগুলি হল কেন আমি এ জাতীয় বিভিন্ন বিতরণ করব?
লিলিয়ান মিলাগ্রোস ক্যারাসকিলো

আপনি কি SciPy 0.9 ব্যবহার করছেন? এছাড়াও, আপনি কি আপনার ডেটা, বা একটি উপসেট পোস্ট করতে পারেন?
jbowman

আপডেট করা হয়েছে! এটি স্কিপি 0.11 উপায় দ্বারা। সুতরাং আমি যে বাগগুলি পড়েছি সেগুলি প্রাসঙ্গিক হওয়া উচিত নয়;)
লিলিয়ান মিলাগ্রোস ক্যারাসকুইলো

উত্তর:


11

আমি স্কিপি লগনরমাল রুটিনের নিম্নলিখিত ব্যাখ্যায় পৌঁছানোর জন্য সোর্স কোডের মাধ্যমে আমার পথে লড়াই করেছি।

xlocscaleLognormal(σ)

σ

স্কিপি প্যারামিটার এবং আর প্যারামিটারের মধ্যে সমতাটি নিম্নরূপ:

লক - সমতুল্য নয়, এটি আপনার ডেটা থেকে বিয়োগ করে যাতে 0 তথ্য সীমাটির সর্বাধিক সীমাবদ্ধ হয়ে যায়।

expμμ

আকৃতি - ভেরিয়েটের লগের আদর্শ বিচ্যুতি।

আমি lognorm.pdf(x, 0.55, 0, numpy.exp(4.29))যথাক্রমে যেখানে আর্গুমেন্টগুলি (x, আকৃতি, লোক, স্কেল) বলা হয়েছিল এবং নিম্নলিখিত মানগুলি উত্পন্ন করেছিলাম :

এক্স পিডিএফ

0.000106 ডলার

20 0.002275

0. 0.006552

0. 0.009979

0.1 0.114557

60 0.113479

0. 0.103327

0. 0.008941

0. 0.007494

100 0.006155

যা আপনার আর কার্ভের সাথে বেশ ভাল মিলছে।


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

8

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

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

প্রথমে আপনি অবস্থানের প্যারামিটারটি 0 তে সেট করেছেন তা নিশ্চিত করুন Then তারপরে, sdlog এর মান হিসাবে আকারের প্যারামিটার সেট করুন। পরিশেষে, স্কেল প্যারামিটারটি ম্যাথ.এক্সপি (ইনেলগ) এ সেট করুন। সুতরাং, rv = scipy.stats.lognorm (0.5511349, স্কেল = math.exp (4.2991610)) এমন একটি বিতরণ অবজেক্ট তৈরি করবে যার পিডিএফ আপনার আর-উত্পন্ন কার্ভের সাথে ঠিক মেলে। হিসাবে x = numpy.linspace (0,180,1000); প্লট (x, rv.pdf (x)) যাচাই করবে।

মূলত, সাইকপি লগনারমাল ডিস্ট্রিবিউশন হ'ল স্ট্যান্ডার্ড লগনরমাল ডিস্ট্রিবিউশনের একটি সাধারণীকরণ যা অবস্থানের প্যারামিটারটিকে 0-এ সেট করার সময় মানের সাথে মেলে।

। ফিট পদ্ধতির সাথে ডেটা ফিটিং করার সময়, আপনি যে কোনও আকার, অবস্থান এবং / অথবা স্কেল প্যারামিটারগুলি স্থির রাখতে এবং অন্যান্য ভেরিয়েবলগুলির সাথে ফিট করে রাখতে কীওয়ার্ড, f0..fn, ফ্লোক এবং ফ্যাশপ ব্যবহার করতে পারেন। লগইনরমাল বিতরণের জন্য এটি খুব দরকারী কারণ সাধারণত আপনি জানেন যে অবস্থানের প্যারামিটারটি 0-এ স্থির করা উচিত Thus আকৃতি এবং স্কেল পরামিতি।


3

স্কিপি লগনারমাল ফিটগুলি আকার, অবস্থান এবং স্কেল দেয়। আমি স্যাম্পল দামের ডেটার অ্যারেতে কেবল নিম্নলিখিতটি চালিয়েছি:

shape, loc, scale = st.lognorm.fit(d_in["price"])

এটি আমাকে যুক্তিসঙ্গত অনুমানগুলি 1.0, 0.09, 0.86 দেয় এবং আপনি যখন এটি প্লট করেন, তখন আপনাকে তিনটি পরামিতি বিবেচনা করা উচিত।

আকারের প্যারামিটার হ'ল অন্তর্নিহিত স্বাভাবিক বিতরণের মানক বিচ্যুতি এবং স্কেলটি স্বাভাবিকের গড়ের ঘনিষ্ঠতা।

আশাকরি এটা সাহায্য করবে.


উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ! আমার কাছে এই মানগুলি (লোক, স্কেল, আকৃতি) হয়ে গেলে আমি প্রতিটি x এর জন্য পিডিএফ (এক্স) সন্ধান করার চেষ্টা করি (এখানে এটি 0 থেকে 180 এর মান, একচেটিয়া)। scipy.stats.lognorm.pdf (i, লোক, স্কেল, আকৃতি) তবে এগুলি প্লট করে আমি উপরের প্লটটি পাই।
লিলিয়ান মিলাগ্রোস ক্যারাসকিলো

ঠিক আছে আমি আপনাকে কেবল আকার এবং স্কেল উল্লেখ করতে দেখেছি, এজন্যই আমি উল্লেখ করেছি যে ফিট () থেকে ডিফল্টরূপে তিনটি পরামিতি ফিরে এসেছে। আপনি এও বলেছিলেন যে আকৃতি এবং স্কেল পরামিতিগুলির অর্থ কী তা সম্পর্কে আপনি বিভ্রান্ত হয়ে পড়েছেন এবং আমি এটি সমাধান করার চেষ্টা করেছি। আপনার ক্ষেত্রে আমি কখনও লগনরমাল ফিট রিটার্নের অযৌক্তিক মানগুলি পাইনি যদিও, অবস্থানের প্যারামিটারটি কী?
uparkark

উত্তরটি সবেমাত্র প্রশ্নটি আপডেট করেছেন। এই সম্পর্কে চিন্তা করার জন্য ধন্যবাদ।
লিলিয়ান মিলাগ্রোস ক্যারাসকিলো

Scipy.stats.lognorm.pdf (i, লোক, স্কেল, আকৃতি) এর পরিবর্তে scipy.stats.lognorm.pdf (x, আকৃতি, লোক, স্কেল) কল করুন।
upark

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

1

লগনরমালের জন্য স্কিপিতে বিতরণের মতো মনে হয় আর এর মতো নয়, বা সাধারণত, আমি যে বিতরণটির সাথে পরিচিত তার মতো নয়। জন ডি কুক এটিকে স্পর্শ করেছেন: http://www.johndcook.com/blog/2010/02/03/statistical-distribtions-in-scipy/ http://www.johndcook.com/distribtions_scipy.html

তবে পাইথনে লগনিকাল ঘনত্বের ফাংশন কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আমি কোনও সিদ্ধান্তক খুঁজে পাইনি। যদি কেউ এটিতে যুক্ত করতে চান তবে দয়া করে নির্দ্বিধায়।

আমার সমাধান এখন পর্যন্ত 0 থেকে 180 (একচেটিয়া) মূল্যায়িত লগনরমাল পিডিএফ ব্যবহার করা এবং পাইথন স্ক্রিপ্টের অভিধান হিসাবে ব্যবহৃত হবে।

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