데이터로부터 분포 추정


12

R의해 생성 된 데이터 샘플이 rnorm(50,0,1)있으므로 데이터가 분명히 정규 분포를 취합니다. 그러나 R데이터에 대한이 배포 정보를 "알지"않습니다.

R샘플이 어떤 종류의 분포에서 나오는지 추정 할 수 있는 방법 이 있습니까? 그렇지 않다면이 shapiro.test기능 을 사용 하고 계속 진행할 것입니다.


이 질문의 결과를 잘 모르겠습니다. R에 숫자 벡터가있는 경우 관련 메타 데이터가 많지 않지만 왜 귀찮게합니까? 왜 당신이 그것을 원할까요? 당신은 그것으로 무엇을하고 싶습니까? 그것이 있다고 가정하면, 가우스 데이터 대 다른 방법에 대한 특정 방법을 사용하여 해당 벡터를 함수에 전달하는 범위에서만 도움이 될 것입니다. 나는 (세계에서 가장 전문적인 R 사용자는 아니지만) 아무것도 모른다.
gung-모니 티 복원

주어진 샘플은 정상적인 것 같다 여부를 테스트하려면 (그것의 가치가 당신의 동안 읽고 있지만, 샤피로-Wilk 테스트는 괜찮은 옵션은 이 질문에 거기에 주어진 답변을). 이것이 시뮬레이션 연구에서 어떻게 나타날 수 있는지 알 수 있지만 연구에 대한 자세한 내용이 없으면 유용한 답변을 제공하기가 어렵습니다.
gung-복직 모니카

왜 데이터의 분포를 식별해야합니까? 자동 배포 선택은 종종 매력적인 아이디어이지만 좋은 아이디어는 아닙니다.
Glen_b-복지 주 모니카

답변:


21

있다 fitdistr의 기능 MASS 패키지 또는에서 일부 기능 fitdistrplus 패키지 . 다음은 후자의 예입니다.

require(fitdistrplus)

set.seed(1)
dat <- rnorm(50,0,1)
f1 <- fitdist(dat,"norm")
f2 <- fitdist(dat,"logis")
f3 <- fitdist(dat,"cauchy")

예를 들어

> f1
Fitting of the distribution ' norm ' by maximum likelihood 
Parameters:
      estimate Std. Error
mean 0.1004483 0.11639515
sd   0.8230380 0.08230325

그리고 당신은 줄거리를 볼 수 있습니다

plotdist(dat,"norm",para=list(mean=f1$estimate[1],sd=f1$estimate[2]))
plotdist(dat,"logis",para=list(location=f2$estimate[1],scale=f2$estimate[2]))
plotdist(dat,"cauchy",para=list(location=f3$estimate[1],scale=f3$estimate[2]))

정규 분포처럼 그럴듯 해 보입니다

여기에 이미지 설명을 입력하십시오

그러나 물류 분포 일 수도 있습니다 (꼬리에서 구별하기 위해 더 큰 표본이 ​​필요할 것입니다)

여기에 이미지 설명을 입력하십시오

qqplot을 사용하고 CDF를 보면 이것이 Cauchy 배포가 아님을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오


1
멋진 개요에 감사합니다. 데이터를 가져오고 어떤 분포 (및 매개 변수)가 가장 잘 뱉어내는 패키지가 있는지 묻습니다. 패키지에서 이러한 기능을 알고 있습니까?
Roman Luštrik

3
fitdist모수의 추정치를 제공합니다. 분포가 다음과 같은 함수에서 비롯 될 수있는 몇 가지 힌트가 descdist(dat, boot = 1000)있지만 더 큰 표본의 이점도 있습니다.
Henry

이 함수들 중 어느 것도 표본이 대표적이지 않은 마지막 질문 에서 제기 한 문제를 해결 하지 못합니다.
John

1
@Scott Kaiser : 그렇게 생각하지 않습니다. fitdist()fitdistrplus 패키지의 함수이며 이것이 내가 사용하고있는 것입니다. 한편 fitdistr()MASS 패키지의 기능이며이 형식에서는 작동하지 않습니다.
Henry

1
내가 주석으로이 추가 포인트가 부족하지 않지만, 바로 위의 스레드에서 제공하는 정보에 대한 추가 참고로, 단순히 전화를 할 수도 있습니다 plot(f1)대신 더 뒤얽힌plotdist(dat,"norm",para=list(mean=f1$estimate[1],sd=f1$estimate[2]))
swestenb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.