লগ-স্বাভাবিক ডেটা সেট গড়ের জন্য আমি কীভাবে একটি আত্মবিশ্বাসের ব্যবধান গণনা করব?


19

আমি বেশ কয়েকটি জায়গায় শুনেছি / দেখেছি যে আপনি প্রতিটি নমুনার লগারিদম গ্রহণ করে ডেটা সেট করা তথ্যকে এমন কিছুতে রূপান্তর করতে পারেন যা রূপান্তরিত ডেটার জন্য আত্মবিশ্বাসের ব্যবধান গণনা করতে পারে এবং বিপরীত ক্রিয়াকলাপটি ব্যবহার করে আত্মবিশ্বাসের ব্যবধানটিকে আবার রূপান্তর করতে পারে (উদাহরণস্বরূপ, জন্য যথাক্রমে নিম্ন এবং উপরের সীমার ক্ষমতায় 10 বৃদ্ধি করুন )।log10

তবে, আমি এই পদ্ধতিটি সম্পর্কে কিছুটা সন্দেহজনক, কেবল কারণ এটি নিজের না:10mean(log10(X))mean(X)

এটি করার সঠিক উপায় কী? যদি এটি নিজেই গড়ের জন্য কাজ করে না, তবে এটি কীভাবে সম্ভব পক্ষে আত্মবিশ্বাসের ব্যবধানের জন্য কাজ করতে পারে?


3
আপনি বেশ ঠিক বলেছেন। এই পদ্ধতিটি সাধারণত কাজ করে না এবং প্রায়শই আত্মবিশ্বাসের অন্তর দেয় যা জনসংখ্যার গড় বা এমনকি নমুনার অর্থও অন্তর্ভুক্ত করে না। এখানে এটি সম্পর্কে কিছু আলোচনা করা হয়েছে: amstat.org/publications/jse/v13n1/olsson.html এটি কোনও উত্তর নয়, যেহেতু আমি লিঙ্কটি সম্পর্কে বিস্তারিতভাবে মন্তব্য করার পক্ষে পর্যাপ্ত বিষয়টি দেখিনি।
এরিক

3
এই সমস্যাটির একটি ক্লাসিক সমাধান রয়েছে: projecteuclid.org/… । কোড সহ আরও কিছু সমাধান এপিএওভিওভ / আওসওয়ার / ক্রিসাকেসেসমেন্ট / পিডিএফ /ucl.pdf- এ সরবরাহ করা হয়েছে - তবে এটি ভারী লবণের সাথে পড়ুন, কারণ সেখানে বর্ণিত কমপক্ষে একটি পদ্ধতি ("চেবিশেভ বৈষম্য পদ্ধতি") ঠিক স্পষ্ট ভুল।
শুক্র

উত্তর:


11

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

বুটস্ট্র্যাপ

এমএলই এর জন্য

এই ক্ষেত্রে, এর MLE (μ,σ) নমুনার জন্য (x1,...,xn) হয়

μ^=1nj=1nlog(xj);σ^2=1nj=1n(log(xj)μ^)2

তারপর, গড় MLE হয় δ = Exp ( μ + + σ 2 / 2 ) । রীস্যাম্পেলিং আমরা একটি পেতে পারেন বুটস্ট্র্যাপ নমুনা এর δδ^=exp(μ^+σ^2/2)δ^ এবং এই ব্যবহার করে, আমরা নিরূপণ করতে পারেন বিভিন্ন বুটস্ট্র্যাপ আস্থা অন্তর। নিম্নলিখিত Rকোডগুলি কীভাবে এগুলি প্রাপ্ত তা দেখায়।

rm(list=ls())
library(boot)

set.seed(1)

# Simulated data
data0 = exp(rnorm(100))

# Statistic (MLE)

mle = function(dat){
m = mean(log(dat))
s = mean((log(dat)-m)^2)
return(exp(m+s/2))
}

# Bootstrap
boots.out = boot(data=data0, statistic=function(d, ind){mle(d[ind])}, R = 10000)
plot(density(boots.out$t))

# 4 types of Bootstrap confidence intervals
boot.ci(boots.out, conf = 0.95, type = "all")

নমুনা গড় জন্য

এখন, বিবেচনা করা মূল্নির্ধারক δ~=x¯ MLE পরিবর্তে। অন্যান্য ধরণের অনুমানকারীও বিবেচনা করা যেতে পারে।

rm(list=ls())
library(boot)

set.seed(1)

# Simulated data
data0 = exp(rnorm(100))

# Statistic (MLE)

samp.mean = function(dat) return(mean(dat))

# Bootstrap
boots.out = boot(data=data0, statistic=function(d, ind){samp.mean(d[ind])}, R = 10000)
plot(density(boots.out$t))

# 4 types of Bootstrap confidence intervals
boot.ci(boots.out, conf = 0.95, type = "all")

প্রোফাইল সম্ভাবনা

সম্ভাবনা এবং প্রোফাইল সম্ভাবনা কার্যকারিতা সংজ্ঞা জন্য, দেখুন । সম্ভাবনা আমরা যত reparameterise করতে পারেন invariance সম্পত্তি ব্যবহার নিম্নরূপ (μ,σ)(δ,σ) , যেখানে δ=exp(μ+σ2/2) এবং তারপর সংখ্যাসূচকভাবে প্রোফাইলে সম্ভাবনা নিরূপণ δ

Rp(δ)=supσL(δ,σ)supδ,σL(δ,σ).

(0,1]0.147 95%δ । নিম্নলিখিত Rকোডগুলি কীভাবে এই অন্তর পেতে হবে তা দেখায়।

set.seed(1)

# Simulated data
data0 = exp(rnorm(100))

# Log likelihood
ll = function(mu,sigma) return( sum(log(dlnorm(data0,mu,sigma))))

# Profile likelihood
Rp = function(delta){
temp = function(sigma) return( sum(log(dlnorm(data0,log(delta)-0.5*sigma^2,sigma)) ))
max=exp(optimize(temp,c(0.25,1.5),maximum=TRUE)$objective     -ll(mean(log(data0)),sqrt(mean((log(data0)-mean(log(data0)))^2))))
return(max)
}

vec = seq(1.2,2.5,0.001)
rvec = lapply(vec,Rp)
plot(vec,rvec,type="l")

# Profile confidence intervals
tr = function(delta) return(Rp(delta)-0.147)
c(uniroot(tr,c(1.2,1.6))$root,uniroot(tr,c(2,2.3))$root)

এই বিভাগে, একটি বিকল্প অ্যালগরিদম, মেট্রোপলিস-হেস্টিংস নমুনা এবং জেফরির পূর্বে ব্যবহারের উপর নির্ভরযোগ্যতার জন্য একটি বিশ্বাসযোগ্যতা ব্যবধান গণনা করার জন্য δ

(μ,σ) একটি lognormal মডেল রয়েছে

π(μ,σ)σ2,

n2 । নিম্নলিখিত Rবায়েসিয়ান মডেলটি ব্যবহার করে কীভাবে 95% বিশ্বাসযোগ্যতা ব্যবধান পাওয়া যায় তা নিম্নলিখিত কোডটি দেখায়।

library(mcmc)

set.seed(1)

# Simulated data
data0 = exp(rnorm(100))

# Log posterior
lp = function(par){
if(par[2]>0) return( sum(log(dlnorm(data0,par[1],par[2]))) - 2*log(par[2]))
else return(-Inf)
}

# Metropolis-Hastings
NMH = 260000
out = metrop(lp, scale = 0.175, initial = c(0.1,0.8), nbatch = NMH)

#Acceptance rate
out$acc

deltap = exp(  out$batch[,1][seq(10000,NMH,25)] + 0.5*(out$batch[,2][seq(10000,NMH,25)])^2  )

plot(density(deltap))

# 95% credibility interval
c(quantile(deltap,0.025),quantile(deltap,0.975))

নোট করুন যে তারা খুব অনুরূপ।


1
(+1) আমি মনে করি আপনি ডিস্ট্রডমড আর প্যাকেজটির সাথে সর্বাধিক সম্ভাবনার তত্ত্বের ভিত্তিতে আত্মবিশ্বাসের অন্তরও পেতে পারেন
স্টাফেন লরেন্ট

@ স্টাফেন লরেন্ট তথ্যটির জন্য ধন্যবাদ। আমি আপনার কোডটির ফলাফলটি নতুন পূর্বের সাথে দেখতে চাই। আপনি যে কমান্ডগুলি এবং প্যাকেজটি ব্যবহার করছেন সে সম্পর্কে আমি অবগত ছিলাম না।

4
n

দুর্দান্ত সাড়া! এখানে প্রস্তাবিত পদ্ধতিগুলি সমকামী মডেল ত্রুটিগুলি ধরে নিয়েছে - আমি এমন প্রকল্পগুলিতে কাজ করেছি যেখানে এই অনুমানটি কার্যকর ছিল না। আমি বিকল্প হিসাবে গামা রিগ্রেশন ব্যবহারের পরামর্শও দেব, যা পক্ষপাত সংশোধনের প্রয়োজনকে বাইপাস করবে।
ইসাবেলা ঘেমেন্ট

4

আপনি সম্ভবত জেফ্রি'র সাথে বায়েশিয়ান পদ্ধতির চেষ্টা করতে পারেন। এটি একটি সঠিক ঘন ঘন মিলে যাওয়া সম্পত্তি সহ বিশ্বাসযোগ্যতার ব্যবধানগুলি অর্জন করতে পারে: বিশ্বাসযোগ্যতা ব্যবধানের আস্থার স্তরটি তার বিশ্বাসযোগ্যতা স্তরের কাছাকাছি।

 # required package
 library(bayesm)

 # simulated data
 mu <- 0
 sdv <- 1
 y <- exp(rnorm(1000, mean=mu, sd=sdv))

 # model matrix
 X <- model.matrix(log(y)~1)
 # prior parameters
 Theta0 <- c(0)
 A0 <- 0.0001*diag(1)
 nu0 <- 0 # Jeffreys prior for the normal model; set nu0 to 1 for the lognormal model
 sigam0sq <- 0
 # number of simulations
 n.sims <- 5000

 # run posterior simulations
 Data <- list(y=log(y),X=X)
 Prior <- list(betabar=Theta0, A=A0, nu=nu0, ssq=sigam0sq)
 Mcmc <- list(R=n.sims)
 bayesian.reg <- runireg(Data, Prior, Mcmc)
 mu.sims <- t(bayesian.reg$betadraw) # transpose of bayesian.reg$betadraw
 sigmasq.sims <- bayesian.reg$sigmasqdraw

 # posterior simulations of the mean of y: exp(mu+sigma²/2)
 lmean.sims <- exp(mu.sims+sigmasq.sims/2)

 # credibility interval about lmean:
 quantile(lmean.sims, probs = c(0.025, 0.975))

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

μσ2μσ2μσ2f(μ,σ2)μσ2। কিছু রেফারেন্স আছে কিনা তা আমি জানি না তবে অন্যথায় আপনি সিমুলেশন দিয়ে পরীক্ষা করতে পারেন।
স্টাফেন লরেন্ট

আলোচনার জন্য অনেক ধন্যবাদ। স্পষ্টতার জন্য এবং কোনও বিভ্রান্তি এড়াতে আমি আমার সমস্ত মন্তব্য মুছে ফেলেছি। (+1)

1
@ প্রলিনেটর ধন্যবাদ। আমি আমার মন্তব্যগুলি মুছে ফেলেছি এবং আমার কোডের আগে জেফ্রি সম্পর্কে পয়েন্টটি যুক্ত করেছি।
স্টাফেন লরেন্ট

কেউ দয়া করে আমাকে বুঝিয়ে দিতে পারেন কীভাবে বুটস.আউট = বুট (ডেটা = ডেটা0, স্ট্যাটিস্টিক = ফাংশন (ডি, ইন্ডি) {ম্লে (ডি [ইন্ডি])}, আর = 10000) কাজ করে। আমি দেখতে পাচ্ছি যে "ইন্ড" একটি সূচক, তবে "ইন্ড" কীভাবে সন্ধান করতে হয় তা আমি বুঝতে পারি না। কোথায় এই দ্বিতীয় যুক্তি রেফারেন্সিং? আমি এটি বিকল্প ফাংশন দিয়ে চেষ্টা করেছি এবং এটি কার্যকর হয়নি। আসল ফাংশন বুটটির দিকে তাকিয়ে আমি ইন্ডের কোনও রেফারেন্স দেখতে পাচ্ছি না।
andor kesselman

0

তবে, আমি এই পদ্ধতিটি সম্পর্কে কিছুটা সন্দেহজনক, কেবল কারণ এটি নিজের পক্ষে গড়ায় না: 10 মেন (লগ 10 (এক্স)) ≠ গড় (এক্স)

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

এবং আপনি প্রকৃতপক্ষে জ্যামিতিক গড় সম্পর্কে সিআইএসগুলি গণনা করবেন ডেটাগুলির লগারিদমগুলি গ্রহণ করে, গড় হিসাবে এবং সিআইগুলি যথারীতি গণনা করে এবং পিছনে রূপান্তর করে। আপনি ঠিক বলেছেন যে জ্যামিতিক গড়ের জন্য সিআইগুলি গাণিতিক গড়ের চারপাশে রেখে আপনার বিতরণগুলি মিশ্রিত করতে চান না .... ইয়াওচ!

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