Độ tin cậy của một đường cong được trang bị?


11

Tôi muốn ước tính độ không đảm bảo hoặc độ tin cậy của đường cong được trang bị. Tôi cố tình không đặt tên cho một đại lượng toán học chính xác mà tôi đang tìm kiếm, vì tôi không biết nó là gì.

Ở đây (năng lượng) là biến phụ thuộc (phản hồi) và (âm lượng) là biến độc lập. Tôi muốn tìm đường cong Năng lượng-Khối lượng, , của một số tài liệu. Vì vậy, tôi đã thực hiện một số tính toán với một chương trình máy tính hóa học lượng tử để lấy năng lượng cho một số khối lượng mẫu (vòng tròn màu xanh lá cây trong cốt truyện).V E ( V )EVE(V)

Sau đó, tôi đã trang bị các mẫu dữ liệu này với hàm BirchTHER Murnaghan : tùy thuộc vào bốn tham số: . Tôi cũng cho rằng đây là chức năng phù hợp chính xác, vì vậy tất cả các lỗi chỉ xuất phát từ tiếng ồn của các mẫu. Trong phần tiếp theo, các chức năng được trang bị sẽ được viết như một hàm của .E 0 , V 0 , B 0 , B ' 0 ( E ) V

E(E|V)=E0+9V0B016{[(V0V)231]3B0+[(V0V)231]2[64(V0V)23]},
E0,V0,B0,B0(E^)V

Ở đây bạn có thể thấy kết quả (phù hợp với thuật toán bình phương tối thiểu). Biến trục y là và biến trục x là . Đường màu xanh là phù hợp và các vòng tròn màu xanh lá cây là các điểm mẫu.VEV

Phù hợp với BirchTHER Murnaghan (màu xanh) của mẫu (màu xanh lá cây)

Bây giờ tôi cần một số thước đo độ tin cậy (tốt nhất là phụ thuộc vào âm lượng) của đường cong được trang bị này, , bởi vì tôi cần nó để tính các đại lượng hơn như áp suất chuyển tiếp hoặc entanpy.E^(V)

Thông tin của tôi cho tôi biết rằng đường cong được trang bị là đáng tin cậy nhất ở giữa, vì vậy tôi đoán rằng độ không đảm bảo (nói phạm vi không chắc chắn) sẽ tăng gần cuối dữ liệu mẫu, như trong bản phác thảo này: nhập mô tả hình ảnh ở đây

Tuy nhiên, loại biện pháp này mà tôi đang tìm kiếm là gì và làm thế nào tôi có thể tính toán được?

Nói chính xác, thực tế chỉ có một nguồn lỗi ở đây: Các mẫu được tính toán bị nhiễu do giới hạn tính toán. Vì vậy, nếu tôi tính toán một tập hợp các mẫu dữ liệu dày đặc thì chúng sẽ tạo thành một đường cong gập ghềnh.

Ý tưởng của tôi để tìm ước tính độ không đảm bảo mong muốn là tính toán '' lỗi '' sau dựa trên các tham số khi bạn học ở trường ( tuyên truyền về độ không đảm bảo ):

ΔE(V)=(E(V)E0ΔE0)2+(E(V)V0ΔV0)2+(E(V)B0ΔB0)2+(E(V)B0ΔB0)2
các và , được đưa ra bởi các phần mềm phù hợp.ΔE0,ΔV0,ΔB0ΔB0

Đó có phải là một cách tiếp cận chấp nhận được hay tôi đang làm sai?

Tái bút: Tôi biết rằng tôi cũng có thể tổng hợp các bình phương của phần dư giữa các mẫu dữ liệu của mình và đường cong để có được một số '' lỗi tiêu chuẩn '' nhưng điều này không phụ thuộc vào khối lượng.


không có tham số nào của bạn là số mũ, điều này là tốt. Bạn đã sử dụng phần mềm NLS nào? Hầu hết sẽ trả về một ước tính cho độ không đảm bảo tham số (có thể hoàn toàn không thực tế nếu các tham số của bạn là số mũ, nhưng đây không phải là trường hợp của bạn).
DeltaIV

Không có A ở bên phải phương trình của bạn nhưng nó xuất hiện trong cốt truyện của bạn. Khi bạn nói "bốn tham số", bạn có nghĩa là các tham số theo nghĩa thống kê (trong trường hợp nào, IV của bạn ở đâu) hoặc bạn có nghĩa là các biến (trong trường hợp nào là tham số của bạn)? Hãy làm rõ vai trò của các biểu tượng - những gì được đo và những gì chưa biết?
Glen_b -Reinstate Monica

1
Tôi nghĩ rằng V là A ^ 3. đó là những gì tôi đã sử dụng và cốt truyện của tôi trông giống hệt anh ấy.
dave Fournier

@Glen_b Tôi chỉ giả sử trục Y là E trong hàm Birch của Murnaghan trong khi trục x là V. Bốn tham số là bốn tham số trong hàm Birch của Murnaghan. Nếu bạn cho rằng bạn nhận được một cái gì đó trông giống như những gì anh ta có.
dave Fournier

Ah, đợi đã, cuối cùng tôi cũng hiểu rồi. không phải là toán tử kỳ vọng (như tôi dự kiến ​​sẽ thấy trên LHS của phương trình không có thuật ngữ lỗi trên RHS), là biến trả lời được viết dưới dạng hàm dưới dạng . GỢI Ý LỚN cho mọi người: Đừng hiển thị một phương trình với ở bên trái của phương trình hồi quy cho một nhà thống kê mà không xác định cẩn thận ý của bạn, bởi vì họ có thể sẽ cho rằng đó là một kỳ vọng. E()Ey(x)E()
Glen_b -Reinstate Monica

Câu trả lời:


8

Đây là một vấn đề bình phương tối thiểu bình thường!

Xác định

x=V2/3, w=V01/3,

mô hình có thể được viết lại

E(E|V)=β0+β1x+β2x2+β3x3

trong đó các hệ số có liên quan về mặt đại số với các hệ số ban đầu thông quaβ=(βi)

16β=(16E0+54B0w39B0B0w3144B0w5+27B0B0w5126B0w727B0B0w736B0w9+9B0B0w9).

Điều này rất đơn giản để giải quyết đại số hoặc số: chọn giải pháp mà và là dương. Lý do duy nhất để làm điều này là để có được ước tính và và để xác minh chúng có ý nghĩa vật lý. Tất cả các phân tích về sự phù hợp có thể được thực hiện dưới dạng .B0,B0wB0,B0,wE0β

Cách tiếp cận này không chỉ đơn giản hơn nhiều so với phương pháp phi tuyến, mà còn chính xác hơn: ma trận phương sai hiệp phương sai cho trả về bởi sự phù hợp phi tuyến chỉ là một xấp xỉ bậc hai cục bộ cho phân phối mẫu trong số các tham số này, trong khi đó (đối với các lỗi phân phối thông thường trong đo , dù sao), kết quả OLS không phải là xấp xỉ.(E0,B0,B0,V0)E

Khoảng tin cậy, khoảng dự đoán, v.v. có thể đạt được theo cách thông thường mà không cần tìm các giá trị này: tính toán chúng theo các ước tính và ma trận phương sai hiệp phương sai của chúng. (Ngay cả Excel cũng có thể làm điều này!) Dưới đây là một ví dụ, theo sau là mã (đơn giản) đã tạo ra nó.β^R

Nhân vật

#
# The data.
#
X <- data.frame(V=c(41, 43, 46, 48, 51, 53, 55.5, 58, 60, 62.5),
                E=c(-48.05, -48.5, -48.8, -49.03, -49.2, -49.3, -49.35, 
                    -49.34, -49.31, -49.27))
#
# OLS regression.
#
fit <- lm(E ~ I(V^(-2/3)) + I(V^(-4/3)) + I(V^(-6/3)), data=X)
summary(fit)
beta <- coef(fit)
#
# Prediction, including standard errors of prediction.
#
V0 <- seq(40, 65)
y <- predict(fit, se.fit=TRUE, newdata=data.frame(V=V0))
#
# Plot the data, the fit, and a three-SEP band.
#
plot(X$V, X$E, xlab="Volume", ylab="Energy", bty="n", xlim=c(40, 60))
polygon(c(V0, rev(V0)), c(y$fit + 3*y$se.fit, rev(y$fit - 3*y$se.fit)),
        border=NA, col="#f0f0f0")
curve(outer(x^(-2/3), 0:3, `^`) %*% beta, add=TRUE, col="Red", lwd=2)
points(X$V, X$E)

Nếu bạn quan tâm đến việc phân phối chung các ước tính tham số ban đầu, thì có thể dễ dàng mô phỏng từ giải pháp OLS: chỉ cần tạo ra nhiều nhận thức Bình thường của và chuyển đổi chúng thành các tham số. Đây là một ma trận phân tán của 2000 hiện thực như vậy. Độ cong mạnh cho thấy tại sao phương pháp Delta có thể cho kết quả kém.β

Hình 2


1
Mặc dù đúng là các thuật toán cho các mô hình tuyến tính phù hợp với số lượng ổn định hơn nhiều so với các thuật toán cho các mô hình phi tuyến, nhưng không có sự khác biệt về độ chính xác của chẩn đoán miễn là thuật toán phù hợp phi tuyến hội tụ. Tôi đã kiểm tra và chúng tôi có cùng một số bình phương còn lại cho ít nhất 4 hình sig. Ngoài ra, tham số tuyến tính bạn chọn rất khó hiểu để không có tham số nào có ý nghĩa theo thử nghiệm t. Tất cả của tôi là. Không thực sự là một vấn đề lớn, nhưng gây cười và có thể gây nhầm lẫn cho cầu thủ trẻ.
dave Fournier

Ngoài ra, tôi đoán rằng bạn đã không trả lời câu hỏi của OP vì cô ấy nói rằng cô ấy muốn một cái gì đó như giới hạn độ tin cậy cho hàm entanpy-volume-function
dave Fournier

1
@Dave Đó là những điểm chu đáo, cảm ơn bạn. Trong một vấn đề vật lý, người ta thường không quan tâm đến ý nghĩa: lý thuyết bao hàm tất cả các biến. Một thay vì quan tâm đến việc ước tính các giá trị. Mặc dù cả hai phương pháp đều phải đạt được cùng một tổn thất tối thiểu (tổng bình phương của phần dư), OLS tạo ra các phân phối chính xác cho phương sai lấy mẫu của các tham số. Cách tiếp cận phi tuyến không. Việc áp dụng chuyển đổi từ phân phối thành là chính xác , nhưng sử dụng hiệp phương sai của chỉ là một xấp xỉ. β(E0,)(E^0)
whuber

Mô hình của bạn và của tôi là giống hệt nhau độc lập với tham số. (Tôi đang nói về mô hình OLS.) Đúng là nếu một tham số cụ thể đi vào mô hình một cách tuyến tính thì độ lệch chuẩn tạo ra giới hạn tin cậy tốt hơn cho tham số đó. độ lệch chuẩn thu được thông qua phương pháp delta sẽ giống nhau cho dù nó được sử dụng để tham số hóa mô hình hoặc được giải quyết như là một biến phụ thuộc. Trong trường hợp này, biến quan tâm phụ thuộc là hàm entanpy-volume và phương thức delta std dev của nó sẽ giống nhau cho dù người ta sử dụng tham số của bạn hay của tôi.
dave Fournier

1
@Dave Tôi đồng ý: các mô hình giống nhau nhưng với các tham số khác nhau. Ưu điểm của công thức OLS mở rộng đến thực tế là iid Lỗi bình thường trong phản hồi chuyển thành một giải pháp chính xác cho phân phối ước tính tham số , dễ dàng biến thành ước tính phân phối ước tính bốn chiều đầy đủ của các tham số ban đầu. Mặc dù điều này có thể được thực hiện bằng cách sử dụng tham số hóa ban đầu, nhưng điều đó sẽ đòi hỏi nhiều công việc số hơn. Hơn nữa, những lợi thế về mặt khái niệm của việc nhìn thấy mô hình ban đầu chỉ là OLS được ngụy trang là rất quan trọng. β^
whuber

3

Có một cách tiếp cận tiêu chuẩn cho phương pháp này được gọi là phương pháp delta. Bạn tạo thành nghịch đảo của Hessian về khả năng đăng nhập ghi bốn tham số của bạn. Có một tham số phụ cho phương sai của phần dư, nhưng nó không đóng vai trò trong các tính toán này. Sau đó, bạn tính toán đáp ứng dự đoán cho các giá trị mong muốn của biến độc lập và tính toán độ dốc của nó (wrt phái sinh) bốn tham số này. Gọi nghịch đảo của Hessian và vectơ gradient . Bạn tạo thành sản phẩm ma trận vector Ig

gtIg
Điều này cung cấp cho bạn phương sai ước tính cho biến phụ thuộc đó. Lấy căn bậc hai để có độ lệch chuẩn ước tính. thì giới hạn tin cậy là giá trị dự đoán + - hai độ lệch chuẩn. Đây là công cụ khả năng tiêu chuẩn. đối với trường hợp đặc biệt của hồi quy phi tuyến, bạn có thể sửa cho các bậc tự do. Bạn có 10 quan sát và 4 tham số để bạn có thể tăng ước lượng phương sai trong mô hình bằng cách nhân với 10/6. Một số gói phần mềm sẽ làm điều này cho bạn. Tôi đã viết mô hình của bạn trong Mô hình AD trong Trình tạo mô hình AD và điều chỉnh mô hình đó và tính toán các phương sai (chưa sửa đổi). Chúng sẽ hơi khác với bạn vì tôi phải đoán một chút về các giá trị.
                    estimate   std dev
10   pred_E      -4.8495e+01 7.5100e-03
11   pred_E      -4.8810e+01 7.9983e-03
12   pred_E      -4.9028e+01 7.5675e-03
13   pred_E      -4.9224e+01 6.4801e-03
14   pred_E      -4.9303e+01 6.8034e-03
15   pred_E      -4.9328e+01 7.1726e-03
16   pred_E      -4.9329e+01 7.0249e-03
17   pred_E      -4.9297e+01 7.1977e-03
18   pred_E      -4.9252e+01 1.1615e-02

Điều này có thể được thực hiện cho bất kỳ biến phụ thuộc nào trong AD Model Builder. Người ta khai báo một biến ở vị trí thích hợp trong mã như thế này

   sdreport_number dep

và viết mã đánh giá biến phụ thuộc như thế này

dep=sqrt(V0-cube(Bp0)/(1+2*max(V)));

Lưu ý điều này được ước tính cho một giá trị của biến độc lập gấp 2 lần giá trị lớn nhất được quan sát thấy trong sự phù hợp mô hình. Điều chỉnh mô hình và người ta có được độ lệch chuẩn cho biến phụ thuộc này

19   dep          7.2535e+00 1.0980e-01

Tôi đã sửa đổi chương trình để bao gồm mã để tính các giới hạn độ tin cậy cho hàm khối lượng enthalpy Tệp tệp (TPL) trông giống như

DATA_SECTION
 init_int nobs
 init_matrix data(1,nobs,1,2)
 vector E
 vector V
 number Vmean
LOC_CALCS
 E=column(data,2);
 V=column(data,1);
 Vmean=mean(V);

PARAMETER_SECTION
 init_number E0
 init_number log_V0_coff(2)
 init_number log_B0(3)
 init_number log_Bp0(3)
 init_bounded_number a(.9,1.1)
 sdreport_number V0
 sdreport_number B0
 sdreport_number Bp0
 sdreport_vector pred_E(1,nobs)
 sdreport_vector P(1,nobs)
 sdreport_vector H(1,nobs)
 sdreport_number dep
 objective_function_value f
PROCEDURE_SECTION
  V0=exp(log_V0_coff)*Vmean;
  B0=exp(log_B0);
  Bp0=exp(log_Bp0);
  if (current_phase()<4)
  f+=square(log_V0_coff) +square(log_B0);

  dvar_vector sv=pow(V0/V,0.66666667);
  pred_E=E0 + 9*V0*B0*(cube(sv-1.0)*Bp0
    + elem_prod(square(sv-1.0),(6-4*sv)));

  dvar_vector r2=square(E-pred_E);
  dvariable vhat=sum(r2)/nobs;
  dvariable v=a*vhat;
  f=0.5*nobs*log(v)+sum(r2)/(2.0*v);

  // code to calculate the  enthalpy-volume function
  double delta=1.e-4;
  dvar_vector svp=pow(V0/(V+delta),0.66666667);
  dvar_vector svm=pow(V0/(V-delta),0.66666667);
  P = -((9*V0*B0*(cube(svp-1.0)*Bp0
      + elem_prod(square(svp-1.0),(6-4*svp))))
      -(9*V0*B0*(cube(svm-1.0)*Bp0
      + elem_prod(square(svm-1.0),(6-4*svm)))))/(2.0*delta);
  H=E+elem_prod(P,V);

dep=sqrt(V0-cube(Bp0)/(1+2*max(V)));

Sau đó, tôi đã chỉnh lại mô hình để lấy các dev chuẩn cho ước tính của H.

29   H           -3.9550e+01 5.9163e-01
30   H           -4.1554e+01 2.8707e-01
31   H           -4.3844e+01 1.2333e-01
32   H           -4.5212e+01 1.5011e-01
33   H           -4.6859e+01 1.5434e-01
34   H           -4.7813e+01 1.2679e-01
35   H           -4.8808e+01 1.1036e-01
36   H           -4.9626e+01 1.8374e-01
37   H           -5.0186e+01 2.8421e-01
38   H           -5.0806e+01 4.3179e-01

Chúng được tính cho các giá trị V được quan sát của bạn, nhưng có thể dễ dàng tính cho bất kỳ giá trị nào của V.

Nó đã được chỉ ra rằng đây thực sự là một mô hình tuyến tính có mã R đơn giản để thực hiện ước lượng tham số thông qua OLS. Điều này rất hấp dẫn đặc biệt là người dùng ngây thơ. Tuy nhiên, do công việc của Huber hơn ba mươi năm trước, chúng ta biết hoặc nên biết rằng có lẽ hầu như luôn luôn thay thế OLS bằng một sự thay thế mạnh mẽ vừa phải. Lý do điều này không được thực hiện thường xuyên, tôi tin rằng các phương pháp mạnh mẽ vốn dĩ là phi tuyến. Từ quan điểm này, các phương thức OLS đơn giản hấp dẫn trong R không chỉ là một cái bẫy, hơn là một tính năng. Một tiến bộ của phương pháp AD Model Builder là nó được tích hợp để hỗ trợ cho mô hình phi tuyến. Để thay đổi mã bình phương tối thiểu thành hỗn hợp thông thường mạnh mẽ, chỉ cần thay đổi một dòng mã. Dòng

    f=0.5*nobs*log(v)+sum(r2)/(2.0*v);

được đổi thành

f=0.5*nobs*log(v)
  -sum(log(0.95*exp(-0.5*r2/v) + 0.05/3.0*exp(-0.5*r2/(9.0*v))));

Số lượng quá mức trong các mô hình được đo bằng tham số a. Nếu bằng 1, phương sai tương tự như đối với mô hình bình thường. Nếu có lạm phát của phương sai theo các ngoại lệ, chúng tôi hy vọng rằng giá trị này sẽ nhỏ hơn 1.0. Đối với những dữ liệu này, ước tính của a là khoảng 0,23 do đó phương sai là khoảng 1/4 phương sai cho mô hình bình thường. Giải thích là các ngoại lệ đã tăng ước tính phương sai lên khoảng 4. Hiệu quả của việc này là tăng kích thước của giới hạn tin cậy cho các tham số cho mô hình OLS. Điều này thể hiện sự mất hiệu quả. Đối với mô hình hỗn hợp thông thường, độ lệch chuẩn ước tính cho hàm khối lượng entanpy là

 29   H           -3.9777e+01 3.3845e-01
 30   H           -4.1566e+01 1.6179e-01
 31   H           -4.3688e+01 7.6799e-02
 32   H           -4.5018e+01 9.4855e-02
 33   H           -4.6684e+01 9.5829e-02
 34   H           -4.7688e+01 7.7409e-02
 35   H           -4.8772e+01 6.2781e-02
 36   H           -4.9702e+01 1.0411e-01
 37   H           -5.0362e+01 1.6380e-01
 38   H           -5.1114e+01 2.5164e-01

Người ta thấy rằng có những thay đổi nhỏ trong ước tính điểm, trong khi giới hạn độ tin cậy đã giảm xuống còn khoảng 60% so với những gì được tạo ra bởi OLS.

Điểm chính tôi muốn thực hiện là tất cả các tính toán được sửa đổi sẽ tự động xảy ra khi một thay đổi một dòng mã trong tệp TPL.


2
Vì lợi ích của @ thyme, tôi muốn lưu ý rằng "phương pháp delta" về cơ bản là quy trình chính xác giống như "truyền bá sự không chắc chắn" mà họ quen thuộc và thường được dạy cho các nhà khoa học - ít nhất là, họ là các thủ tục tương tự khi sau này được thực hiện chính xác. Một cảnh báo là công thức được đăng trong câu hỏi bỏ qua mối tương quan giữa các giá trị ước tính của các tham số. Bỏ qua các mối tương quan là tương đương với chỉ xem xét các yếu tố đường chéo của trong phương pháp delta. I
jwimberley

1
Ngoài ra đối với @thyme, việc truyền bá độ không đảm bảo / phương thức delta chỉ tạo ra độ không đảm bảo trong . Trên hết là bất kỳ sai lệch / phương sai do nhiễu. Tôi cho rằng bạn đang đưa ra dự đoán về các mẫu vật lý, có năng lượng / entanpy / các đại lượng nhiệt động khác không có tiếng ồn giống như trong phần mềm mô phỏng của bạn, nhưng trong cả hai trường hợp, điều này lại tạo thêm một nguồn phương sai ở trên phương sai trong hoặc đó là do sự không chắc chắn từ sự phù hợp. E ( E | V ) E ( H | V )E(EV)E(EV)E(HV)
jwimberley

1
@jwimberley, về cơ bản, bạn đang nói rằng dave fourier đã đưa ra công thức cho khoảng tin cậy của trung bình (có điều kiện), trong khi cỏ xạ hương có thể quan tâm đến khoảng dự đoán cho một quan sát mới. Thật dễ dàng để tính toán cái sau cho OLS. Làm thế nào để bạn tính toán nó trong trường hợp này?
DeltaIV

1
@DeltaIV Sẽ vẫn dễ dàng trong trường hợp này - nếu mô hình bình phương nhỏ nhất phi tuyến tính là chính xác, thì phần dư của phù hợp được phân phối như . Vì vậy, phương sai bổ sung trong khoảng dự đoán là phương sai của phần dư phù hợp. Điều này có liên quan đến ý tưởng trong kịch bản sau của câu trả lời (không phải là phụ thuộc vì mô hình phù hợp không phải là không đồng nhất). Tuy nhiên, quan trọng hơn, trong sự phù hợp đến từ các giới hạn tính toán, trong khi trên thế giới đến từ các biến động nhiệt động lực học, có lẽ không thể so sánh được. E - E ε V ε εE=f(V)+ϵEE^ϵVϵϵ
jwimberley

1
@jwimberley Tôi chỉ hiển thị giới hạn tin cậy cho các giá trị dự đoán tương ứng với các giá trị V được quan sát đơn giản vì chúng có sẵn. Tôi đã chỉnh sửa câu trả lời của mình để chỉ ra cách lấy giới hạn độ tin cậy cho bất kỳ biến phụ thuộc nào.
dave Fournier

0

Xác thực chéo là một cách đơn giản để ước tính độ tin cậy của đường cong của bạn: https://en.wikipedia.org/wiki/Cross-validation_(statistic)

Việc truyền bá sự không chắc chắn với chênh lệch từng phần là rất lớn là bạn thực sự biết và . Tuy nhiên, chương trình bạn đang sử dụng chỉ cung cấp các lỗi phù hợp (?). Những người sẽ quá lạc quan (nhỏ một cách phi thực tế). Δ B 'ΔE0,ΔV0,ΔB0ΔB

Bạn có thể tính toán lỗi xác thực 1 lần bằng cách để một trong những điểm của bạn không khớp và sử dụng đường cong được trang bị để dự đoán giá trị của điểm bị bỏ lại. Lặp lại điều này cho tất cả các điểm để mỗi điểm bị bỏ đi một lần. Sau đó, tính toán xác nhận lỗi của đường cong cuối cùng của bạn (đường cong phù hợp với tất cả các điểm) dưới dạng trung bình của các lỗi dự đoán.

Điều này sẽ chỉ cho bạn biết mức độ nhạy cảm của mô hình của bạn đối với bất kỳ điểm dữ liệu mới nào. Ví dụ, nó sẽ không cho bạn biết mô hình năng lượng của bạn không chính xác như thế nào. Tuy nhiên, đây sẽ là lỗi ước tính thực tế hơn nhiều chỉ là lỗi phù hợp.

Ngoài ra, bạn có thể vẽ các lỗi dự đoán dưới dạng hàm của âm lượng nếu bạn muốn.

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.