দ্বিখণ্ডিত দ্বিপদী বিতরণ ভিজ্যুয়ালাইজ করুন


11

প্রশ্ন: দ্বি-দ্বি-দ্বিস্থ স্থানের দ্বিখণ্ডিত দ্বিখণ্ডিত বিতরণ দেখতে কেমন?

নীচে নির্দিষ্ট বৈশিষ্ট্য যা আমি পরামিতিগুলির বিভিন্ন মানগুলির জন্য কল্পনা করতে চাই; যেমন, , , এবং ।পি 1 পি 2np1p2

f(x1,x2)=n!x1!x2!p1x1p2x2,x1+x2=n,p1+p2=1.

লক্ষ করুন যে দুটি বাধা আছে; এবং । । উপরন্তু, , একটি ধনাত্মক পূর্ণসংখ্যা, বলুন ।পি 1 + পি 2 = 1 এন 5x1+x2=np1+p2=1n5

LaTeX (টিকজেড / PGFPLOTS) ব্যবহার করে ফাংশনটি প্লট করার জন্য দুটি চেষ্টা করেছেন attempts এটি করার জন্য, আমি নীচের মানগুলির জন্য গ্রাফগুলি নীচে পেয়েছি: , এবং , এবং, , এবং যথাক্রমে । আমি ডোমেনের মানগুলিতে সীমাবদ্ধতা প্রয়োগ করতে সফল হইনি; , সুতরাং আমি কিছুটা স্টম্পড।পি 1 = 0.1 পি 2 = 0.9 এন = 5 পি 1 = 0.4 পি 2 = 0.6 এক্স 1 + এক্স 2 = এনn=5p1=0.1p2=0.9n=5p1=0.4p2=0.6x1+x2=n

যে কোনও ভাষায় উত্পাদিত ভিজ্যুয়ালাইজেশন জরিমানা করতে পারে (আর, ম্যাটল্যাব ইত্যাদি), তবে আমি টিকজেড / পিজিএফপিএলটিএস সহ লটেক্সে কাজ করছি।

প্রথম প্রচেষ্টা

পি 1 = 0.1 পি 2 = 0.9n=5 , এবংp1=0.1p2=0.9

এখানে চিত্র বর্ণনা লিখুন

দ্বিতীয় প্রচেষ্টা

পি 1 = 0.4 পি 2 = 0.6n=5 , এবংp1=0.4p2=0.6

এখানে চিত্র বর্ণনা লিখুন

সম্পাদনা:

রেফারেন্সের জন্য, এখানে কিছু গ্রাফ রয়েছে এমন একটি নিবন্ধ রয়েছে। কাগজের শিরোনাম হ'ল আতানু বিশ্বসা ও জিং-শিয়াং হুয়াংয়ের "একটি নতুন দ্বিখণ্ডিত দ্বিপদী বিতরণ"। পরিসংখ্যান এবং সম্ভাবনার চিঠিগুলি 60 (2002) 231–240।

2 সম্পাদনা করুন: স্পষ্টতার জন্য, এবং মন্তব্যগুলিতে @ গ্লেনিবের জবাবে, নীচে আমার বইতে কীভাবে বিতরণটি উপস্থাপন করা হয়েছে তার একটি স্ন্যাপশট রয়েছে। বইটি অধঃপতন / অ-অবক্ষয়জনিত কেস ইত্যাদির উল্লেখ করে না। এটি কেবল এটির মতো উপস্থাপন করে এবং আমি এটি দেখার জন্য চেষ্টা করেছি। চিয়ার্স! এছাড়াও, @ জনক দ্বারা নির্দেশিত হিসাবে, x1 + x1 = 1 সম্পর্কিত একটি টাইপো হওয়ার সম্ভাবনা রয়েছে, যা তিনি পরামর্শ দেন যে x1 + x1 = n হওয়া উচিত।

এখানে চিত্র বর্ণনা লিখুন

থেকে সমীকরণের চিত্র:

স্প্যানোস, এ (1986) ইকোনোমেট্রিক মডেলিংয়ের পরিসংখ্যান ভিত্তিক। ক্যামব্রিজ ইউনিভার্সিটি প্রেস


5
তবে এটি কি ধারাবাহিক হওয়া উচিত নয়? উভয় এলোমেলো পরিবর্তনশীল পৃথক।
জনক

1
সুতরাং x1 এবং x2 স্বতন্ত্র, এটি কি ঠিক? আপনার কি সিউডো -3 ডি প্লট দরকার? একটি হিটম্যাপ গ্রহণযোগ্য হবে?
গুং - মনিকা পুনরায়


2
@JohnK তাহলে এবং আপনি কার সাথে এসেছেন ডিলিং (এবং হয় কেবল )। এই univariate দ্বিপদ (অথবা, bivariate, এটা হিসাবে বিবেচনা করা অধ: পতিত )। পি 1 + পি 2 = 1 এক্স 1দ্বিপদী ( এন , পি 1 ) এক্স 2 এন - এক্স 1x1+x2=np1+p2=1X1Binomial(n,p1)X2nX1
গ্লেন_বি -রিনস্টেট মনিকা

3
আপনার প্রশ্নের দ্বিপদী দ্বিপদী সম্পর্কে আপনার কাছে কোনও স্পেসিফিকেশন নেই। (দ্বিখণ্ডিত বিতরণ নির্দিষ্ট করার একাধিক উপায় রয়েছে যা সম্ভবতভাবে "দ্বিপদী" বলা যেতে পারে You এগুলির কোনও আপনার নেই, যদিও আপনার অবক্ষয়টি তাদের কয়েকটিটির একটি বিশেষ ক্ষেত্রে হবে)) ... অঙ্কনগুলি আঁকুন আপনার বিশ্ববাসা এবং হুয়াং রেফারেন্সটি কোনও বিভাজনযুক্ত পিএমএফের উপযুক্ত প্রদর্শন নয় । সংক্ষেপে, আপনার প্রশ্নের কিছু অভাব আছে করার আঁকা, এবং আপনার অবগতির প্রধানত কি এড়ানোর জন্য একটি উদাহরণ হিসাবে দরকারী।
গ্লেন_বি -রিনস্টেট মনিকা

উত্তর:


8

এর দুটি টুকরো রয়েছে: প্রথমে আপনাকে স্বতন্ত্র সম্ভাবনাগুলি কী তা নির্ধারণ করতে হবে, তারপরে আপনাকে সেগুলি কোনওভাবে প্লট করা দরকার।

একটি দ্বিপদী পিএমএফ হ'ল বেশ কয়েকটি 'সাফল্য' নিয়ে সম্ভাবনার এক সেট। দ্বিখণ্ডিত দ্বিপদী পিএমএফ 'সাফল্য' এর সম্ভাব্য সংমিশ্রণের গ্রিডে সম্ভাবনার একটি সেট হবে। আপনার ক্ষেত্রে, আপনার , সুতরাং ( সাফল্য একটি সম্ভাবনা মনে করে) গ্রিড / বিভাজন দ্বিপদী বিতরণে সম্ভাব্য ফলাফল রয়েছে। 0 6 × 6 = 36ni=nj=506×6=36

আমরা প্রথমে প্রান্তিক দ্বিপদী পিএমএফ গণনা করতে পারি, কারণ এটি এতটা সহজ। ভেরিয়েবলগুলি স্বাধীন হওয়ায় প্রতিটি যৌথ সম্ভাবনা হ'ল প্রান্তিক সম্ভাবনার পণ্য; এটি ম্যাট্রিক্স বীজগণিত। এখানে আমি Rকোড ব্যবহার করে এই প্রক্রিয়াটি প্রদর্শন করি :

b1 = dbinom(0:5, size=5, prob=0.1);  sum(b1)  # [1] 1
b9 = dbinom(0:5, size=5, prob=0.9);  sum(b9)  # [1] 1
b4 = dbinom(0:5, size=5, prob=0.4);  sum(b4)  # [1] 1
b6 = dbinom(0:5, size=5, prob=0.6);  sum(b6)  # [1] 1

b19 = b1%o%b9;  sum(b19)  # [1] 1
rownames(b19) <- colnames(b19) <- as.character(0:5)
round(b19, 6)
#       0        1        2        3        4        5
# 0 6e-06 0.000266 0.004783 0.043047 0.193710 0.348678
# 1 3e-06 0.000148 0.002657 0.023915 0.107617 0.193710
# 2 1e-06 0.000033 0.000590 0.005314 0.023915 0.043047
# 3 0e+00 0.000004 0.000066 0.000590 0.002657 0.004783
# 4 0e+00 0.000000 0.000004 0.000033 0.000148 0.000266
# 5 0e+00 0.000000 0.000000 0.000001 0.000003 0.000006
b46 = b4%o%b6;  sum(b46)  # [1] 1
rownames(b46) <- colnames(b46) <- as.character(0:5)
round(b46, 3)
#       0     1     2     3     4     5
# 0 0.001 0.006 0.018 0.027 0.020 0.006
# 1 0.003 0.020 0.060 0.090 0.067 0.020
# 2 0.004 0.027 0.080 0.119 0.090 0.027
# 3 0.002 0.018 0.053 0.080 0.060 0.018
# 4 0.001 0.006 0.018 0.027 0.020 0.006
# 5 0.000 0.001 0.002 0.004 0.003 0.001

এই মুহুর্তে, আমাদের দুটি সম্ভাব্যতার জন্য প্রয়োজনীয় ম্যাট্রিক রয়েছে। আমাদের কীভাবে আমরা তাদের চক্রান্ত করতে চাই তা ঠিক করা দরকার। সত্যি কথা বলতে, আমি 3 ডি বারের চার্টের কোনও বড় অনুরাগী নই। কারণ Rআমার সাথে একমত বলে মনে হচ্ছে, আমি এক্সলে এই প্লটগুলি তৈরি করেছি:

b19:

এখানে চিত্র বর্ণনা লিখুন

b46:

এখানে চিত্র বর্ণনা লিখুন


উপস্থাপনা প্লাস আর কোড করার জন্য আপনাকে ধন্যবাদ। এটি আমাকে x1 + x2 = n সম্পর্কে জিজ্ঞাসা করতে পরিচালিত করে। এই শর্তটি যদি ধরে রাখে, তবে এখানে উপস্থাপিত স্তম্ভগুলির জন্য কেবল একটি একক লাইন থাকা উচিত: রেফারেন্স.ওয়লফ্রাম / ভাষা / রেফ / মাল্টিনোমিয়ালডিস্ট্রিবিউশন। Html আমি যে ওল্ফ্রাম গ্রাফটি ধরে নিয়েছি তা @ গ্লেন_বি হ'ল অবক্ষয়জনিত কেস হিসাবে উল্লেখ করেছে? এর অর্থ কি এই যে আপনি অ-অধঃপতন মামলা উপস্থাপন করেছেন?
গ্রিম ওয়ালশ

1
গ্রিমওয়ালশ, আমার উপস্থাপনাটি দ্বিপদী দ্বিপদী প্রদর্শন করে না যেখানে x1 + x2 = n। @ গ্লেন_বি মন্তব্যসমূহ এবং তার উত্তরে যেমন ব্যাপক আলোচনা করেছেন, আমি সত্যিই তাকে "দ্বিপদী দ্বিপদী বিতরণ" ডাব্লু / ও এর যোগ্যতা বলব না। তদুপরি, এর অর্থ হ'ল x1 এবং x2 স্বতন্ত্র নয়, যেমন আপনি আপনার প্রতিক্রিয়া মন্তব্যে বলেছিলেন, তবে পুরোপুরি নির্ভরশীল। সত্য সত্যই, আমি লক্ষ্য করিনি যে এটি এমন উদ্ভট রূপ ছিল (যথেষ্ট পরিমাণে পড়তে না পারার জন্য আপনি আমাকে দোষ দিতে পারেন)। গ্লেন_বি যেমন দেখিয়েছে, সেই সংস্করণটি স্তম্ভগুলির একক লাইন হবে। আমি যা উপস্থাপন করেছি তা হ'ল অবক্ষয়হীন মামলা।
গুং - মনিকা পুনরায়

আমি আপনাকে নতুন প্লট পছন্দ করি আমি মনে করি আপনার আলোচনা অধঃপতিত কেসটিকে ঠিক জরিমানা করেছে ("আপনাকে পৃথক সম্ভাবনাগুলি কী তা নির্ধারণ করা দরকার" সত্যই সবকিছু বলে; অধঃপতন মামলার প্রকৃত গণনাগুলি তুচ্ছ); আমি কেবল সেই তুচ্ছ গণনাগুলি চালিয়েছি।
গ্লেন_বি -রিনস্টেট মনিকা

7

গুং এর উত্তরটি প্রকৃত দ্বি দ্বিপাক্ষিক দ্বিপদী জন্য একটি ভাল উত্তর, সমস্যাগুলি ভালভাবে ব্যাখ্যা করে (আমি এটি শিরোনাম প্রশ্নের উত্তরের উত্তর হিসাবে গ্রহণ করার পরামর্শ দিই, সম্ভবত অন্যের পক্ষে দরকারী)।

আপনার সম্পাদনায় আপনি যে গাণিতিক বস্তুটি উপস্থাপন করেন তা সত্যই একটি অবিচ্ছিন্ন মাপযুক্ত দ্বিপদী হয়। এখানে হল দ্বিপদী গণনা দ্বারা নেওয়া মূল্য নয় তবে অনুপাত দ্বারা (দ্বি দ্বি দ্বারা দ্বারা বিভক্ত ) byx1n

সুতরাং আসুন জিনিস সঠিকভাবে সংজ্ঞায়িত করা যাক। নোট করুন যে এলোমেলো ভেরিয়েবলের কোনও সংজ্ঞা আসলে দেওয়া হয় না, তাই আমরা কিছু অনুমানের কাজ রেখেছি।

যাক দ্রষ্টব্য যে আমরা যখন এর জন্য গাণিতিক সূত্র দিই তখন কী মান করতে পারে তা প্রয়োজনীয় , সুতরাং । যাক , এবং মনে রাখবেন ।Y1binomial(n,p1),P(Y1=y1)y1y1=0,1,...,nX1=Y1/nx1=0,16,26,...,1

তারপরে আপনি যে সমীকরণটি দিয়েছেন সেটি হল (এটি উল্লেখ করে যে এবং )।P(X1=x1)x2=nx1p2=1p1

জন্য , এটা ভালো দেখায়:n=6,p1=0.3

এখানে চিত্র বর্ণনা লিখুন

আমরা লাগাতে পারেন কেবল অধীনে লেবেলের একটি দ্বিতীয় সেট রেখে বেশ নির্দ্ধিধায় উপরে চক্রান্ত উপর মূল্যবোধ, মান সমান কর্তৃক গৃহীত মান নির্দেশ করে (একটি পৃথক রঙের সম্ভবত) ।x2x11x1x2

আমরা এটিকে (স্কেলড) ডিজেনরেট বাইভারিয়েট দ্বিপদী হিসাবে বিবেচনা করতে পারি:

এখানে চিত্র বর্ণনা লিখুন

তবে বইটিতে বাইভারিয়েট দ্বিপদী যা সংজ্ঞায়িত হয়েছে তা সত্যিই কল করা কিছুটা প্রসারিত বিষয় (যেহেতু এটি কার্যকরভাবে অবিবাহিত দ্বিপদী)।

এই ধারণাটি নিয়ে যে কেউ 3 ডি-তে একটি অনুরূপ প্লট তৈরি করতে চাইবে, এই সামান্য বিট (আর) কোড উপরের দ্বিতীয় প্লটের সাথে বেশ কাছাকাছি আসে:

y = 0:6
x1 = y/6
x2 = 1-x1
p = dbinom(y,6,.3)
scatterplot3d(x1,x2,p,grid=TRUE, box=FALSE, cex.lab=1.2,
        color=3, cex.main=1.4,pch=21,bg=1,, type="h",angle=120,
        main="degenerate scaled binomial", ylab="x2", xlab="x1", 
        zlab="prob")

(আপনার scatterplot3dপ্যাকেজটি দরকার যা একই নামের ফাংশন ধারণ করে))

একটি "সত্য" (অবনতিহীন) দ্বিপরিচয়ের দ্বিপদী একসাথে উভয় ভেরিয়েবলের বৈচিত্র রয়েছে। এখানে একটি বিশেষ ধরণের দ্বিপদী দ্বিপদী একটি উদাহরণ (এই ক্ষেত্রে স্বাধীন নয়)। আমি প্লটে বিভিন্ন রঙ ব্যবহার করার আশ্রয় নিয়েছিলাম কারণ অন্যথায় "লাঠি" জঙ্গলে হারিয়ে যাওয়া খুব সহজ।

এখানে চিত্র বর্ণনা লিখুন

কোনও অবজেক্ট পাওয়ার অনেকগুলি উপায় রয়েছে যা আপনি দ্বিপদী দ্বিপদী কল করতে পারেন; এই বিশেষ আপনি যেখানে , , ( সমস্ত স্বতন্ত্র), তারপরে এবং ।Xbin(n0,p)Ybin(ny,p)Zbin(nz,p)X1=X+YX2=X+Z

এটি দ্বিপদী এবং যা পারস্পরিক সম্পর্কযুক্ত (তবে এর অসুবিধাটি রয়েছে যে এটি নেতিবাচক সম্পর্কগুলি তৈরি করে না)।X1X2

এই বিশেষ ধরণের দ্বিখণ্ডিত দ্বিপদী বিতরণের পিএমএফের জন্য একটি অভিব্যক্তি হামদানে দেওয়া হয়েছিল, 1972 [1] তবে আমি সেই গণনাটি ব্যবহার করি নি; যে কেউ সহজেই গণনা করতে পারেন (সংখ্যার কনভোলশন)। এই বিশেষ ক্ষেত্রে 4 ছিল এবং এবং কেবল 2 জন ছিল তাই পুরো গ্রিড জুড়ে প্রত্যক্ষ সংখ্যার গণনা (চূড়ান্ত ফলাফলের 49 টি মান) কঠিন বা কঠোর নয়। আপনি উপরের চিত্রের মতো ডিজেনরেট বিভাজন (উভয় মাত্রা ) এর সাথে শুরু করুন (তবে ছোট এবং "মূল তির্যক" - প্রতিরোধক ( ) এর পরিবর্তে এবং পরে পৃথক উপাদানগুলি যুক্ত করুন) , সম্ভাবনাটি তির্যকটি সহ এবং বাইরে ছড়িয়ে দেওয়া।n0nynz=Xx1=x2x1+x2=n

[১]: হামদান, এমএ (১৯ 197২),
"অসামান্য প্রান্তিক সূচকগুলি সহ বিভেরিয়েট দ্বিপদী বিতরণের ক্যানোনিকাল এক্সপেনশন"
আন্তর্জাতিক পরিসংখ্যান পর্যালোচনা , 40 : 3 (ডিসেম্বর), পৃষ্ঠা 277-280


খুশী হলাম। এটিও লক্ষণীয় যে এই ক্ষেত্রেcorr(X1,X2)=1
জনক

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

1
@ গ্র্যামি যেমন আমি ইতিমধ্যে মন্তব্যগুলিতে উল্লেখ করেছি (/ উত্তর), এমন কোনও অবজেক্ট পাওয়ার অনেকগুলি উপায় রয়েছে যা আপনি দ্বিঘাতীয় দ্বিপদীকে কল করতে পারেন (প্রকৃতপক্ষে আপনার প্রশ্নে বিশ্বস এবং হুয়াং রেফারেন্সের শিরোনাম আপনাকে যতটা বলবে)। এটি অবশ্যই দ্বিপদী হিসাবে অনন্য নয়, অনেক বেশি ব্যবহৃত বিভাজনীয় জেনারালাইজেশন রয়েছে সাধারণভাবে ব্যবহৃত অবিচ্ছিন্ন বিতরণগুলির অনেকগুলি। আমার উত্তরে আমি যে "বিশেষ ধরণের দ্বিপদী দ্বিপদী" দিয়েছি তা হ'ল আপনি যেখানে , , (সমস্ত স্বতন্ত্র), তারপরে এবং । ... সিটিডিওয়াই ~ বিন ( এন ওয়াই , পি ) টু Z ~ বিন ( এন z- র , পি ) এক্স 1 = এক্স + + ওয়াই এক্স 2 = এক্স + + জেডXbin(n0,p)Ybin(ny,p)Zbin(nz,p)X1=X+YX2=X+Z
গ্লেন_বি -রেইনস্টেট মনিকা

1
সিটিডি ... এটি দ্বিপদী এবং যা পারস্পরিক সম্পর্কযুক্ত তবে এর অসুবিধাও রয়েছে যে এটি নেতিবাচক পারস্পরিক সম্পর্ক তৈরি করে না, সুতরাং এটি সাধারণ বাইওয়্যারিয়েট মডেলিংয়ের জন্য বাইভারিয়েট বাইনোমিয়ালের কিছু অন্যান্য সূত্রগুলির মতো কার্যকর নয়। সাধারণত আপনি যখন একটি অবিবাহিত বিতরণ পরিবারকে একটি দ্বিবিভক্ত পরিবারে সাধারণীকরণ করেন, তখন আপনাকে কোন বৈশিষ্ট্যটি সবচেয়ে বেশি চান এবং কোনটি আপনি ছেড়ে দিতে পারবেন তা বেছে নিতে হবে এবং এই পছন্দগুলি দ্বিবিভক্ত পরিবারগুলির বিভিন্ন পছন্দকে নিয়ে যাবে। [সাধারণ বিতরণ অস্বাভাবিক - আমরা যা চাই তার এক্স 2X1X2
চেয়ে অনেকগুলিই

@ গ্রামীম ... আমি আরও কিছু বিশদ যুক্ত করার পরিকল্পনা করছি।
গ্লেন_বি

4

Mathematicaএই জাতীয় জিনিসগুলিতে এখন বেশ শক্তিশালী - ডকুমেন্টেশনে এটি আপনার সমস্যার সমাধান রয়েছে । সামান্য সংযোজন সহ আমি চারপাশে খেলতে একটি মডেল তৈরি করেছি (আরও p = p1 = 0.4ভাল ভিজ্যুয়াল উপস্থাপনার জন্য)। ইন্টারফেসটি কীভাবে দেখায় এবং কীভাবে এটি নিয়ন্ত্রণ করা যায়।

এখানে চিত্র বর্ণনা লিখুন

টুকিটাকি

Manipulate[
 Grid[{
   {DiscretePlot3D[
     PDF[MultinomialDistribution[n, {p, 1 - p}], {x, y}], {x, 0, 
      n}, {y, 0, n}, PlotLabel -> Row[{"n = ", n}], 
     ExtentSize -> Right],

    DiscretePlot3D[
     CDF[MultinomialDistribution[n, {p, 1 - p}], {x, y}], {x, 0, 
      n}, {y, 0, n}, PlotLabel -> Row[{"n = ", n}], 
     ExtentSize -> Right]}
   }]
 ,
 {{n, 5}, 1, 20, 1, Appearance -> "Labeled"},
 {{p, 0.4}, 0.1, 0.9},
 TrackedSymbols -> True
 ]

PDF[MultinomialDistribution[n, {p, 1 - p}], {x, y}]আমার মনে হয় এখানে মূল জিনিসটি যা সেলফ এক্সপ্ল্যান্টরিভ, এটি আমার মনে হয়। Multinomialকেবলমাত্র এর অর্থ হ'ল আপনি নিজের সাথে চলকটির piজন্য প্রচুর বিতরণ করতে পারেন । সরল রূপটি BinomialDistribution। অবশ্যই, আমি এটি ম্যানুয়ালি তৈরি করতে পারতাম, তবে নিয়মটি যদি আপনার কোনও বিল্ট-ইন ফাংশন থাকে - আপনার এটি ব্যবহার করা উচিত।

কোড কাঠামো সম্পর্কে আপনার যদি কিছু মতামত প্রয়োজন হয় তবে দয়া করে আমাকে জানান।

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