Tính giá trị p trong bình phương nhỏ nhất (không âm) bị ràng buộc


10

Tôi đã và đang sử dụng Matlab để thực hiện các bình phương tối thiểu không giới hạn (bình phương nhỏ nhất) và nó tự động xuất ra các hệ số, thống kê kiểm tra và giá trị p.

Câu hỏi của tôi là, khi thực hiện các bình phương tối thiểu bị ràng buộc (các hệ số không âm hoàn toàn), nó chỉ xuất ra các hệ số, KHÔNG CÓ thống kê kiểm tra, giá trị p.

Có thể tính toán các giá trị này để đảm bảo ý nghĩa? Và tại sao nó không có sẵn trực tiếp trên phần mềm (hoặc bất kỳ phần mềm nào khác cho vấn đề đó?)


2
Bạn có thể làm rõ ý của bạn bằng cách "* tính toán để ... đảm bảo ý nghĩa" không? Bạn không thể chắc chắn rằng bạn sẽ nhận được ý nghĩa trong bình phương tối thiểu bình thường chẳng hạn; bạn có thể kiểm tra mức độ quan trọng, nhưng bạn không có cách nào để đảm bảo rằng bạn sẽ nhận được nó. Bạn có nghĩa là "có cách nào để thực hiện một bài kiểm tra quan trọng với các ô vuông nhỏ nhất bị ràng buộc không?"
Glen_b -Reinstate Monica

@Glen_b đưa ra tiêu đề câu hỏi, tôi nghĩ "đảm bảo" tương đương với xác định.
Heteroskedastic Jim

1
@HeteroskedasticJim Có khả năng; nó chắc chắn sẽ có ý nghĩa nếu xác định được ý định.
Glen_b -Reinstate Monica

Vâng, tôi có nghĩa là làm thế nào để tính toán các giá trị để kiểm tra xem giả thuyết null có bị từ chối hay không.
cgo

1
Mục tiêu của bạn với việc thể hiện các giá trị p là gì? Ý nghĩa / tầm quan trọng / chức năng họ sẽ có cho bạn là gì? Lý do tại sao tôi hỏi, là nếu bạn chỉ quan tâm đến tính hợp lệ của mô hình của mình, thì bạn có thể kiểm tra điều này bằng cách phân vùng dữ liệu của bạn và sử dụng một phần dữ liệu để kiểm tra mô hình thu được và lấy số đo hiệu suất của hiệu suất của mô hình.
Sextus Empiricus

Câu trả lời:


7

Việc giải một bình phương tối thiểu không âm (NNLS) dựa trên thuật toán làm cho nó khác với bình phương tối thiểu thông thường.

Biểu thức đại số cho lỗi tiêu chuẩn (không hoạt động)

Với bình phương tối thiểu thông thường, bạn có thể biểu thị giá trị p bằng cách sử dụng phép thử t kết hợp với ước tính cho phương sai của các hệ số.

Biểu thức này cho phương sai mẫu của ước lượng các hệ số θV một r ( θ ) = σ 2 ( X T X ) - 1 Phương sai của sai số σ thường sẽ không rõ nhưng nó có thể được ước tính bằng cách sử dụng dư . Biểu thức này có thể được suy ra theo đại số bắt đầu từ biểu thức cho các hệ số theo các phép đo yθ^

Var(θ^)=σ2(XTX)1
σy

θ^=(XTX)1XTy

θ

Nghịch đảo ma trận thông tin Fisher (không áp dụng)

Phương sai / phân phối ước tính của các hệ số cũng bất thường tiếp cận với ma trận thông tin Fisher quan sát được :

(θ^θ)dN(0,I(θ^))

Nhưng tôi không chắc liệu điều này có áp dụng tốt ở đây không. Ước tính NNLS không phải là ước tính không thiên vị.

Phương pháp Monte Carlo

Bất cứ khi nào các biểu thức trở nên quá phức tạp, bạn có thể sử dụng một phương pháp tính toán để ước tính lỗi. Với Phương pháp Monte Carlo, bạn mô phỏng phân phối tính ngẫu nhiên của thử nghiệm bằng cách mô phỏng sự lặp lại của thử nghiệm (tính toán lại / mô hình hóa dữ liệu mới) và dựa vào đó, bạn ước tính phương sai của các hệ số.

Những gì bạn có thể làm là lấy các ước tính quan sát được của các hệ số mô hình và phương sai dư và dựa trên dữ liệu tính toán mới này (một vài nghìn lần lặp lại, nhưng nó phụ thuộc vào mức độ chính xác mà bạn muốn) bạn có thể quan sát phân phối (và biến thể và xuất phát từ đây ước tính cho lỗi) cho các hệ số. (và có nhiều kế hoạch phức tạp hơn để thực hiện mô hình này) θ^σσ^


3
Thông tin Fisher không được áp dụng nếu có bất kỳ ràng buộc nào trong giải pháp. Hơn nữa, các phân phối tiệm cận của các ước tính thường khác với những gì bạn mong đợi, thường trở thành hỗn hợp của phân phối. Phương sai của các ước tính có thể là một giá trị sai lệch khi phân phối lấy mẫu của các ước tính có sự hỗ trợ khá lớn trên bề mặt ràng buộc (làm cho nó trở thành phân phối suy biến). Do đó, thật khôn ngoan khi (a) theo dõi tần suất áp dụng các ràng buộc và (b) xem phân phối lấy mẫu đầy đủ của các ước tính. χ2
whuber

@Wuber Bình luận chào mừng!
Tom Wenseleers

4

Nếu bạn sẽ OK sử dụng RI nghĩ rằng bạn cũng có thể sử dụng bbmle's mle2chức năng để tối ưu hóa các chức năng hình vuông khả năng nhất và tính toán khoảng tin cậy 95% trên nnls hệ số không âm. Hơn nữa, bạn có thể tính đến việc các hệ số của bạn không thể âm bằng cách tối ưu hóa nhật ký của các hệ số của bạn, để trên thang đo được điều chỉnh lại, chúng không bao giờ có thể trở thành âm.

Dưới đây là một ví dụ bằng số minh họa cho phương pháp này, ở đây trong bối cảnh giải mã một sự chồng chất của các đỉnh sắc ký hình gaussian với nhiễu Gaussian trên chúng: (mọi ý kiến ​​đều hoan nghênh)

Trước tiên hãy mô phỏng một số dữ liệu:

require(Matrix)
n = 200
x = 1:n
npeaks = 20
set.seed(123)
u = sample(x, npeaks, replace=FALSE) # peak locations which later need to be estimated
peakhrange = c(10,1E3) # peak height range
h = 10^runif(npeaks, min=log10(min(peakhrange)), max=log10(max(peakhrange))) # simulated peak heights, to be estimated
a = rep(0, n) # locations of spikes of simulated spike train, need to be estimated
a[u] = h
gauspeak = function(x, u, w, h=1) h*exp(((x-u)^2)/(-2*(w^2))) # shape of single peak, assumed to be known
bM = do.call(cbind, lapply(1:n, function (u) gauspeak(x, u=u, w=5, h=1) )) # banded matrix with theoretical peak shape function used
y_nonoise = as.vector(bM %*% a) # noiseless simulated signal = linear convolution of spike train with peak shape function
y = y_nonoise + rnorm(n, mean=0, sd=100) # simulated signal with gaussian noise on it
y = pmax(y,0)
par(mfrow=c(1,1))
plot(y, type="l", ylab="Signal", xlab="x", main="Simulated spike train (red) to be estimated given known blur kernel & with Gaussian noise")
lines(a, type="h", col="red")

nhập mô tả hình ảnh ở đây

Bây giờ chúng ta hãy giải mã tín hiệu nhiễu đo được ybằng một ma trận có dải chứa bản sao được dịch chuyển của hạt nhân mờ hình gaussian đã biết bM(đây là ma trận đồng biến / thiết kế của chúng ta).

Đầu tiên, hãy giải mã tín hiệu với bình phương tối thiểu không âm:

library(nnls)
library(microbenchmark)
microbenchmark(a_nnls <- nnls(A=bM,b=y)$x) # 5.5 ms
plot(x, y, type="l", main="Ground truth (red), nnls estimate (blue)", ylab="Signal (black) & peaks (red & blue)", xlab="Time", ylim=c(-max(y),max(y)))
lines(x,-y)
lines(a, type="h", col="red", lwd=2)
lines(-a_nnls, type="h", col="blue", lwd=2)
yhat = as.vector(bM %*% a_nnls) # predicted values
residuals = (y-yhat)
nonzero = (a_nnls!=0) # nonzero coefficients
n = nrow(bM)
p = sum(nonzero)+1 # nr of estimated parameters = nr of nonzero coefficients+estimated variance
variance = sum(residuals^2)/(n-p) # estimated variance = 8114.505

nhập mô tả hình ảnh ở đây

Bây giờ, hãy tối ưu hóa khả năng ghi nhật ký âm của mục tiêu mất gaussian của chúng tôi và tối ưu hóa nhật ký của các hệ số của bạn để trên thang đo được định dạng lại, chúng không bao giờ có thể âm:

library(bbmle)
XM=as.matrix(bM)[,nonzero,drop=FALSE] # design matrix, keeping only covariates with nonnegative nnls coefs
colnames(XM)=paste0("v",as.character(1:n))[nonzero]
yv=as.vector(y) # response
# negative log likelihood function for gaussian loss
NEGLL_gaus_logbetas <- function(logbetas, X=XM, y=yv, sd=sqrt(variance)) {
  -sum(stats::dnorm(x = y, mean = X %*% exp(logbetas), sd = sd, log = TRUE))
}  
parnames(NEGLL_gaus_logbetas) <- colnames(XM)
system.time(fit <- mle2(
  minuslogl = NEGLL_gaus_logbetas, 
  start = setNames(log(a_nnls[nonzero]+1E-10), colnames(XM)), # we initialise with nnls estimates
  vecpar = TRUE,
  optimizer = "nlminb"
)) # takes 0.86s
AIC(fit) # 2394.857
summary(fit) # now gives log(coefficients) (note that p values are 2 sided)
# Coefficients:
#       Estimate Std. Error z value     Pr(z)    
# v10    4.57339    2.28665  2.0000 0.0454962 *  
# v11    5.30521    1.10127  4.8173 1.455e-06 ***
# v27    3.36162    1.37185  2.4504 0.0142689 *  
# v38    3.08328   23.98324  0.1286 0.8977059    
# v39    3.88101   12.01675  0.3230 0.7467206    
# v48    5.63771    3.33932  1.6883 0.0913571 .  
# v49    4.07475   16.21209  0.2513 0.8015511    
# v58    3.77749   19.78448  0.1909 0.8485789    
# v59    6.28745    1.53541  4.0950 4.222e-05 ***
# v70    1.23613  222.34992  0.0056 0.9955643    
# v71    2.67320   54.28789  0.0492 0.9607271    
# v80    5.54908    1.12656  4.9257 8.407e-07 ***
# v86    5.96813    9.31872  0.6404 0.5218830    
# v87    4.27829   84.86010  0.0504 0.9597911    
# v88    4.83853   21.42043  0.2259 0.8212918    
# v107   6.11318    0.64794  9.4348 < 2.2e-16 ***
# v108   4.13673    4.85345  0.8523 0.3940316    
# v117   3.27223    1.86578  1.7538 0.0794627 .  
# v129   4.48811    2.82435  1.5891 0.1120434    
# v130   4.79551    2.04481  2.3452 0.0190165 *  
# v145   3.97314    0.60547  6.5620 5.308e-11 ***
# v157   5.49003    0.13670 40.1608 < 2.2e-16 ***
# v172   5.88622    1.65908  3.5479 0.0003884 ***
# v173   6.49017    1.08156  6.0008 1.964e-09 ***
# v181   6.79913    1.81802  3.7399 0.0001841 ***
# v182   5.43450    7.66955  0.7086 0.4785848    
# v188   1.51878  233.81977  0.0065 0.9948174    
# v189   5.06634    5.20058  0.9742 0.3299632    
# ---
#   Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# -2 log L: 2338.857 
exp(confint(fit, method="quad"))  # backtransformed confidence intervals calculated via quadratic approximation (=Wald confidence intervals)
#              2.5 %        97.5 %
# v10   1.095964e+00  8.562480e+03
# v11   2.326040e+01  1.743531e+03
# v27   1.959787e+00  4.242829e+02
# v38   8.403942e-20  5.670507e+21
# v39   2.863032e-09  8.206810e+11
# v48   4.036402e-01  1.953696e+05
# v49   9.330044e-13  3.710221e+15
# v58   6.309090e-16  3.027742e+18
# v59   2.652533e+01  1.090313e+04
# v70  1.871739e-189 6.330566e+189
# v71   8.933534e-46  2.349031e+47
# v80   2.824905e+01  2.338118e+03
# v86   4.568985e-06  3.342200e+10
# v87   4.216892e-71  1.233336e+74
# v88   7.383119e-17  2.159994e+20
# v107  1.268806e+02  1.608602e+03
# v108  4.626990e-03  8.468795e+05
# v117  6.806996e-01  1.021572e+03
# v129  3.508065e-01  2.255556e+04
# v130  2.198449e+00  6.655952e+03
# v145  1.622306e+01  1.741383e+02
# v157  1.853224e+02  3.167003e+02
# v172  1.393601e+01  9.301732e+03
# v173  7.907170e+01  5.486191e+03
# v181  2.542890e+01  3.164652e+04
# v182  6.789470e-05  7.735850e+08
# v188 4.284006e-199 4.867958e+199
# v189  5.936664e-03  4.236704e+06
library(broom)
signlevels = tidy(fit)$p.value/2 # 1-sided p values for peak to be sign higher than 1
adjsignlevels = p.adjust(signlevels, method="fdr") # FDR corrected p values
a_nnlsbbmle = exp(coef(fit)) # exp to backtransform
max(a_nnls[nonzero]-a_nnlsbbmle) # -9.981704e-11, coefficients as expected almost the same
plot(x, y, type="l", main="Ground truth (red), nnls bbmle logcoeff estimate (blue & green, green=FDR p value<0.05)", ylab="Signal (black) & peaks (red & blue)", xlab="Time", ylim=c(-max(y),max(y)))
lines(x,-y)
lines(a, type="h", col="red", lwd=2)
lines(x[nonzero], -a_nnlsbbmle, type="h", col="blue", lwd=2)
lines(x[nonzero][(adjsignlevels<0.05)&(a_nnlsbbmle>1)], -a_nnlsbbmle[(adjsignlevels<0.05)&(a_nnlsbbmle>1)], 
      type="h", col="green", lwd=2)
sum((signlevels<0.05)&(a_nnlsbbmle>1)) # 14 peaks significantly higher than 1 before FDR correction
sum((adjsignlevels<0.05)&(a_nnlsbbmle>1)) # 11 peaks significant after FDR correction

nhập mô tả hình ảnh ở đây

Tôi đã không cố gắng so sánh hiệu suất của phương pháp này với khả năng khởi động không tham số hoặc tham số, nhưng chắc chắn là nhanh hơn nhiều.

Tôi cũng có khuynh hướng nghĩ rằng tôi sẽ có thể tính toán khoảng tin cậy Wald cho các nnlshệ số không âm dựa trên ma trận thông tin Fisher được quan sát, tính toán theo thang đo hệ số biến đổi nhật ký để thực thi các ràng buộc không âm và nnlsước tính theo ước tính.

Tôi nghĩ điều này diễn ra như thế này và trên thực tế nên giống hệt với những gì tôi đã sử dụng mle2ở trên:

XM=as.matrix(bM)[,nonzero,drop=FALSE] # design matrix
posbetas = a_nnls[nonzero] # nonzero nnls coefficients
dispersion=sum(residuals^2)/(n-p) # estimated dispersion (variance in case of gaussian noise) (1 if noise were poisson or binomial)
information_matrix = t(XM) %*% XM # observed Fisher information matrix for nonzero coefs, ie negative of the 2nd derivative (Hessian) of the log likelihood at param estimates
scaled_information_matrix = (t(XM) %*% XM)*(1/dispersion) # information matrix scaled by 1/dispersion
# let's now calculate this scaled information matrix on a log transformed Y scale (cf. stat.psu.edu/~sesa/stat504/Lecture/lec2part2.pdf, slide 20 eqn 8 & Table 1) to take into account the nonnegativity constraints on the parameters
scaled_information_matrix_logscale = scaled_information_matrix/((1/posbetas)^2) # scaled information_matrix on transformed log scale=scaled information matrix/(PHI'(betas)^2) if PHI(beta)=log(beta)
vcov_logscale = solve(scaled_information_matrix_logscale) # scaled variance-covariance matrix of coefs on log scale ie of log(posbetas) # PS maybe figure out how to do this in better way using chol2inv & QR decomposition - in R unscaled covariance matrix is calculated as chol2inv(qr(XW_glm)$qr)
SEs_logscale = sqrt(diag(vcov_logscale)) # SEs of coefs on log scale ie of log(posbetas)
posbetas_LOWER95CL = exp(log(posbetas) - 1.96*SEs_logscale)
posbetas_UPPER95CL = exp(log(posbetas) + 1.96*SEs_logscale)
data.frame("2.5 %"=posbetas_LOWER95CL,"97.5 %"=posbetas_UPPER95CL,check.names=F)
#            2.5 %        97.5 %
# 1   1.095874e+00  8.563185e+03
# 2   2.325947e+01  1.743600e+03
# 3   1.959691e+00  4.243037e+02
# 4   8.397159e-20  5.675087e+21
# 5   2.861885e-09  8.210098e+11
# 6   4.036017e-01  1.953882e+05
# 7   9.325838e-13  3.711894e+15
# 8   6.306894e-16  3.028796e+18
# 9   2.652467e+01  1.090340e+04
# 10 1.870702e-189 6.334074e+189
# 11  8.932335e-46  2.349347e+47
# 12  2.824872e+01  2.338145e+03
# 13  4.568282e-06  3.342714e+10
# 14  4.210592e-71  1.235182e+74
# 15  7.380152e-17  2.160863e+20
# 16  1.268778e+02  1.608639e+03
# 17  4.626207e-03  8.470228e+05
# 18  6.806543e-01  1.021640e+03
# 19  3.507709e-01  2.255786e+04
# 20  2.198287e+00  6.656441e+03
# 21  1.622270e+01  1.741421e+02
# 22  1.853214e+02  3.167018e+02
# 23  1.393520e+01  9.302273e+03
# 24  7.906871e+01  5.486398e+03
# 25  2.542730e+01  3.164851e+04
# 26  6.787667e-05  7.737904e+08
# 27 4.249153e-199 4.907886e+199
# 28  5.935583e-03  4.237476e+06
z_logscale = log(posbetas)/SEs_logscale # z values for log(coefs) being greater than 0, ie coefs being > 1 (since log(1) = 0) 
pvals = pnorm(z_logscale, lower.tail=FALSE) # one-sided p values for log(coefs) being greater than 0, ie coefs being > 1 (since log(1) = 0)
pvals.adj = p.adjust(pvals, method="fdr") # FDR corrected p values

plot(x, y, type="l", main="Ground truth (red), nnls estimates (blue & green, green=FDR Wald p value<0.05)", ylab="Signal (black) & peaks (red & blue)", xlab="Time", ylim=c(-max(y),max(y)))
lines(x,-y)
lines(a, type="h", col="red", lwd=2)
lines(-a_nnls, type="h", col="blue", lwd=2)
lines(x[nonzero][pvals.adj<0.05], -a_nnls[nonzero][pvals.adj<0.05], 
      type="h", col="green", lwd=2)
sum((pvals<0.05)&(posbetas>1)) # 14 peaks significantly higher than 1 before FDR correction
sum((pvals.adj<0.05)&(posbetas>1)) # 11 peaks significantly higher than 1 after FDR correction

nhập mô tả hình ảnh ở đây

Kết quả của những tính toán này và những tính toán được trả về mle2gần như giống hệt nhau (nhưng nhanh hơn nhiều), vì vậy tôi nghĩ rằng điều này là đúng, và sẽ tương ứng với những gì chúng tôi đang làm với mle2...

Chỉ cần tinh chỉnh các hiệp phương sai với các hệ số dương nnlsphù hợp bằng cách sử dụng mô hình tuyến tính thông thường, btw không hoạt động, vì sự phù hợp của mô hình tuyến tính như vậy sẽ không tính đến các ràng buộc không âm và do đó sẽ dẫn đến các khoảng tin cậy vô nghĩa có thể bị âm. Bài viết này "Suy luận lựa chọn mô hình bài chính xác để sàng lọc cận biên" của Jason Lee & Jonathan Taylor cũng trình bày một phương pháp để thực hiện suy luận lựa chọn mô hình sau trên các hệ số nnls (hoặc LASSO) không âm và sử dụng các phân phối Gaussian bị cắt cụt cho điều đó. Mặc dù vậy, tôi chưa thấy bất kỳ triển khai công khai nào về phương pháp này cho phù hợp với nnls - đối với LASSO phù hợp có tính chọn lọcgói mà làm một cái gì đó như thế. Nếu bất cứ ai sẽ có một triển khai, xin vui lòng cho tôi biết!

Trong phương pháp trên, người ta cũng có thể phân chia dữ liệu trong tập huấn luyện & xác nhận (ví dụ: quan sát lẻ & chẵn) và suy ra các hệ số có hệ số dương từ tập huấn luyện và sau đó tính khoảng tin cậy & giá trị p từ tập xác thực. Điều đó sẽ có khả năng chống lại quá nhiều hơn một chút mặc dù nó cũng sẽ gây ra sự mất năng lượng vì người ta chỉ sử dụng một nửa dữ liệu. Tôi đã không làm điều đó ở đây bởi vì bản thân ràng buộc không âm thanh đã khá hiệu quả trong việc bảo vệ chống lại quá mức.


Các hệ số trong ví dụ của bạn nên có các lỗi rất lớn bởi vì bất kỳ sự tăng đột biến nào cũng có thể được thay đổi 1 điểm mà không ảnh hưởng nhiều đến khả năng, hoặc tôi có thiếu điều gì không? Điều này sẽ thay đổi bất kỳ hệ số nào thành 0 và 0 lân cận thành giá trị lớn ...
amip nói rằng Rebstate Monica

Vâng đúng rồi. Nhưng mọi thứ sẽ tốt hơn nếu bạn thêm một hình phạt l0 hoặc l1 để ủng hộ các giải pháp thưa thớt. Tôi đã sử dụng các mô hình nnls bị phạt l0 phù hợp bằng cách sử dụng thuật toán sườn thích ứng và điều đó mang lại giải pháp rất thưa thớt. Các thử nghiệm tỷ lệ khả năng có thể hoạt động trong trường hợp của tôi bằng cách xóa các thuật ngữ đơn nhưng không chỉnh lại mô hình với thời hạn đã bỏ
Tom Wenseleers

1
Tôi chỉ không hiểu làm thế nào bạn có thể nhận được bất cứ thứ gì có giá trị z lớn ...
amip nói rằng Rebstate Monica

Chà, các ràng buộc không âm tính giúp ích rất nhiều cho khóa học cộng với thực tế là chúng ta đang thực hiện suy luận sau lựa chọn, tức là giữ cho hệ số dương tích cực được đặt cố định ...
Tom Wenseleers

Oh tôi không hiểu rằng đó là suy luận sau lựa chọn!
amip nói phục hồi Monica

1

Để cụ thể hơn về phương pháp Monte Carlo mà @Martijn đã đề cập, bạn có thể sử dụng Bootstrap, một phương pháp lấy mẫu lại bao gồm lấy mẫu từ dữ liệu gốc (thay thế) nhiều bộ dữ liệu để ước tính phân phối các hệ số ước tính và do đó, bất kỳ thống kê liên quan nào, bao gồm khoảng tin cậy và giá trị p.

Phương pháp được sử dụng rộng rãi được trình bày chi tiết tại đây: Efron, Bradley. "Phương pháp Bootstrap: một cái nhìn khác về jackknife." Đột phá trong thống kê. Springer, New York, NY, 1992. 569-593.

Matlab đã triển khai, xem https://www.mathworks.com/help/stats/bootstrp.html đặc biệt là phần có tiêu đề Bootstrapping Mô hình hồi quy.


1
Bootstrapping sẽ hữu ích cho trường hợp đặc biệt khi các lỗi không được phân phối Gaussian. Điều này có thể xảy ra trong nhiều vấn đề trong đó các tham số bị ràng buộc (ví dụ: biến phụ thuộc cũng có thể bị hạn chế, điều này mâu thuẫn với các lỗi phân phối Gaussian), nhưng nhất thiết phải luôn luôn như vậy. Ví dụ: nếu bạn có hỗn hợp hóa chất trong dung dịch (được mô hình hóa bằng lượng cực dương của các thành phần được thêm vào) và bạn đo một số tính chất của dung dịch, thì lỗi đo lường có thể được phân phối theo Gaussian có thể được tham số hóa và ước tính, bạn làm không cần bootstrapping.
Sextus Empiricus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.