2015-03-03 9 views
3

Пытаясь соответствовать chi_square распределение с использованием fitdistr() в R. Документация на это здесь (и не очень полезно для меня): https://stat.ethz.ch/R-manual/R-devel/library/MASS/html/fitdistr.htmlраспределение хи-квадрат R

Вопрос 1: chi_df ниже имеет следующий вывод: 3.85546875 (0.07695236). Что такое второй номер? Отклонение или стандартное отклонение?

Вопрос 2: fitdistr генерирует 'k', определяемый распределением Chi-SQ. Как я могу поместить данные, чтобы получить константу масштабирования «A»? Я тупо использую строки 14-17 ниже. Очевидно, это не хорошо.

Вопрос 3: Определяется ли распределение Chi-SQ только для определенного диапазона х? (Дисперсия определяется как 2K, в то время как средний = к. Это должно потребовать некоторых ограниченного х-диапазон ... Статистика вопрос не программирование ...)

nnn = 1000; 
## Generating a chi-sq distribution 
chii <- rchisq(nnn,4, ncp = 0); 
## Plotting Histogram 
chi_hist <- hist(chii); 
## Fitting. Gives probability density which must be scaled. 
chi_df <- fitdistr(chii,"chi-squared",start=list(df=3)); 
chi_k <- chi_df[[1]][1]; 

## Plotting a fitted line: 
## Spanning x-length of chi-sq data 
x_chi_fit <- 1:nnn*((max(chi_hist[[1]][])-min(chi_hist[[1]][]))/nnn); 

## Y data using eqn for probability function 
y_chi_fit <- (1/(2^(chi_k/2)*gamma(chi_k/2)) * x_chi_fit^(chi_k/2-1) * exp(-x_chi_fit/2)); 
## Normalizing to the peak of the histogram 
y_chi_fit <- y_chi_fit*(max(chi_hist[[2]][]/max(y_chi_fit))); 

## Plotting the line 
lines(x_chi_fit,y_chi_fit,lwd=2,col="green"); 

Спасибо за вашу помощь!

+2

1) Я собрать второе значение стандартное отклонение по оценке, в соответствии с 'Str (chi_df)' и 'значение:' раздел файла справки. – thelatemail

+1

«Документация об этом ужасно» - можете ли вы это прояснить? Я считаю документацию неплохой. Например, это более или косвенно отвечает на ваш первый вопрос. –

+0

@rawr Нет необходимости в этих точках с запятой. Фактически, ** не используйте точки с запятой в R ** –

ответ

5
  1. Как отметил выше, ?fitdistr говорит

Объект класса 'fitdistr "', список с четырьмя компонентами, ... Sd: сметных стандартных ошибок,

... так что число в скобках является стандартной ошибкой параметра.

  1. Параметр шкалы не нуждается в оценке; вам нужно либо масштабироваться по ширине ваших гистограмм , либо просто используйте freq=FALSE при рисовании вашей гистограммы. См. Код ниже.

  2. Распределение по хи-квадрату определяется по неотрицательным действиям, что имеет смысл, так как это распределение стандартного стандарта Normal (это статистический, а не вопрос программирования).

Настройка данных:

nnn <- 1000 
## ensure reproducibility; not a big deal in this case, 
## but good practice 
set.seed(101) 
## Generating a chi-sq distribution 
chii <- rchisq(nnn,4, ncp = 0) 

Место.

library(MASS) 
## use method="Brent" based on warning 
chi_df <- fitdistr(chii,"chi-squared",start=list(df=3), 
        method="Brent",lower=0.1,upper=100) 
chi_k <- chi_df[[1]][1] 

(Для чего это стоит, похоже, там может быть ошибка в методе печати для fitdistr когда method="Brent" используется. Кроме того, можно использовать method="BFGS" и не нужно было бы указать границы ...)

Гистограммы

chi_hist <- hist(chii,breaks=50,col="gray") 
## scale by N and width of histogram bins 
curve(dchisq(x,df=chi_k)*nnn*diff(chi_hist$breaks)[1], 
     add=TRUE,col="green") 
## or plot histogram already scaled to a density 
chi_hist <- hist(chii,breaks=50,col="gray",freq=FALSE) 
curve(dchisq(x,df=chi_k),add=TRUE,col="green") 
+0

Уточняющий вопрос 1: стандартная ошибка, как в StDev/sqrt (counts)? freq = FALSE - это то, что я искал. Большое вам спасибо, вы все здесь серьезно! – Entropy

+0

Кроме того, как мне получить правильную посадку, если я масштабирую 'rchisq' вдоль оси X ?: 'chii <- 100 * rchisq (nnn, 4, ncp = 0)' – Entropy

+0

вычислена стандартная ошибка параметров оценивая кривизну поверхности логарифмического правдоподобия при максимальной оценке логарифмического правдоподобия - не то же самое, что вычисление стандартной ошибки среднего путем масштабирования стандартного отклонения выборки по sqrt (counts) [вы спросили ...] Если ваш значения масштабируются, это более сложная проблема, которая потребует немного настраиваемого кодирования. Возможно, другой вопрос. –

Смежные вопросы