একটি বিদ্যমান ভেরিয়েবল (গুলি) এর সাথে সংজ্ঞায়িত পারস্পরিক সম্পর্কযুক্ত একটি এলোমেলো ভেরিয়েবল তৈরি করুন


71

একটি সিমুলেশন অধ্যয়নের জন্য আমাকে এলোমেলো ভেরিয়েবলগুলি তৈরি করতে হবে যা বিদ্যমান ভেরিয়েবল সাথে একটি পূর্বনির্ধারিত (জনসংখ্যা) পারস্পরিক সম্পর্ক দেখায় ।Y

আমি Rপ্যাকেজগুলিতে সন্ধান করেছি copulaএবং CDVineযা প্রদত্ত নির্ভরতা কাঠামোর সাথে এলোমেলো মাল্টিভারিয়েট বিতরণ তৈরি করতে পারে। যাইহোক, বিদ্যমান ভেরিয়েবলের ফলে ফলাফলগুলির মধ্যে একটি স্থির করা সম্ভব নয়।

বিদ্যমান ক্রিয়াকলাপগুলির জন্য কোনও ধারণা এবং লিঙ্কগুলি প্রশংসা করা হয়!


উপসংহার: দুটি সমাধান কার্যকর হয়েছে বিভিন্ন সমাধান সহ:

  1. কারাকালের দ্বারা R লিখিত একটি স্ক্রিপ্ট , যা পূর্বনির্ধারিত ভেরিয়েবলের সাথে সঠিক (নমুনা) পারস্পরিক সম্পর্কযুক্ত একটি এলোমেলো ভেরিয়েবল গণনা করে
  2. একটি R ফাংশন আমি নিজেকে পেয়েছি, যা একটি পূর্বনির্ধারিত ভেরিয়েবলের সাথে সংজ্ঞায়িত জনসংখ্যার পারস্পরিক সম্পর্কযুক্ত একটি এলোমেলো পরিবর্তনশীল গণনা করে

[@ttnphns 'সংযোজন: আমি একক স্থির পরিবর্তনশীল কেস থেকে নির্ধারিত ভেরিয়েবলের স্বেচ্ছাসেবী সংখ্যায় প্রশ্নের শিরোনাম প্রসারিত করতে স্বাধীনতা নিয়েছি; উদাহরণস্বরূপ, কিছু স্থির, বিদ্যমান ভেরিয়েবল (গুলি) দিয়ে পূর্বনির্ধারিত কর্যেটেশন (গুলি) যুক্ত একটি চলক কীভাবে তৈরি করা যায়]


2
এই সম্পর্কিত প্রশ্নটি দেখুন stats.stackexchange.com/questions/13382/… যা আপনার প্রশ্নকে সরাসরি সম্বোধন করে (কমপক্ষে এটির তত্ত্বের দিক)।
ম্যাক্রো

উত্তর:


56

এখানে আরও একটি রয়েছে: গড় 0 সহ ভেক্টরগুলির জন্য, তাদের পারস্পরিক সম্পর্ক তাদের কোণের কোসাইন সমান। তাই একটি উপায় একটি ভেক্টর এটি ঠিক পছন্দসই পারস্পরিক সম্পর্ক সঙ্গে , একটি কোণের সংশ্লিষ্ট :r θxrθ

  1. স্থির ভেক্টর এবং একটি এলোমেলো ভেক্টরx 2x1x2
  2. উভয় ভেক্টরকে কেন্দ্র করে (মানে 0), ভেক্টরকে , giving ˙ x 2x˙1x˙2
  3. করতে থেকে লম্ব (লম্ব subspace সম্মুখের অভিক্ষেপ), দান ˙ x 1 ˙ x 2x˙2x˙1x˙2
  4. স্কেল এবং দৈর্ঘ্য 1, এবং ˙ x 2 ˉ x 1 ˉ x 2x˙1x˙2x¯1x¯2
  5. ˉ x 1θ ˉ এক্স 1আরএক্স1 1x¯2+(1/tan(θ))x¯1 the এমন ভেক্টর যার কোণ angle হয় , এবং যার পারস্পরিক সম্পর্ক এইভাবে হয় । লিনিয়ার রূপান্তরগুলি পারস্পরিক সম্পর্ক অপরিবর্তিত এটিও এর সাথে সম্পর্কিত।x¯1θx¯1rx1

কোডটি এখানে:

n     <- 20                    # length of vector
rho   <- 0.6                   # desired correlation = cos(angle)
theta <- acos(rho)             # corresponding angle
x1    <- rnorm(n, 1, 1)        # fixed given data
x2    <- rnorm(n, 2, 0.5)      # new random data
X     <- cbind(x1, x2)         # matrix
Xctr  <- scale(X, center=TRUE, scale=FALSE)   # centered columns (mean 0)

Id   <- diag(n)                               # identity matrix
Q    <- qr.Q(qr(Xctr[ , 1, drop=FALSE]))      # QR-decomposition, just matrix Q
P    <- tcrossprod(Q)          # = Q Q'       # projection onto space defined by x1
x2o  <- (Id-P) %*% Xctr[ , 2]                 # x2ctr made orthogonal to x1ctr
Xc2  <- cbind(Xctr[ , 1], x2o)                # bind to matrix
Y    <- Xc2 %*% diag(1/sqrt(colSums(Xc2^2)))  # scale columns to length 1

x <- Y[ , 2] + (1 / tan(theta)) * Y[ , 1]     # final new vector
cor(x1, x)                                    # check correlation = rho

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

অরথোগোনাল প্রজেকশন আমি সংখ্যার স্থায়িত্বের উন্নতির জন্য ডিকম্পোজিশনটি ব্যবহার করেছি , তখন থেকে কেবল ।প্রশ্ন আর পি = প্রশ্নঃ প্রশ্নঃ 'PQRP=QQ


আমি এসপিএসএস সিনট্যাক্সে কোডটি পুনরায় লেখার চেষ্টা করছিলাম। আমি আপনার কিউআর পচন ধরে হোঁচট খাচ্ছি যা 20x1 কলাম দেয় returns এসপিএসে আমার গ্রাম-শ্মিড্ট অরথনোরমালাইজেশন রয়েছে (এটিও কিউআর পচন) তবে আপনার ফলাফল কিউ কলামটি প্রতিলিপি করতে অক্ষম। আপনারা কিউআর অ্যাকশনটি আমাকে চিবিয়ে দিতে পারেন দয়া করে। বা অভিক্ষেপ পেতে কিছু কাজ সম্পর্কে নির্দেশ করুন। ধন্যবাদ।
ttnphns

@ কারাকাল, P <- X %*% solve(t(X) %*% X) %*% t(X)আর = 0.6 উত্পাদন করে না, সুতরাং এটি প্রায় কাজ নয়। আমি এখনও বিভ্রান্ত ( Q <- qr.Q(qr(Xctr[ , 1, drop=FALSE]))এসপিএসএসে আপনার অভিব্যক্তিটি নকল করে আমি আনন্দিত তবে কীভাবে তা জানি না know)
ttnphns

@ttnphns বিভ্রান্তির জন্য দুঃখিত, আমার মন্তব্যটি সাধারণ ক্ষেত্রে ছিল। উদাহরণ হিসাবে পরিস্থিতিতে এটি প্রয়োগ করা: কিউআর-পচনের মাধ্যমে প্রজেকশন ম্যাট্রিক্স পাওয়া কেবল সংখ্যাগত স্থায়িত্বের জন্য। ম্যাট্রিক্স কলাম দ্বারা বিস্তৃত থাকলে আপনি হিসাবে পেতে পারেন । আর-তে, আপনি এখানে লিখতে পারেন কারণ উপ-স্থানটি প্রথম কলামটির দ্বারা বিস্তৃত । অর্থোগোনাল পরিপূরকটিতে প্রক্ষেপণের জন্য ম্যাট্রিক্সটি আইপি হয়। এক্সP=X(XX)1XXXctr[ , 1] %*% solve(t(Xctr[ , 1]) %*% Xctr[ , 1]) %*% t(Xctr[ , 1])Xctr
কারাকাল

4
কেউ কি কেবল দুটি নমুনার চেয়েও বেশি কিছুতে কীভাবে অনুরূপ কিছু সম্পাদন করবেন তা স্পষ্ট করে বলতে পারেন? বলুন, আমি যদি ho টি নমুনা চাইতাম যেগুলি rho দ্বারা যুগলভাবে সংযুক্ত থাকে তবে আমি কীভাবে এই সমাধানটি অর্জন করতে এই সমাধানটিকে রূপান্তর করতে পারি?
আন্দ্রে তেরা

সীমাবদ্ধতার ক্ষেত্রে rho=1এই জাতীয় কিছু if (isTRUE(all.equal(rho, 1))) rho <- 1-10*.Machine$double.epsকরা আমার কাছে দরকারী বলে মনে হয়েছে: অন্যথায় আমি NaNএস পাচ্ছিলাম
প্যাট্রিকটি

19

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

একটি ভেক্টর বাছাই করুন হিসাবে একই দৈর্ঘ্যের, , আপনার মত কোন বন্টন অনুযায়ী। যাক এর লিস্ট স্কোয়ার রিগ্রেশন এর অবশিষ্টাংশ হতে বিরুদ্ধে : এই চায়ের থেকে উপাদান । একটি উপযুক্ত একাধিক ফিরে যোগ করে থেকে , আমরা একটি ভেক্টর কোন পছন্দসই পারস্পরিক সম্পর্ক থাকার তৈরি করতে পারে সঙ্গে । একটি স্বেচ্ছাচারী অ্যাডেটিভ ধ্রুবক এবং ধনাত্মক গুণক ধ্রুবক পর্যন্ত - যা আপনি যে কোনও উপায়ে চয়ন করতে পারেন - সমাধানটি হ'লওয়াই ওয়াই এক্স ওয়াই ওয়াই এক্স ওয়াই ওয়াই ρ ওয়াইXYYXYYXYYρY

XY;ρ=ρSD(Y)Y+1ρ2SD(Y)Y.

(" " মানে কোনও স্ট্যান্ডার্ড বিচ্যুতির সমানুপাতিক কোনও গণনা forSD


এখানে Rকোড কাজ করছে । আপনি সরবরাহ না করলে কোডটি এর মানগুলি মাল্টিভারিয়েট স্ট্যান্ডার্ড সাধারণ বিতরণ থেকে আঁকবে।X

complement <- function(y, rho, x) {
  if (missing(x)) x <- rnorm(length(y)) # Optional: supply a default if `x` is not given
  y.perp <- residuals(lm(x ~ y))
  rho * sd(y.perp) * y + y.perp * sd(y) * sqrt(1 - rho^2)
}

উদাহরণস্বরূপ, আমি উপাদান সহ একটি এলোমেলো তৈরি করেছি এবং এই সাথে বিভিন্ন নির্দিষ্ট পারস্পরিক সম্পর্কযুক্ত produced উত্পাদন করেছি । এগুলি সমস্ত একই ভেক্টর । এখানে তাদের স্ক্র্যাপপ্লটগুলি রয়েছে। প্রতিটি প্যানেলের নীচে "রাগপ্লটগুলি" সাধারণ ভেক্টর দেখায় ।50 X Y ; ρ ওয়াই এক্স = ( 1 , 2 , , 50 ) ওয়াইY50XY;ρYX=(1,2,,50)Y

ব্যক্তিত্ব

প্লটগুলির মধ্যে একটি উল্লেখযোগ্য মিল রয়েছে, নেই :-))


আপনি যদি পরীক্ষা করতে চান, এখানে কোড রয়েছে যা এই ডেটা এবং চিত্রটি তৈরি করেছে। (আমি ফলাফলগুলি পরিবর্তন করতে এবং স্কেল করার স্বাধীনতা ব্যবহার করতে বিরক্ত করি নি, যা সহজ কাজ operations

y <- rnorm(50, sd=10)
x <- 1:50 # Optional
rho <- seq(0, 1, length.out=6) * rep(c(-1,1), 3)
X <- data.frame(z=as.vector(sapply(rho, function(rho) complement(y, rho, x))),
                rho=ordered(rep(signif(rho, 2), each=length(y))),
                y=rep(y, length(rho)))

library(ggplot2)
ggplot(X, aes(y,z, group=rho)) + 
  geom_smooth(method="lm", color="Black") + 
  geom_rug(sides="b") + 
  geom_point(aes(fill=rho), alpha=1/2, shape=21) +
  facet_wrap(~ rho, scales="free")

BTW, এই পদ্ধতি নির্দ্ধিধায় একাধিক করার সাধারণীকরণ : যদি এটা গাণিতিকভাবে সম্ভব, এটি একটি পাবেন একটি সম্পূর্ণ সঙ্গে নিদিষ্ট সম্পর্কযুক্তরূপে থাকার সেট । থেকে সমস্ত এর প্রভাবগুলি খুঁজে পেতে কেবলমাত্র সর্বনিম্ন স্কোয়ারগুলি ব্যবহার করুন এবং এবং অবশিষ্টাংশের উপযুক্ত লিনিয়ার সংমিশ্রণ তৈরি করুন । (এটা জন্য একটি দ্বৈত ভিত্তিতে পরিপ্রেক্ষিতে এই কাজ করতে সাহায্য করে , যা একটি সিউডো-বিপরীত কম্পিউটিং দ্বারা প্রাপ্ত হয়। Follownig কোডের SVD ব্যবহার যে সম্পন্ন করার জন্য।)X Y 1 , Y 2 , , Y k ; ρ 1 , ρ 2 , , ρ k Y I Y I X Y i Y YYXY1,Y2,,Yk;ρ1,ρ2,,ρkYiYiXYiYY

এখানে আলগোরিদিমটির স্কেচ এখানে রয়েছে R, যেখানে ম্যাট্রিক্সের কলাম হিসাবে দেওয়া হয়েছে :Yiy

y <- scale(y)             # Makes computations simpler
e <- residuals(lm(x ~ y)) # Take out the columns of matrix `y`
y.dual <- with(svd(y), (n-1)*u %*% diag(ifelse(d > 0, 1/d, 0)) %*% t(v))
sigma2 <- c((1 - rho %*% cov(y.dual) %*% rho) / var(e))
return(y.dual %*% rho + sqrt(sigma2)*e)

নিম্নলিখিত যারা পরীক্ষা করতে চান তাদের জন্য আরও একটি সম্পূর্ণ বাস্তবায়ন is

complement <- function(y, rho, x) {
  #
  # Process the arguments.
  #
  if(!is.matrix(y)) y <- matrix(y, ncol=1)
  if (missing(x)) x <- rnorm(n)
  d <- ncol(y)
  n <- nrow(y)
  y <- scale(y) # Makes computations simpler
  #
  # Remove the effects of `y` on `x`.
  #
  e <- residuals(lm(x ~ y))
  #
  # Calculate the coefficient `sigma` of `e` so that the correlation of
  # `y` with the linear combination y.dual %*% rho + sigma*e is the desired
  # vector.
  #
  y.dual <- with(svd(y), (n-1)*u %*% diag(ifelse(d > 0, 1/d, 0)) %*% t(v))
  sigma2 <- c((1 - rho %*% cov(y.dual) %*% rho) / var(e))
  #
  # Return this linear combination.
  #
  if (sigma2 >= 0) {
    sigma <- sqrt(sigma2) 
    z <- y.dual %*% rho + sigma*e
  } else {
    warning("Correlations are impossible.")
    z <- rep(0, n)
  }
  return(z)
}
#
# Set up the problem.
#
d <- 3           # Number of given variables
n <- 50          # Dimension of all vectors
x <- 1:n         # Optionally: specify `x` or draw from any distribution
y <- matrix(rnorm(d*n), ncol=d) # Create `d` original variables in any way
rho <- c(0.5, -0.5, 0)          # Specify the correlations
#
# Verify the results.
#
z <- complement(y, rho, x)
cbind('Actual correlations' = cor(cbind(z, y))[1,-1],
      'Target correlations' = rho)
#
# Display them.
#
colnames(y) <- paste0("y.", 1:d)
colnames(z) <- "z"
pairs(cbind(z, y))

এটি প্রকৃতপক্ষে একটি দুর্দান্ত সমাধান। যাইহোক, আমি নিজেকে একাধিক ভেরিয়েবলগুলিতে প্রসারিত করতে ব্যর্থ হয়েছি (স্থির ভেরিয়েবলগুলি, আপনার উত্তরে) ক্ষেত্রে। , আপনি দাবি। আপনি এটা প্রদর্শন করতে পারেন? অনুগ্রহ করে, কোনও আর ব্যবহারকারী নয়, এমন এনটোটেটেড কোড সহ পাঠযোগ্য? YBTW, this method readily generalizes to more... Just use ordinary least squares... and form a suitable linear combination
ttnphns

1
@ttnphns আমি এটি করেছি।
হোবল

1
আপনাকে অনেক ধন্যবাদ! আমি দেখতে পাচ্ছি, এবং নিজের জন্য এসপিএসে আজ আপনার পদ্ধতির কোড করেছি। সত্যিই আপনার দুর্দান্ত প্রস্তাব। টাস্কটি সমাধানের জন্য দ্বৈত ভিত্তিক ধারণাকে প্রযোজ্য বলে আমি কখনই ভাবিনি।
ttnphns

অভিন্ন বিতরণ করা ভেক্টর নিয়ে আসতে কি একই ধরণের পদ্ধতির ব্যবহার করা সম্ভব? এটি হ'ল, আমার একটি বিদ্যমান ভেক্টর রয়েছে xএবং একটি নতুন ভেক্টর এর সাথে yসম্পর্কযুক্ত জেনারেট xকরতে চাই তবে yভেক্টরটি সমানভাবে বিতরণ করাও চাই ।
স্কুমিন

@ স্কুমিন এর জন্য একটি কপুলার ব্যবহার বিবেচনা করুন যাতে আপনি দুটি ভেক্টরের মধ্যে সম্পর্ক নিয়ন্ত্রণ করতে পারেন।
হোবার

6

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

কারাকেলের সমাধানের বিপরীতে এটি এর সঠিক সম্পর্কের সাথে একটি নমুনা তৈরি করে না , তবে দুটি ভেক্টর যাদের জনসংখ্যার পারস্পরিক সম্পর্ক সমান ।ρρρ

নিম্নলিখিত ফাংশনটি প্রদত্ত দিয়ে জনসংখ্যার থেকে টানা দ্বিবিভক্ত নমুনা বিতরণ গণনা করতে পারে । এটি হয় দুটি এলোমেলো ভেরিয়েবল গণনা করে, বা এটি একটি বিদ্যমান ভেরিয়েবল গ্রহণ করে (প্যারামিটার হিসাবে পাস ) এবং পছন্দসই পারস্পরিক সম্পর্ক সহ একটি দ্বিতীয় ভেরিয়েবল তৈরি করে:ρx

# returns a data frame of two variables which correlate with a population correlation of rho
# If desired, one of both variables can be fixed to an existing variable by specifying x
getBiCop <- function(n, rho, mar.fun=rnorm, x = NULL, ...) {
     if (!is.null(x)) {X1 <- x} else {X1 <- mar.fun(n, ...)}
     if (!is.null(x) & length(x) != n) warning("Variable x does not have the same length as n!")

     C <- matrix(rho, nrow = 2, ncol = 2)
     diag(C) <- 1

     C <- chol(C)

     X2 <- mar.fun(n)
     X <- cbind(X1,X2)

     # induce correlation (does not change X1)
     df <- X %*% C

     ## if desired: check results
     #all.equal(X1,X[,1])
     #cor(X)

     return(df)
}

ফাংশনটি প্যারামিটার সামঞ্জস্য করে অ-স্বাভাবিক প্রান্তিক বিতরণগুলিও ব্যবহার করতে পারে mar.fun। নোট, তবে, একটি ভেরিয়েবল ঠিক করা কেবলমাত্র একটি সাধারণ বিতরণযোগ্য ভেরিয়েবলের সাথে কাজ করে বলে মনে হয় x! (যা ম্যাক্রোর মন্তব্যের সাথে সম্পর্কিত হতে পারে)।

এছাড়াও নোট করুন যে মূল পোস্ট থেকে "ছোট সংশোধন ফ্যাক্টর" অপসারণ করা হয়েছিল কারণ এটি অন্ততঃ গাউসীয় বিতরণ এবং পিয়ারসন সহবাসের ক্ষেত্রে (মন্তব্যগুলিও দেখুন) ফলস্বরূপ পারস্পরিক সম্পর্কের পক্ষপাতিত্ব বলে মনে হয়।


দেখে মনে হচ্ছে এটি কেবল একটি আনুমানিক সমাধান, অর্থাত্, অনুশীলনমূলক সম্পর্কটি ঠিক সমান নয় । নাকি আমি কিছু মিস করছি? ρ
কারাকাল

1
এটি দেখানো সহজ, "rho এর ছোট সংশোধন" ব্যতীত (যার প্রসঙ্গে এই উদ্দেশ্যটি আমাকে অন্তর্ভুক্ত করে), এটি ঠিক একই মত যা ttnphns আগে পরামর্শ দিয়েছিল। পদ্ধতিটি কেবল পছন্দসই রূপান্তর ম্যাট্রিক্স পাওয়ার জন্য পারস্পরিক সম্পর্ক ম্যাট্রিক্সের Choleski পঁচনের উপর ভিত্তি করে। উদাহরণস্বরূপ দেখুন: en.wikedia.org/wiki/… । এবং হ্যাঁ, এটি আপনাকে কেবলমাত্র দুটি ভেক্টরই দেবে যার জনসংখ্যার পারস্পরিক সম্পর্ক সমান rho
ওল্ফগ্যাং

"Rho এর ছোট সংশোধন" মূল পোস্টে ছিল এবং এখানে বর্ণিত হয়েছে । আসলে, আমি সত্যিই এটি বুঝতে পারি না; তবে আরএইচও = .3 এর সাথে 50000 সিমুলেটেড পারস্পরিক সম্পর্কের অনুসন্ধানে দেখা যায় যে "ছোট সংশোধন" ছাড়াই গড়ের .299 এর গড় উত্পাদন হয়, এবং সংশোধনের সাথে গড় .312 (যা সংশোধিত আরএইচটির মান) হয় উত্পাদিত। সুতরাং আমি এই অংশটি ফাংশন থেকে সরিয়েছি।
ফেলিক্স এস

আমি জানি এটি পুরানো, তবে আমি এটিও নোট করতে চাই যে এই পদ্ধতিটি অ-পজিটিভ সুনির্দিষ্ট সম্পর্কের ম্যাট্রিক্সের জন্য কাজ করবে না। যেমন - -1 এর একটি সম্পর্ক।
zzk

1
ধন্যবাদ; আমি লক্ষ্য করেছি যে যদি X1 মান নয় গড় = 0, SD = 1, এবং আপনি বরং এটি rescale, আপনি লাইন সংশোধন করতে হবে না চাই: X2 <- mar.fun(n)থেকে X2 <- mar.fun(n,mean(x),sd(x))X1 এবং x2 মধ্যে পছন্দসই পারস্পরিক সম্পর্ক পেতে
ডেভ এম

6

যাক আপনার নির্দিষ্ট পরিবর্তনশীল হতে হবে এবং আপনি জেনারেট করতে চান পরিবর্তনশীল যে আশ্বাস যোগায় পরিমাণ দ্বারা । তাহলে তারপর মান নির্ধারিত হয়েছে (কারণ সহজ রিগ্রেশনে বিটা সহগ হয়) , যেখানে গড় থাকার সাধারন বন্টনের থেকে র্যান্ডম পরিবর্তনশীল এবং । এবং ডেটার মধ্যে পর্যবেক্ষণের সম্পর্ক প্রায় ; এবং বিভায়ারিয়েট স্বাভাবিক জনসংখ্যার (যদি হয় তবে) থেকে এলোমেলো নমুনা হিসাবে দেখা যেতে পারেXYXrXrY=rX+EE0sd=1r2XYrXYX স্বাভাবিক থেকে) ।ρ=r

এখন, আপনি যদি আপনার bivariate নমুনা পারস্পরিক সম্পর্ক সাধা করতে চান ঠিক , আপনি যে প্রদান করতে হয়েছে শূন্য সঙ্গে সংগতি । এটি শূন্যের দিকে শক্ত করে তোলার মাধ্যমে পুনরাবৃত্তিভাবে সংশোধন করে পৌঁছানো যাবে । ঠিক আছে, মাত্র দুটি ভেরিয়েবল, একটি দেওয়া ( ) এবং একটি জেনারেট করার জন্য ( ), পর্যাপ্ত পরিমাণে পুনরাবৃত্তিটি আসলে 1, তবে একাধিক প্রদত্ত ভেরিয়েবলগুলির সাথে ( ) পুনরাবৃত্তিগুলির প্রয়োজন হবে।rEXEXYX1,X2,X3,...

এটি লক্ষ করা উচিত যে যদি স্বাভাবিক হয় তবে প্রথম পদ্ধতিতে ("আনুমানিক ") স্বাভাবিক হবে; তবে পৌন ফিটিং মধ্যে "সঠিক করার জন্য " স্বাভাবিক হারান কারণ ফিটিং ক্ষেত্রে মান বেছে বেছে শোষণ সম্ভাবনা থাকে।XrYYrY


11 নভেম্বর, 2017 আপডেট করুন I've আমি আজ এই পুরানো থ্রেডটি পেরিয়ে এসেছি এবং আমি প্রথমে যে পুনরাবৃত্ত ফিটিংয়ের বিষয়ে বলছিলাম তার পুনরাবৃত্ত ফিটিংয়ের অ্যালগরিদম দেখিয়ে আমার উত্তর প্রসারিত করার সিদ্ধান্ত নিয়েছি।

এখানে একটি পুনরাবৃত্ত সমাধান হল কিভাবে একটি এলোমেলোভাবে কৃত্রিম বা পূর্বজন্মের জীবন যাপন পরিবর্তনশীল প্রশিক্ষণ সম্পর্কিত বা covariate করতে অবিকল যেমন আমরা ইচ্ছা - (পুনরাবৃত্তিও সংখ্যা নির্ভর করে বা খুব ঘনিষ্ঠ তাই) দেওয়া ভেরিয়েবল এর একটি সেট গুলি (এই সংশোধন করা যাবে না)।Y X

Disclamer এই পুনরাবৃত্ত সমাধান আমি খোঁজার উপর ভিত্তি করে চমৎকার এক নিকৃষ্ট পেয়েছি দ্বৈত ভিত্তিতে এবং প্রস্তাবিত এই থ্রেড আজ @whuber দ্বারা। @ হুইলারের সমাধানটি পুনরাবৃত্ত নয় এবং আরও গুরুত্বপূর্ণভাবে আমার কাছে মনে হচ্ছে এটি "আমার" অ্যালগরিদমের চেয়ে কিছুটা কম "শুকর" ভেরিয়েবলের মানগুলিকে প্রভাবিত করছে (এটি যদি সম্পদ হয়ে থাকে তবে যদি কাজটি "সংশোধন করা হয়" বিদ্যমান ভেরিয়েবল এবং স্ক্র্যাচ থেকে এলোমেলো ভেরিয়েট জেনারেট না)। তবুও, আমি কৌতূহলের জন্য আমার প্রকাশ করছি এবং কারণ এটি কার্যকর (পাদটীকাটিও দেখুন)।

সুতরাং, আমরা (স্থির) ভেরিয়েবলগুলি এবং ভেরিয়েবল দিয়েছি যা হয় এলোমেলোভাবে মানগুলির "শূকর" উত্পন্ন হয় বা একটি বিদ্যমান ডাটা ভেরিয়েবল যা আমাদের মান "সংশোধন" করতে হবে - আনতে হবে ঠিক সম্পর্কযুক্তরূপে থেকে (অথবা এটা covariances হতে পারে) সঙ্গে গুলি। সমস্ত তথ্য অবশ্যই অবিচ্ছিন্ন হতে হবে; অন্য কথায়, অনন্য মূল্যবোধের একটি ভাল চুক্তি হওয়া উচিত।X1,X2,...,XmYYr1,r2,...,rmX

ধারণা: অবশিষ্টাংশগুলির পুনরাবৃত্তি ফিটিং সম্পাদন করুন। চেয়েছিলেন (লক্ষ্য) সম্পর্কযুক্তরূপে / covariances জানা, আমরা পূর্বাভাস মান গনা পারে ব্যবহার গুলি হিসাবে একাধিক রৈখিক ভবিষ্যতবক্তা। প্রাথমিক অবশিষ্টাংশগুলি (বর্তমান এবং আদর্শ পূর্বাভাসের থেকে) পাওয়ার পরে , ভবিষ্যদ্বাণীকারীদের সাথে সম্পর্ক স্থাপন না করার জন্য তাদের পুনরাবৃত্তভাবে প্রশিক্ষণ দিন। শেষ অবধি, অবশিষ্টাংশের সাথে পুনরায় প্রাপ্ত করুন । (পদ্ধতিটি ছিল বহু বছর আগে হুইলটির নিজস্ব পরীক্ষামূলক আবিষ্কার যখন আমি কোন তত্ত্বের কিছুই জানতাম না; তখন আমি এসপিএসএসে কোড করেছিলাম))YXYY

  1. রূপান্তর লক্ষ্য তাদের দ্বারা গুন দ্বারা অঙ্কের-crossproducts এর গুলি : । ( একটি ভেরিয়েবল ইনডেক্স))rdf=n1Sj=rjdfjX

  2. সমস্ত ভেরিয়েবলগুলি জেড-মানক করুন (প্রতিটি কেন্দ্র করুন, তারপরে উপরের উপর ভিত্তি করে স্ট্যান্ড ডিভিয়েশন দ্বারা বিভক্ত করুন )। এবং গুলি এইভাবে মানক। বর্গের পর্যবেক্ষিত অঙ্কের এখন = হয় ।dfYXdf

  3. গণনা পূর্বাভাসের regressional কোফিসিয়েন্টস দ্বারা লক্ষ্য অনুযায়ী গুলি : S ।YXrb=(XX)1S

  4. জন্য পূর্বাভাসকৃত মানগুলি গণনা করুন : ।YY^=Xb

  5. গণনা অবশিষ্টাংশ ।E=YY^

  6. গণনা প্রয়োজন (লক্ষ্য) বর্গের অবশিষ্টাংশ জন্য সমষ্টি:।SSS=dfSSY^

  7. (পুনরাবৃত্তি শুরু করুন current বর্তমান এবং প্রতিটি : এর মধ্যে between এর মধ্যে ক্রসপ্রডাক্টগুলির পরিলক্ষিত পরিসংখ্যান গণনা করুন CEXjCj=i=1nEiXij

  8. সমস্ত গুলি এর কাছাকাছি আনার লক্ষ্যে সঠিক মানগুলি ( কেস ইনডেক্স):EC0i

    Ei[corrected]=Eij=1mCjXijnj=1mXij2

    (ডিনোমিনেটর পুনরাবৃত্তিতে পরিবর্তন হয় না, এটি আগে থেকেই গণনা করুন)

    অথবা, বিকল্পভাবে, আরও কার্যকর সূত্র অতিরিক্তভাবে এর গড় পরিমাণ হয়ে যায় । প্রথমে, এর প্রতিটি পুনরাবৃত্তির পূর্ববর্তী গণনাতে step ধাপে কেন্দ্র করুন , তারপরে এই ধাপে 8 হিসাবে সঠিক:E0 EC

    Ei[corrected]=Eij=1mCjXij3i=1nXij2j=1mXij2

    (আবার, ডিনোমিয়েটররা আগে থেকেই পরিচিত)1

  9. আনুন তার লক্ষ্য মান:SSEEi[corrected]=EiSSS/SSE

    ধাপে যান (বলুন, ১০-২০ পুনরাবৃত্তি করুন; বৃহত্তর চেয়ে বেশি পুনরাবৃত্তির প্রয়োজন হতে পারে। লক্ষ্য গুলি বাস্তববাদী হলে, ইতিবাচক এবং যদি নমুনার আকার খুব কম না হয় তবে সবসময় পুনরাবৃত্তি হয় অভিমুখে সরাসরি। শেষ পুনরাবৃত্তি।)mrSSSn

  10. প্রস্তুত: সমস্ত গুলি এখন প্রায় শূন্য যার অর্থ বাকী লক্ষ্য গুলি পুনরুদ্ধার করার প্রশিক্ষণ দেওয়া হয়েছে । ফিটিং গণনা করুন : ।ওয়াই ওয়াই [ সংশোধিত ] = ওয়াই + + CErYY[corrected]=Y^+E

  11. প্রাপ্ত প্রায় মানকৃত। শেষ স্ট্রোক হিসাবে, আপনি এটিকে যথাযথভাবে মানক করতে চাইতে পারেন, আবার যেমন আপনি দ্বিতীয় ধাপে করেছেন।Y

  12. আপনি যে কোনও বৈকল্পিক সহ সরবরাহ করতে পারেন এবং আপনার পছন্দ মতো মানে । আসলে, চারটি পরিসংখ্যানের মধ্যে - ন্যূনতম , সর্বোচ্চ , গড় , স্ট্যান্ড। দেব । - আপনি যে কোনও দুটি মান নির্বাচন করতে পারেন এবং পরিবর্তনশীলকে রৈখিকভাবে রূপান্তর করতে পারেন যাতে আপনি যে এর (পারস্পরিক সম্পর্ক) অর্জন করেছেন তা পরিবর্তন না করেই এগুলি ভঙ্গ করে (এটি সবাইকে লিনিয়ার পুনরুদ্ধার বলা হয়)।আরYr

উপরে কি বলা হয়েছিল তা আবার সতর্ক করতে। ঠিক টানতে , আউটপুট সাধারণত বিতরণ করতে হবে না।r YYrY


ওয়াই এক্স1 সংশোধন সূত্র আরও বাস্তবধর্মী হতে পারে যেমন, বৃহত্তর বীমা homoscedasticity এর (অঙ্কের অফ স্কোয়ার পরিপ্রেক্ষিতে) প্রত্যেক সঙ্গে পাশাপাশি, একই সাথে সম্পর্কযুক্তরূপে অর্জনের সাথে - আমি যে জন্য একটি কোড প্রয়োগ করেছি খুব। (আমি জানি না যে এই জাতীয় "ডাবল" টাস্ক আরও ঝরঝরে - ননিট্রেটিভ - যেমন হোবারগুলির মতো পদ্ধতির মাধ্যমে সমাধানযোগ্য )YX


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

এটি বিভাজনযুক্ত স্বাভাবিক জেনারেট তৈরি করার জন্য কাজ করে কিন্তু একটি স্বেচ্ছাসেবী বিতরণের জন্য কাজ করে না (বা কোনও 'অযৌক্তিক' বিতরণ)
ম্যাক্রো

1
আপনি সরাসরি সমাধানের সম্পূর্ণ শঙ্কু উত্পাদন করতে পারলে আপনি পুনরাবৃত্তির প্রস্তাব দিচ্ছেন কেন তা আমি দেখতে পাচ্ছি না। এই পদ্ধতির কোনও বিশেষ উদ্দেশ্য আছে কি?
হোয়বার

1
আপনার সর্বশেষ সম্পাদনাটি পুনরায় করুন: যেহেতু আমি সমস্ত সমাধানের জন্য একটি সাধারণ সূত্র সরবরাহ করি, তাই যে কোনও সমস্যার সমাধানের উপর ভিত্তি করে কোনও উপযুক্ত উদ্দেশ্য ফাংশনকে হ্রাস করে "বৃহত্তর সমকামিতা" এর মতো যে কোনও পছন্দসই উদ্দেশ্য অর্জন করা যায়। পদ্ধতির সম্পূর্ণ সাধারণ। পরিবর্তনশীল (অথবা ভেরিয়েবল) ব্যাপ্ত দ্বারা একটি লম্ব ভিত্তিতে প্রয়োজন এবং পারস্পরিক সম্পর্কের স্কেল-invariance শোষণ, সমস্যা একটি ফাংশন একটি ইউক্লিডিয় স্থান একটি গোলক সংজ্ঞাসমূহ নিখুঁত এক হয়ে যায়। Y
হোবার

1
@ শুভেচ্ছা, আপনার মন্তব্যটি আমি অপেক্ষা করছিলাম; আসলে আমার উত্তর (হেটেরোসেসটেস্টিটি সম্পর্কে, যা আমি সংযুক্ত করি) আপনার জন্য একটি চ্যালেঞ্জ হিসাবে লক্ষ্য করা হয়েছিল: সম্ভবত এটি আপনার সমাধান পোস্ট করার জন্য একটি আমন্ত্রণ - আপনি যেমন করেন তেমন পুরোপুরি এবং উজ্জ্বল।
ttnphns

4

আমি কিছু প্রোগ্রামিংয়ের মতো অনুভব করেছি, তাই আমি @ অ্যাডামের মুছে ফেলা উত্তর নিয়েছি এবং আর এ একটি দুর্দান্ত বাস্তবায়ন লেখার সিদ্ধান্ত নিয়েছি I আমি কার্যকরী ওরিয়েন্টেড স্টাইল (যেমন ল্যাপ্লি স্টাইলের লুপিং) ব্যবহারের দিকে মনোনিবেশ করি। সাধারণ ধারণাটি হ'ল দুটি ভেক্টর গ্রহণ করা, এগুলির মধ্যে একটি নির্দিষ্ট সম্পর্ক স্থাপন না হওয়া পর্যন্ত এলোমেলোভাবে একজন ভেক্টরকে অনুমতি দিন। এই পদ্ধতির খুব নিষ্ঠুর-শক্তি, কিন্তু বাস্তবায়নের জন্য সহজ।

প্রথমে আমরা একটি ফাংশন তৈরি করি যা এলোমেলোভাবে ইনপুট ভেক্টরকে অনুমতি দেয়:

randomly_permute = function(vec) vec[sample.int(length(vec))]
randomly_permute(1:100)
  [1]  71  34   8  98   3  86  28  37   5  47  88  35  43 100  68  58  67  82
 [19]  13   9  61  10  94  29  81  63  14  48  76   6  78  91  74  69  18  12
 [37]   1  97  49  66  44  40  65  59  31  54  90  36  41  93  24  11  77  85
 [55]  32  79  84  15  89  45  53  22  17  16  92  55  83  42  96  72  21  95
 [73]  33  20  87  60  38   7   4  52  27   2  80  99  26  70  50  75  57  19
 [91]  73  62  23  25  64  51  30  46  56  39

... এবং কিছু উদাহরণ ডেটা তৈরি করুন

vec1 = runif(100)
vec2 = runif(100)

... একটি ফাংশন লিখুন যা ইনপুট ভেক্টরকে অনুমতি দেয় এবং এটি একটি রেফারেন্স ভেক্টরের সাথে সংযুক্ত করে:

permute_and_correlate = function(vec, reference_vec) {
    perm_vec = randomly_permute(vec)
    cor_value = cor(perm_vec, reference_vec)
    return(list(vec = perm_vec, cor = cor_value))
  }
permute_and_correlate(vec2, vec1)
$vec
  [1] 0.79072381 0.23440845 0.35554970 0.95114398 0.77785348 0.74418811
  [7] 0.47871491 0.55981826 0.08801319 0.35698405 0.52140366 0.73996913
 [13] 0.67369873 0.85240338 0.57461506 0.14830718 0.40796732 0.67532970
 [19] 0.71901990 0.52031017 0.41357545 0.91780357 0.82437619 0.89799621
 [25] 0.07077250 0.12056045 0.46456652 0.21050067 0.30868672 0.55623242
 [31] 0.84776853 0.57217746 0.08626022 0.71740151 0.87959539 0.82931652
 [37] 0.93903143 0.74439384 0.25931398 0.99006038 0.08939812 0.69356590
 [43] 0.29254936 0.02674156 0.77182339 0.30047034 0.91790830 0.45862163
 [49] 0.27077191 0.74445997 0.34622648 0.58727094 0.92285322 0.83244284
 [55] 0.61397396 0.40616274 0.32203732 0.84003379 0.81109473 0.50573325
 [61] 0.86719899 0.45393971 0.19701975 0.63877904 0.11796154 0.26986325
 [67] 0.01581969 0.52571331 0.27087693 0.33821824 0.52590383 0.11261002
 [73] 0.89840404 0.82685046 0.83349287 0.46724807 0.15345334 0.60854785
 [79] 0.78854984 0.95770015 0.89193212 0.18885955 0.34303707 0.87332019
 [85] 0.08890968 0.22376395 0.02641979 0.43377516 0.58667068 0.22736077
 [91] 0.75948043 0.49734797 0.25235660 0.40125309 0.72147500 0.92423638
 [97] 0.27980561 0.71627101 0.07729027 0.05244047

$cor
[1] 0.1037542

... এবং হাজারবার পুনরাবৃত্তি করুন:

n_iterations = lapply(1:1000, function(x) permute_and_correlate(vec2, vec1))

মনে রাখবেন যে, যে আর এর scoping নিয়ম নিশ্চিত vec1এবং vec2উপরে ব্যবহৃত বেনামী ফাংশন বাহিরে, গ্লোবাল পরিবেশ পাওয়া যায়। সুতরাং, অনুমতিগুলি আমাদের উত্পন্ন টেস্ট ডেটাসেটগুলির সাথে সম্পর্কিত।

এর পরে, আমরা সর্বাধিক পারস্পরিক সম্পর্ক খুঁজে পাই:

cor_values = sapply(n_iterations, '[[', 'cor')
n_iterations[[which.max(cor_values)]]
$vec
  [1] 0.89799621 0.67532970 0.46456652 0.75948043 0.30868672 0.83244284
  [7] 0.86719899 0.55623242 0.63877904 0.73996913 0.71901990 0.85240338
 [13] 0.81109473 0.52571331 0.82931652 0.60854785 0.19701975 0.26986325
 [19] 0.58667068 0.52140366 0.40796732 0.22736077 0.74445997 0.40125309
 [25] 0.89193212 0.52031017 0.92285322 0.91790830 0.91780357 0.49734797
 [31] 0.07729027 0.11796154 0.69356590 0.95770015 0.74418811 0.43377516
 [37] 0.55981826 0.93903143 0.30047034 0.84776853 0.32203732 0.25235660
 [43] 0.79072381 0.58727094 0.99006038 0.01581969 0.41357545 0.52590383
 [49] 0.27980561 0.50573325 0.92423638 0.11261002 0.89840404 0.15345334
 [55] 0.61397396 0.27077191 0.12056045 0.45862163 0.18885955 0.77785348
 [61] 0.23440845 0.05244047 0.25931398 0.57217746 0.35554970 0.34622648
 [67] 0.21050067 0.08890968 0.84003379 0.95114398 0.83349287 0.82437619
 [73] 0.46724807 0.02641979 0.71740151 0.74439384 0.14830718 0.82685046
 [79] 0.33821824 0.71627101 0.77182339 0.72147500 0.08801319 0.08626022
 [85] 0.87332019 0.34303707 0.45393971 0.47871491 0.29254936 0.08939812
 [91] 0.35698405 0.67369873 0.27087693 0.78854984 0.87959539 0.22376395
 [97] 0.02674156 0.07077250 0.57461506 0.40616274

$cor
[1] 0.3166681

... অথবা ০.২ এর পারস্পরিক সম্পর্কের নিকটতম মানটি সন্ধান করুন:

n_iterations[[which.min(abs(cor_values - 0.2))]]
$vec
  [1] 0.02641979 0.49734797 0.32203732 0.95770015 0.82931652 0.52571331
  [7] 0.25931398 0.30047034 0.55981826 0.08801319 0.29254936 0.23440845
 [13] 0.12056045 0.89799621 0.57461506 0.99006038 0.27077191 0.08626022
 [19] 0.14830718 0.45393971 0.22376395 0.89840404 0.08890968 0.15345334
 [25] 0.87332019 0.92285322 0.50573325 0.40796732 0.91780357 0.57217746
 [31] 0.52590383 0.84003379 0.52031017 0.67532970 0.83244284 0.95114398
 [37] 0.81109473 0.35554970 0.92423638 0.83349287 0.34622648 0.18885955
 [43] 0.61397396 0.89193212 0.74445997 0.46724807 0.72147500 0.33821824
 [49] 0.71740151 0.75948043 0.52140366 0.69356590 0.41357545 0.21050067
 [55] 0.87959539 0.11796154 0.73996913 0.30868672 0.47871491 0.63877904
 [61] 0.22736077 0.40125309 0.02674156 0.26986325 0.43377516 0.07077250
 [67] 0.79072381 0.08939812 0.86719899 0.55623242 0.60854785 0.71627101
 [73] 0.40616274 0.35698405 0.67369873 0.82437619 0.27980561 0.77182339
 [79] 0.19701975 0.82685046 0.74418811 0.58667068 0.93903143 0.74439384
 [85] 0.46456652 0.85240338 0.34303707 0.45862163 0.91790830 0.84776853
 [91] 0.78854984 0.05244047 0.58727094 0.77785348 0.01581969 0.27087693
 [97] 0.07729027 0.71901990 0.25235660 0.11261002

$cor
[1] 0.2000199

উচ্চতর পারস্পরিক সম্পর্ক পেতে আপনার পুনরাবৃত্তির সংখ্যা বৃদ্ধি করতে হবে।


2

Y1Y2,,YnR

সমাধান:

  1. CCT=R
  2. X2,,XnY1
  3. Y1
  4. Y=CXYiY1

পাইথন কোড:

import numpy as np
import math
from scipy.linalg import toeplitz, cholesky
from statsmodels.stats.moment_helpers import cov2corr

# create the large correlation matrix R
p = 4
h = 2/p
v = np.linspace(1,-1+h,p)
R = cov2corr(toeplitz(v))

# create the first variable
T = 1000;
y = np.random.randn(T)

# generate p-1 correlated randoms
X = np.random.randn(T,p)
X[:,0] = y
C = cholesky(R)
Y = np.matmul(X,C)

# check that Y didn't change
print(np.max(np.abs(Y[:,0]-y)))

# check the correlation matrix
print(R)
print(np.corrcoef(np.transpose(Y)))

পরীক্ষার আউটপুট:

0.0
[[ 1.   0.5  0.  -0.5]
 [ 0.5  1.   0.5  0. ]
 [ 0.   0.5  1.   0.5]
 [-0.5  0.   0.5  1. ]]
[[ 1.          0.50261766  0.02553882 -0.46259665]
 [ 0.50261766  1.          0.51162821  0.05748082]
 [ 0.02553882  0.51162821  1.          0.51403266]
 [-0.46259665  0.05748082  0.51403266  1.        ]]

Y1

@whuber ওটা টাইপো ছিলো
Aksakal

0

প্রদত্ত হিসাবে সাম্পলিং কোভারিয়েন্স ম্যাট্রিক্সের সাথে সাধারণ ভেরিয়েবলগুলি তৈরি করুন

covsam <- function(nobs,covm, seed=1237) {; 
          library (expm);
          # nons=number of observations, covm = given covariance matrix ; 
          nvar <- ncol(covm); 
          tot <- nvar*nobs;
          dat <- matrix(rnorm(tot), ncol=nvar); 
          covmat <- cov(dat); 
          a2 <- sqrtm(solve(covmat)); 
          m2 <- sqrtm(covm);
          dat2 <- dat %*% a2 %*% m2 ; 
          rc <- cov(dat2);};
          cm <- matrix(c(1,0.5,0.1,0.5,1,0.5,0.1,0.5,1),ncol=3);
          cm; 
          res <- covsam(10,cm)  ;
          res;

প্রদত্ত হিসাবে পপুলিয়েশন কোভারিয়েন্স ম্যাট্রিক্সের সাথে সাধারণ ভেরিয়েবলগুলি তৈরি করুন

covpop <- function(nobs,covm, seed=1237) {; 
          library (expm); 
          # nons=number of observations, covm = given covariance matrix;
          nvar <- ncol(covm); 
          tot <- nvar*nobs;  
          dat <- matrix(rnorm(tot), ncol=nvar); 
          m2 <- sqrtm(covm);
          dat2 <- dat %*% m2;  
          rc <- cov(dat2); }; 
          cm <- matrix(c(1,0.5,0.1,0.5,1,0.5,0.1,0.5,1),ncol=3);
          cm; 
          res <- covpop(10,cm); 
          res

2
উত্তরে কোড ফর্ম্যাট করতে আপনার শিখতে হবে! কোডটিকে টুকরা হিসাবে চিহ্নিত করার জন্য একটি নির্দিষ্ট বিকল্প রয়েছে, এটি ব্যবহার করুন!
কেজেটিল বি হালওয়ারসেন

-6

কেবল একটি এলোমেলো ভেক্টর তৈরি করুন এবং আপনার পছন্দসই आर না পাওয়া পর্যন্ত বাছাই করুন।


উপরোক্ত সমাধানগুলির চেয়ে কোন পরিস্থিতিতে এটি পছন্দনীয় হবে?
অ্যান্ডি ডাব্লু

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

3
r

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