2017-05-17 6 views
0

일부 신뢰 구간 계산을 테스트 중이지만 수동 계산에서 Matlab 함수 normfit/fitdist/paramci을 사용하여 차이점을 발견했습니다. 아래 코드를 살펴보고 더 많은 요소가 포함 된 data을 테스트하십시오. 데이터 크기가 커질수록 차이가 더 작아집니다. 누군가가 단서/해결책/설명을 가지고 있습니까?normlit/fitdist/paramci를 사용하는 Matlab Confidence Interval은 요소 수에 따라 수동 계산과 다릅니다. 왜?

감사

%% Cleaning service 
    clear all; close all; 

    %% Data and processing 
    conf = norminv([0.025 0.975],0,1); % for 95% 

    data = normrnd(0.158,0.0265,10,1); % Change the third argument to 100, 1000, 1000, ... 
    [mu,sigma,muci,sigmaci] = normfit(data,.05);    % for 95% 
    pd = fitdist(data,'Normal'); ci = paramci(pd,'Alpha',.05); % for 95% 

    xplus = mu + conf(2)*sigma*(1/sqrt(length(data))); 
    xminus = mu - conf(2)*sigma*(1/sqrt(length(data))); 

    Difference = [ci(1,1)-xminus ci(2,1)-xplus] 

답변

0

실제로 t 분포에서 중요한 값을 사용합니다 평균을위한 "전형적인"신뢰 구간이 아닌 일반 -이 약간 넓은 간격을 의미한다, 넓게 작은 샘플 크기. 샘플 크기가 증가함에 따라 t 임계 값은 정상 임계 값으로 수렴됩니다. 나는 요즘 matlab 프로그래머가 아니지만, paramci과 같은 통조림 함수가 보통 대신에 t- 분포를 사용한다면 궁금 할 것이다.

이 작품은 Matlab이 아니라 R입니다.하지만 제가 알아볼 수있는 숫자를 만들어 낼 수 있기를 바랍니다. = 5, 말의이 사이즈의 샘플 N = 10 생각한 SD = 2 ... 보통의 임계 값을 이용

n <- 10 
mn <- 5 
sd <- 2 

95 % CI 좋아해서 "손"로 구성 될 것이다 :

mn + qnorm(c(0.025, 0.975))*sd/sqrt(n) 
# 3.76041 6.23959 

등등 같은 t 임계 값을 사용하여 95 % CI :

mn + qt(c(0.025, 0.975), n-1)*sd/sqrt(n) 
# 3.569286 6.430714 
# ...note slightly wider 

에서 N = 500은 두 개의 구별된다.

n <- 500 
mn + qnorm(c(0.025, 0.975))*sd/sqrt(n) 
# 4.824695 5.175305 
mn + qt(c(0.025, 0.975), n-1)*sd/sqrt(n) 
# 4.824269 5.175731 

이 모든 수동 계산은 Matlab이 비슷한 시나리오에서 수행하는 작업과 일치합니다. 그렇지 않다면 ... 항상 내 대답을 철회 할 수 있습니다.)