gpt4 book ai didi

r - 卡方分布 R

转载 作者:行者123 更新时间:2023-12-01 10:42:42 24 4
gpt4 key购买 nike

尝试在 R 中使用 fitdistr() 拟合卡方分布。有关此的文档位于此处(对我来说不是很有用):https://stat.ethz.ch/R-manual/R-devel/library/MASS/html/fitdistr.html

问题 1:下面的 chi_df 具有以下输出:3.85546875 (0.07695236)。第二个数字是多少?方差还是标准差?

问题 2:fitdistr 生成由卡方分布定义的“k”。我如何拟合数据才能得到比例常数“A”?我愚蠢地使用下面的第 14-17 行。显然不好。

问题 3:卡方分布是否仅针对特定的 x 范围定义? (方差定义为 2K,而均值 = k。这必须需要一些受限的 x 范围...统计问题而不是编程...)

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");

感谢您的帮助!

最佳答案

  1. 如上所述,?fitdistr

An object of class ‘"fitdistr"’, a list with four components, ... sd: the estimated standard errors,

...所以括号内的数字是参数的标准误差。

  1. 不需要估计尺度参数;您需要按直方图 bin 的宽度进行缩放在绘制直方图时仅使用freq=FALSE。请参阅下面的代码。

  2. 卡方分布是在非负实数上定义的,这是有道理的,因为它是平方标准正态分布(这是统计问题,不是编程问题)。

    <

设置数据:

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]

(就其值(value)而言,当使用 method="Brent" 时,fitdistr 的打印方法中似乎存在错误。您也可以使用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")

关于r - 卡方分布 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28841773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com