विशिष्ट अर्थ और मानक विचलन के रूप में विशिष्ट बाधाओं को संतुष्ट करने वाले डेटा का अनुकरण कैसे करें?


56

यह प्रश्न मेटा-विश्लेषण पर मेरे प्रश्न से प्रेरित है । लेकिन मुझे लगता है कि यह उन संदर्भों को पढ़ाने में भी उपयोगी होगा जहां आप एक डेटासेट बनाना चाहते हैं जो मौजूदा प्रकाशित डेटासेट को ठीक तरह से दर्पण करता है।

मुझे पता है कि किसी वितरण से यादृच्छिक डेटा कैसे उत्पन्न किया जाए। उदाहरण के लिए, यदि मैं एक अध्ययन के परिणामों के बारे में पढ़ता हूं:

  • 102 का एक मतलब,
  • 5.2 का मानक विचलन, और
  • 72 का एक नमूना आकार।

मैं rnormR में उपयोग करके समान डेटा उत्पन्न कर सकता हूं । उदाहरण के लिए,

set.seed(1234)
x <- rnorm(n=72, mean=102, sd=5.2)

बेशक औसत और एसडी क्रमशः 102 और 5.2 के बराबर नहीं होंगे:

round(c(n=length(x), mean=mean(x), sd=sd(x)), 2)
##     n   mean     sd 
## 72.00 100.58   5.25 

सामान्य तौर पर मुझे दिलचस्पी है कि कैसे डेटा का अनुकरण किया जाए जो बाधाओं का एक सेट संतुष्ट करता है। उपरोक्त मामले में, कसौटी नमूना आकार, माध्य और मानक विचलन हैं। अन्य मामलों में, अतिरिक्त अड़चनें हो सकती हैं। उदाहरण के लिए,

  • एक न्यूनतम और अधिकतम डेटा या अंतर्निहित चर ज्ञात हो सकता है।
  • चर केवल पूर्णांक मान या केवल गैर-नकारात्मक मान लेने के लिए जाना जा सकता है।
  • डेटा में ज्ञात अंतर-सहसंबंधों के साथ कई चर शामिल हो सकते हैं।

प्रशन

  • सामान्य तौर पर, मैं डेटा का अनुकरण कैसे कर सकता हूं जो बाधाओं का एक सेट पूरी तरह से संतुष्ट करता है?
  • क्या इस बारे में लेख लिखे गए हैं? क्या आर में कोई प्रोग्राम हैं जो ऐसा करते हैं?
  • उदाहरण के लिए, मुझे एक चर का अनुकरण कैसे करना चाहिए और करना चाहिए ताकि इसका एक विशिष्ट अर्थ और एसडी हो?

1
आप उन्हें प्रकाशित परिणामों के समान क्यों चाहते हैं? जनसंख्या के माध्य और मानक विचलन के इन अनुमानों ने उनके डेटा का नमूना नहीं दिया। उन अनुमानों में अनिश्चितता को देखते हुए, किसे कहना है कि जो नमूना आप ऊपर दिखा रहे हैं, वह उनकी टिप्पणियों के अनुरूप नहीं है?
गैविन सिम्पसन

4
क्योंकि यह प्रश्न उन उत्तरों को एकत्रित करता हुआ दिखाई देता है जो चिह्न (IMHO) को याद करते हैं, मैं यह बताना चाहता हूं कि वैचारिक रूप से इसका उत्तर सीधा है: समता संबंधी बाधाओं को सीमांत वितरणों की तरह माना जाता है और असमानता की बाधाएं ट्रंकेशन के मल्टीवेट एनालॉग हैं। ट्रंकेशन को संभालना अपेक्षाकृत आसान है (अक्सर अस्वीकृति नमूने के साथ); इन सीमांत वितरणों का नमूना लेने के लिए कठिन समस्या राशियाँ हैं। इसका अर्थ है कि वितरण और अड़चन को देखते हुए या तो नमूनाकरण मार्जिन, या सीमांत वितरण और इससे नमूना लेने के लिए एकीकृत।
whuber

4
BTW, अंतिम सवाल स्थान-स्तरीय वितरण परिवारों के लिए तुच्छ है। जैसे, टोटका x<-rnorm(72);x<-5.2*(x-mean(x))/sd(x)+102करता है।
whuber

1
@whuber, मेरे जवाब के लिए एक टिप्पणी में कार्डिनल अलाउंस (जो इस "ट्रिक" का उल्लेख करता है) और एक अन्य उत्तर के लिए एक टिप्पणी - यह विधि, सामान्य रूप से, समान वितरण परिवार के भीतर चर नहीं रखेगी, क्योंकि आप विभाजित कर रहे हैं नमूना मानक विचलन द्वारा।
मैक्रो

5
@ मैक्रो यह एक अच्छा बिंदु है, लेकिन शायद सबसे अच्छा जवाब है, "निश्चित रूप से उनका समान वितरण नहीं होगा"! आप जो वितरण चाहते हैं वह बाधाओं पर वितरण सशर्त है । सामान्य तौर पर, माता-पिता के वितरण के रूप में एक ही परिवार से नहीं होगा। उदाहरण के लिए, सामान्य वितरण से निकाले गए मीन 0 और एसडी 1 के आकार 4 के नमूने के प्रत्येक तत्व को [-1.5, 1.5] पर लगभग एक समान संभावना है, क्योंकि परिस्थितियां संभावित मूल्यों पर ऊपरी और निचले सीमा रखती हैं।
whuber

जवाबों:


26

सामान्य तौर पर, अपने नमूना मतलब और विचरण करने के लिए वास्तव में एक पूर्व निर्धारित मूल्य के बराबर है, तो आप उचित रूप से बदलाव और चर पैमाने पर कर सकते हैं। विशेष रूप से, यदि एक नमूना है, तो नए चरX1,X2,...,Xn

Zi=c1(XiX¯sX)+c2

जहाँ नमूना माध्य है और नमूना प्रसरण ऐसा है कि का नमूना माध्य बिल्कुल और उनका नमूना प्रसरण बिल्कुल । इसी तरह का निर्मित उदाहरण रेंज को प्रतिबंधित कर सकता है -रों 2 एक्स =1X¯=1ni=1nXiजेडमैंसी2सी1sX2=1n1i=1n(XiX¯)2Zic2c1

Bi=a+(ba)(Ximin({X1,...,Xn})max({X1,...,Xn})min({X1,...,Xn}))

डेटा सेट का उत्पादन करेगा जो अंतराल तक सीमित है । B1,...,Bn(a,b)

नोट: इस प्रकार की शिफ्टिंग / स्केलिंग, सामान्य रूप से, डेटा के वितरण परिवार को बदल देती है, भले ही मूल डेटा किसी स्थान-स्तरीय परिवार से आता हो।

के संदर्भ में सामान्य वितरणmvrnorm में समारोह R आप एक पूर्व निर्धारित के साथ सामान्य (या मल्टीवेरिएट सामान्य) डेटा अनुकरण करने के लिए अनुमति देता है नमूना की स्थापना द्वारा मतलब / सहप्रसरण empirical=TRUE। विशेष रूप से, यह फ़ंक्शन सामान्य रूप से वितरित चर के सशर्त वितरण से डेटा का अनुकरण करता है , नमूना माध्य और (सह) भिन्नता पूर्व-निर्दिष्ट मान के बराबर है । ध्यान दें कि परिणामी सीमांत वितरण सामान्य नहीं है, जैसा कि मुख्य प्रश्न में एक टिप्पणी में @whuber द्वारा बताया गया है।

यहाँ एक सरल अविभाज्य उदाहरण है जहाँ नमूना माध्य ( नमूने से ) 0 होने के लिए विवश है और नमूना मानक विचलन 1 है। हम देख सकते हैं कि पहला तत्व एक सामान्य वितरण की तुलना में एक समान वितरण के समान है। वितरण:n=4

library(MASS)
 z = rep(0,10000)
for(i in 1:10000)
{
    x = mvrnorm(n = 4, rep(0,1), 1, tol = 1e-6, empirical = TRUE)
    z[i] = x[1]
}
hist(z, col="blue")

                  यहाँ छवि विवरण दर्ज करें


1
सामान्य रूप से वितरित नहीं किया जाएगा, हालांकि वे लगभग हो सकता है, इसलिए यदि नमूने का आकार बड़ा है। @ शॉन के जवाब के लिए पहली टिप्पणी इस पर दृष्टिकोण। Zi
कार्डिनल

1
ठीक है, कि कारण नहीं है एक बहुत स्वाभाविक बात करना चाहता हूँ के लिए है ... और अक्सर बहुत ज्यादा मुसीबत।
कार्डिनल

1
+1। उदाहरण में, वर्दी सटीक उत्तर है, वैसे। (साजिश के सिरों पर स्पष्ट ड्रॉपऑफ़ कैसे आर हिस्टोग्राम ड्रॉ के एक विरूपण साक्ष्य है।)
whuber

1
@whuber, इस उदाहरण को प्रेरित करने के लिए धन्यवाद। इस तथ्य को देखते हुए कि नमूने के माध्य / भिन्नता पर सीमांत स्थिति बदलने के बाद, यह प्रतीत होता है कि ओपी के प्रश्न की भावना में सबसे अच्छा "उत्तर" सिर्फ जनसंख्या के साथ डेटा का अनुकरण करना है / नमूना के रूप में रिपोर्ट किए गए विचरण के बराबर। मात्रा (जैसा कि स्वयं ओपी ने सुझाव दिया है), है ना? इस तरह, आपको वांछित लोगों के लिए नमूना मात्रा "समान" मिलती है, और सीमांत वितरण वही होते हैं जो आप उन्हें चाहते थे।
मैक्रो

1
@whuber, यदि आपका नमूना सामान्य है, तो में -distribution है, हाँ? प्रश्न में "नया" चर सिर्फ का रैखिक संयोजन । Ti=(XiX¯)/stTi
मैक्रो

22

कागजात के लिए आपके अनुरोध के बारे में:

यह वह नहीं है जो आप खोज रहे हैं, बल्कि चक्की के लिए भी काम कर सकते हैं।


एक और रणनीति है जिसका कोई उल्लेख नहीं करता है। आकार सेट से (छद्म) यादृच्छिक डेटा उत्पन्न करना संभव है, ताकि पूरे सेट बाधाओं से मिलें जब तक कि शेष डेटा उचित मानों पर तय न हो जाए। आवश्यक मान समीकरणों, बीजगणित और कुछ कोहनी तेल की एक प्रणाली के साथ हल करने योग्य होना चाहिए । NkNkkk

उदाहरण के लिए, एक सामान्य वितरण से डेटा का एक सेट उत्पन्न करने के लिए जिसमें एक दिया नमूना मतलब होगा, , और विचरण, , आपको दो बिंदुओं के मूल्यों को ठीक करने की आवश्यकता होगी: और । चूंकि नमूना का मतलब है: होना चाहिए: नमूना प्रसरण है: इस प्रकार ( लिए उपरोक्त को निर्दिष्ट करने के बाद , / वितरण, और पुन: व्यवस्थित करना ... ) हमें मिला: Nx¯s2yz

x¯=i=1N2xi+y+zN
y
y=Nx¯(i=1N2xi+z)
s2=i=1N2(xix¯)2+(yx¯)2+(zx¯)2N1
y
2(Nx¯i=1N2xi)z2z2=Nx¯2(N1)+i=1N2xi2+[i=1N2xi]22Nx¯i=1N2xi(N1)s2
अगर हम , लेते हैं , और को RHS के निषेध के रूप में, हम द्विघात सूत्र का उपयोग करके लिए हल कर सकते हैं । उदाहरण के लिए, निम्न कोड का उपयोग किया जा सकता है: a=2b=2(Nx¯i=1N2xi)czR
find.yz = function(x, xbar, s2){
  N    = length(x) + 2
  sumx = sum(x)
  sx2  = as.numeric(x%*%x)          # this is the sum of x^2
  a    = -2
  b    = 2*(N*xbar - sumx)
  c    = -N*xbar^2*(N-1) - sx2 - sumx^2 + 2*N*xbar*sumx + (N-1)*s2
  rt   = sqrt(b^2 - 4*a*c)

  z    = (-b + rt)/(2*a)
  y    = N*xbar - (sumx + z)
  newx = c(x, y, z)
  return(newx)
}

set.seed(62)
x    = rnorm(2)
newx = find.yz(x, xbar=0, s2=1)
newx                                # [1] 0.8012701  0.2844567  0.3757358 -1.4614627
mean(newx)                          # [1] 0
var(newx)                           # [1] 1

इस दृष्टिकोण के बारे में समझने के लिए कुछ चीजें हैं। सबसे पहले, यह काम करने की गारंटी नहीं है। उदाहरण के लिए, यह संभव है कि आपका आरंभिक डेटा ऐसा हो, जिसमें कोई मान और मौजूद न हों, जिसके परिणामस्वरूप परिणामी का प्रसरण हो जाएगा । विचार करें: N2yzs2

set.seed(22)    
x    = rnorm(2)
newx = find.yz(x, xbar=0, s2=1)
Warning message:
In sqrt(b^2 - 4 * a * c) : NaNs produced
newx                                # [1] -0.5121391  2.4851837        NaN        NaN
var(c(x, mean(x), mean(x)))         # [1] 1.497324

दूसरा, जबकि मानकीकरण आपके सभी संस्करणों के सीमांत वितरण को अधिक समान बनाता है, यह दृष्टिकोण केवल अंतिम दो मूल्यों को प्रभावित करता है, लेकिन उनके सीमांत वितरण को तिरछा बनाता है:

set.seed(82)
xScaled = matrix(NA, ncol=4, nrow=10000)
for(i in 1:10000){
  x           = rnorm(4)
  xScaled[i,] = scale(x)
}

(प्लॉट डालें)

set.seed(82)
xDf = matrix(NA, ncol=4, nrow=10000)
i   = 1
while(i<10001){
  x       = rnorm(2)
  xDf[i,] = try(find.yz(x, xbar=0, s2=2), silent=TRUE)  # keeps the code from crashing
  if(!is.nan(xDf[i,4])){ i = i+1 }                      # increments if worked
}

(प्लॉट डालें)

तीसरा, परिणामस्वरूप नमूना बहुत सामान्य नहीं लग सकता है; ऐसा लग सकता है कि इसमें 'आउटलेयर' है (यानी, अंक जो बाकी की तुलना में एक अलग डेटा जनरेटिंग प्रक्रिया से आते हैं), क्योंकि यह अनिवार्य रूप से मामला है। यह बड़े नमूना आकारों के साथ एक समस्या होने की संभावना है, क्योंकि उत्पन्न आंकड़ों से नमूना आँकड़े आवश्यक मूल्यों में परिवर्तित होने चाहिए और इस प्रकार कम समायोजन होना चाहिए। छोटे नमूनों के साथ, आप हमेशा इस दृष्टिकोण को एक स्वीकार / अस्वीकार एल्गोरिथ्म के साथ जोड़ सकते हैं जो फिर से कोशिश करता है यदि उत्पन्न नमूने में आकृति के आँकड़े (जैसे, तिरछापन और कुर्तोसिस) हैं जो स्वीकार्य सीमा के बाहर हैं (cf., @ कार्डिनल की टिप्पणी ), या विस्तार करें एक निश्चित माध्य, विचरण, तिरछापन, और के साथ एक नमूना उत्पन्न करने के लिए यह दृष्टिकोणकर्टोसिस (मैं आपके ऊपर बीजगणित छोड़ दूँगा, हालाँकि)। वैकल्पिक रूप से, आप बहुत कम संख्या में नमूने उत्पन्न कर सकते हैं और सबसे छोटे (कहते हैं) कोलमोगोरोव-स्मिरनोव सांख्यिकी का उपयोग कर सकते हैं।

library(moments)
set.seed(7900)  
x = rnorm(18)
newx.ss7900 = find.yz(x, xbar=0, s2=1)
skewness(newx.ss7900)                       # [1] 1.832733
kurtosis(newx.ss7900) - 3                   # [1] 4.334414
ks.test(newx.ss7900, "pnorm")$statistic     # 0.1934226

set.seed(200)  
x = rnorm(18)
newx.ss200 = find.yz(x, xbar=0, s2=1)
skewness(newx.ss200)                        # [1] 0.137446
kurtosis(newx.ss200) - 3                    # [1] 0.1148834
ks.test(newx.ss200, "pnorm")$statistic      # 0.1326304 

set.seed(4700)  
x = rnorm(18)
newx.ss4700 = find.yz(x, xbar=0, s2=1)
skewness(newx.ss4700)                       # [1]  0.3258491
kurtosis(newx.ss4700) - 3                   # [1] -0.02997377
ks.test(newx.ss4700, "pnorm")$statistic     # 0.07707929S

(प्लॉट जोड़ें)


10

सामान्य तकनीक 'रिजेक्शन मेथड' है, जहाँ आप केवल उन परिणामों को अस्वीकार करते हैं जो आपके अवरोधों को पूरा नहीं करते। जब तक आपके पास कुछ प्रकार का मार्गदर्शन (जैसे MCMC) है, तब तक आप बहुत सारे मामले उत्पन्न कर सकते हैं (आपके परिदृश्य के आधार पर) जो अस्वीकार कर दिए जाते हैं!

जहाँ आप एक माध्य और मानक विचलन जैसी किसी चीज़ की तलाश कर रहे हैं और आप यह कहने के लिए किसी प्रकार की दूरी मीट्रिक बना सकते हैं कि आप अपने लक्ष्य से कितनी दूर हैं, आप इनपुट चर की खोज के लिए अनुकूलन का उपयोग कर सकते हैं जो आपको वांछित आउटपुट देता है। मान।

एक बदसूरत उदाहरण के रूप में जहां हम लंबाई 100 के साथ यादृच्छिक वर्दी वेक्टर की तलाश करेंगे, जिसका मतलब = 0 और मानक विचलन = 1 है।

# simplistic optimisation example
# I am looking for a mean of zero and a standard deviation of one
# but starting from a plain uniform(0,1) distribution :-)
# create a function to optimise
fun <- function(xvec, N=100) {
  xmin <- xvec[1]
  xmax <- xvec[2]
  x <- runif(N, xmin, xmax)
  xdist <- (mean(x) - 0)^2 + (sd(x) - 1)^2
  xdist
}
xr <- optim(c(0,1), fun)

# now lets test those results
X <- runif(100, xr$par[1], xr$par[2])
mean(X) # approx 0
sd(X)   # approx 1

7
संभावना शून्य के साथ होने वाली बाधाओं को संतुष्ट करना मुश्किल है। ;-) हाथ में विशिष्ट उदाहरण के लिए, एक उपयुक्त बदलाव और फैलाव आसानी से बताए गए लक्ष्यों को प्राप्त करता है , हालांकि कोई यह देखने के लिए थोड़ा गहरा विश्लेषण करना चाहता है कि इस तरह के ऑपरेशन से डेटा का वितरण कैसे गड़बड़ा जाता है।
कार्डिनल

धन्यवाद। निश्चित रूप से न्यूनतम से अधिक और अधिकतम से अधिक टिप्पणियों को अस्वीकार करना आसान होगा। और मैं देख सकता हूं कि आप इसे अनुकूलन समस्या के रूप में कैसे परिभाषित कर सकते हैं। कुछ उदाहरणों को देखना बहुत अच्छा होगा या शायद आगे पढ़ने के लिए कुछ सुझाव हों।
जेरोमे एंग्लीम

1
@ कार्डिनल - सहमत। किसी को इनपुट सिम्युलेटेड संख्या और आउटपुट दोनों के वितरण (यानी एक हिस्टोग्राम) को देखना चाहिए क्योंकि कभी-कभी ये वास्तव में बहुत अजीब लग सकते हैं!
शॉन

9

क्या आर में कोई प्रोग्राम हैं जो ऐसा करते हैं?

Runuran आर पैकेज यादृच्छिक variates पैदा करने के लिए कई तरीके हैं। यह UNU.RAN (यूनिवर्सल नॉन-यूनिफ़ॉर्म रैंडम नंबर जनरेटर) प्रोजेक्ट से सी लाइब्रेरीज़ का उपयोग करता है । यादृच्छिक variate उत्पादन के क्षेत्र की मेरा अपना ज्ञान सीमित है, लेकिन Runuran शब्दचित्र एक अच्छा सिंहावलोकन प्रदान करता है। नीचे रनगर पैकेज में उपलब्ध तरीके हैं, जो विगनेट से लिए गए हैं:

निरंतर वितरण:

  • अनुकूली अस्वीकृति नमूनाकरण
  • उलटा रूपांतरण घनत्व अस्वीकृति
  • व्युत्क्रम CDF का बहुपद प्रक्षेप
  • सरल अनुपात-एक-समान विधि
  • परिवर्तित घनत्व अस्वीकृति

असतत वितरण:

  • असतत स्वचालित अस्वीकृति
  • एलियास-उरन विधि
  • असतत व्युत्क्रम के लिए गाइड-टेबल विधि

बहुभिन्नरूपी वितरण:

  • हिट-एंड-रन एल्गोरिथ्म रेशियो-ऑफ-यूनिफॉर्म विधि के साथ
  • मल्टीवीरेट नाइव रेशियो-ऑफ-यूनिफॉर्म विधि

उदाहरण:

एक त्वरित उदाहरण के लिए, मान लीजिए कि आप 0 और 100 के बीच बंधे एक सामान्य वितरण को उत्पन्न करना चाहते थे:

require("Runuran")

## Normal distribution bounded between 0 and 100
d1 <- urnorm(n = 1000, mean = 50, sd = 25, lb = 0, ub = 100)

summary(d1)
sd(d1)
hist(d1)

urnorm()समारोह के लिए एक सुविधाजनक आवरण कार्य है। मेरा मानना ​​है कि पर्दे के पीछे यह व्युत्क्रम सीडीएफ पद्धति के बहुपद इंटरपोलेशन का उपयोग करता है लेकिन मुझे यकीन नहीं है। कुछ और जटिल के लिए, कहें, एक असतत सामान्य वितरण 0 और 100 के बीच बांटा गया:

require("Runuran")

## Discrete normal distribution bounded between 0 and 100
# Create UNU.RAN discrete distribution object
discrete <- unuran.discr.new(pv = dnorm(0:100, mean = 50, sd = 25), lb = 0, ub = 100)

# Create UNU.RAN object using the Guide-Table Method for Discrete Inversion
unr <- unuran.new(distr = discrete, method = "dgt")

# Generate random variates from the UNU.RAN object
d2 <- ur(unr = unr, n = 1000)

summary(d2)
sd(d2)
head(d2)
hist(d2)

3

ऐसा लगता है कि कल ही प्रकाशित आपकी आवश्यकता को पूरा करने वाला एक आर पैकेज है! केमस्ट गोल्डफेल्ड द्वारा सिम्सटुडी

मॉडलिंग तकनीकों का पता लगाने या डेटा जनरेट करने की प्रक्रियाओं को बेहतर ढंग से समझने के लिए डेटा सेटों का अनुकरण करता है। उपयोगकर्ता कोवरिएट के बीच संबंधों का एक सेट निर्दिष्ट करता है, और इन विशिष्टताओं के आधार पर डेटा उत्पन्न करता है। अंतिम डेटा सेट यादृच्छिक नियंत्रण परीक्षणों, बार-बार माप (अनुदैर्ध्य) डिजाइन और क्लस्टर यादृच्छिक परीक्षणों से डेटा का प्रतिनिधित्व कर सकते हैं। विभिन्न तंत्रों (MCAR, MAR, NMAR) का उपयोग करके गुमशुदगी उत्पन्न की जा सकती है।


1
न तो विगनेट में और न ही कार्यक्रम के होम पेज पर बाधाओं की सटीक बैठक का उल्लेख किया गया है। आपको क्या लगता है कि यह पैकेज सशर्त वितरण से ड्राइंग की आवश्यकता को पूरा करता है?
gg

2

यह इतनी देर से आने वाला एक उत्तर है कि यह संभवतः अर्थहीन है, लेकिन प्रश्न का हमेशा एमसीएमसी समाधान होता है। अर्थात्, नमूना को बाधाओं द्वारा परिभाषित कई गुना, उदाहरण के लिए एकमात्र मुद्दा उस मान पर कई गुना अनुकरण करते हुए है, अर्थात, सही आयाम का एक पैरामीटर खोज। बोर्न, शेफर्ड और सोलगी द्वारा 2015 का एक पेपर इस बहुत ही समस्या का अध्ययन करता है (एक दिलचस्प के साथ यदि अंतिम उत्तर नहीं है )।

i=1nf(xi)
i=1nxi=μ0i=1nxi2=σ02

2

यह उत्तर उस मामले के लिए एक और दृष्टिकोण पर विचार करता है जहां आप किसी निर्दिष्ट सीमा में वेरिएंट को झूठ बोलने के लिए मजबूर करना चाहते हैं और इसके अतिरिक्त माध्य और / या विचरण को निर्धारित करते हैं।

इकाई अंतराल हमारा ध्यान प्रतिबंधित करें । आइए सामान्यता के लिए एक भारित माध्य का उपयोग करें, इसलिए कुछ वज़न में , या यदि आप मानक भार चाहते हैं तो सेट करें । मान लीजिए कि मात्रा और क्रमशः वांछित (भारित) माध्य और (भारित) विचरण का प्रतिनिधित्व करते हैं। ऊपरी अंतराल पर आवश्यक है क्योंकि एक इकाई अंतराल पर अधिकतम विचरण संभव है। हम इन क्षणों प्रतिबंधों के साथ कुछ चर को से खींचने में रुचि रखते हैं ।[0,1]wk[0,1]k=1Nwk=1wk=1/Nμ(0,1)0<σ2<μ(1μ)σ2x1,...,xN[0,1]

सबसे पहले हम किसी भी वितरण से को जैसे कुछ आकर्षित करते हैं । यह वितरण अंतिम वितरण के आकार को प्रभावित करेगा। तब हम उन्हें एक लॉजिस्टिक फ़ंक्शन का उपयोग करके यूनिट अंतराल लिए विवश करते हैं :y1,...,yNN(0,1)[0,1]

xk=11+e(ykvh)

इससे पहले कि हम ऐसा करें, जैसा कि ऊपर दिए गए समीकरण में देखा गया है, हम का अनुवाद और स्केल साथ बदल देते हैं । यह @ मैक्रो के जवाब में पहले समीकरण के अनुरूप है। चाल अब और को चुनना है ताकि परिवर्तित चर में वांछित क्षण हो। अर्थात्, हमें निम्नलिखित में से एक या दोनों की आवश्यकता है: ykhvhvx1,...,xN

μ=k=1Nwk1+e(ykvh)σ2=k=1Nwk(1+e(ykvh))2(k=1Nwk1+e(ykvh))2

और लिए इन समीकरणों को विश्लेषणात्मक रूप से बदलना संभव नहीं है, लेकिन संख्यात्मक रूप से ऐसा करना सीधे आगे है, खासकर जब से और संबंध में डेरिवेटिव गणना करना आसान है; यह केवल न्यूटन की विधि के कुछ पुनरावृत्तियों को लेता है।vhvh

पहले उदाहरण के रूप में, मान लें कि हम केवल भारित माध्य को सीमित करने के बारे में परवाह करते हैं, न कि विचरण करते हैं। फिक्स , , , । फिर अंतर्निहित वितरण , और हम क्रमशः निम्नलिखित हिस्टोग्राम के साथ समाप्त होते हैं, और इस तरह कि का मतलब ठीक (यहां तक ​​कि छोटे ):v = 1 w k = 1 / N N = 200000 N ( 0 , 1 ) N ( 0 , 0.1 ) Unif ( 0 , 1 ) 0.8 Nμ=0.8v=1wk=1/NN=200000N(0,1)N(0,0.1)Unif(0,1) 0.8N

उदाहरण 1

अगला, चलो दोनों माध्य और विचरण करते हैं। ले लो , , और तीन वांछित मानक विचलन पर विचार । समान अंतर्निहित वितरण का उपयोग करते हुए , यहां प्रत्येक के लिए हिस्टोग्राम हैं:w कश्मीर = 1 / एन एन = 2000 σ = 0.1 , 0.05 , 0.01 एन ( 0 , 1 )μ=0.2wk=1/NN=2000σ=0.1,0.05,0.01N(0,1)

उदाहरण 2

ध्यान दें कि ये थोड़े बीटा-डिस्ट्रिब्यूटेड दिख सकते हैं, लेकिन ये नहीं हैं।


1

यहाँ मेरे जवाब में , मैंने ऐसा करने के लिए तीन आर पैकेज सूचीबद्ध किए:


संदर्भों के लिंक के लिए कुछ प्रारूप होना चाहिए। इसके बजाय एक टिप्पणी होनी चाहिए?
abalter
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.