Hồi quy tuyến tính trên một mẫu kéo dài nhiều bậc độ lớn


8

Định luật hóa học của Charlie nói rằng độ hấp thụ của chất lỏng tỷ lệ thuận với nồng độ , do đó: Điều cần làm sau đó là chuẩn bị một bộ các dung dịch có nồng độ đã biết, đo độ hấp thụ để tạo thành một đường cong chuẩn '(Đường cong hiệu chuẩn về cơ bản) và thực hiện hồi quy tuyến tính đơn giản trên dữ liệu đó để có được tỷ lệ (sau đó có thể được sử dụng để dự đoán nồng độ của các giải pháp chưa biết).C A = k CAC

A=kC

Một cách dễ dàng để làm điều này là bắt đầu với một nồng độ đã biết và thực hiện pha loãng nối tiếp, điều này sẽ giúp bạn pha loãng gấp 2 lần, 4x, 8x, 16x .... vv. Tức là nếu bạn bắt đầu với một giải pháp bạn sẽ nhận được các giải pháp với , , v.v ... 50 μ g / m L 25 μ g / m L 12,5 μ g / m L100μg/mL50μg/mL25μg/mL12.5μg/mL

Bây giờ khi bạn thực hiện hồi quy tuyến tính, bạn có một bộ dữ liệu với nhiều điểm dữ liệu ở nồng độ thấp và rất ít ở nồng độ cao hơn. Có vẻ tự nhiên hơn nhiều khi đại diện cho vấn đề này trên thang đo log. Câu hỏi của tôi là sau đó, tôi nên thực hiện hồi quy tuyến tính của so với hoặc so với ? Khi tôi so sánh các mô hình, chúng dường như đưa ra các câu trả lời có cùng độ lớn nhưng theo thứ tự khác nhau 30%.C log Một logAClogAlogC

dữ liệu được vẽ trên quy mô tuyến tính dữ liệu được vẽ trên thang đo log

Câu trả lời:


13

Hãy để vật lý (của thí nghiệm và thiết bị đo) hướng dẫn bạn.

Cuối cùng, độ hấp thụ được xác định bằng cách đo lượng bức xạ đi qua môi trường và các phép đo đó được đưa xuống để đếm các photon. Khi môi trường là vĩ mô, dao động nhiệt động trong nồng độ là không đáng kể nên nguồn lỗi chính nằm ở việc đếm. Lỗi này (hoặc "tiếng ồn bắn" ) có phân phối Poisson . Điều này ngụ ý sai số tương đối lớn ở nồng độ cao khi có ít bức xạ đi qua.

Với sự chăm sóc đầy đủ trong phòng thí nghiệm, nồng độ thường được đo cực kỳ chính xác, vì vậy tôi sẽ không lo lắng về sai sót về nồng độ.

Độ hấp thụ chính nó liên quan trực tiếp đến logarit của bức xạ đo được . Lấy logarit phát sinh số lượng lỗi trên toàn bộ phạm vi nồng độ có thể. Vì lý do này thôi, tốt nhất là phân tích độ hấp thụ theo các giá trị thông thường của nó thay vì thể hiện lại chúng. Cụ thể, chúng ta nên tránh ghi nhật ký độ hấp thụ, mặc dù điều đó sẽ đơn giản hóa biểu hiện của luật Bia-Lambert.

Chúng ta cũng nên cảnh giác với các phi tuyến tính có thể. Đạo hàm của Luật Bia-Lambert cho thấy đường cong hấp thụ nồng độ sẽ trở thành phi tuyến ở nồng độ cao. Một số cách để phát hiện hoặc kiểm tra điều này là cần thiết.

Những cân nhắc này cho thấy một quy trình đơn giản để phân tích một loạt các cặp nồng độ và độ hấp thụ đo được:(Ci,Ai)

  • Ước tính hệ số là trung bình số học của , .κA/Cκ^=iAiCi

  • Dự đoán độ hấp thụ ở mỗi nồng độ theo hệ số ước tính:A^(C)=κ^C.

  • Kiểm tra phần dư phụ gia để biết xu hướng phi tuyến tính trong .AiAi^Ci

Tất nhiên tất cả điều này chỉ là lý thuyết và hơi suy đoán - chúng tôi không có bất kỳ dữ liệu thực tế nào để phân tích - nhưng đó là một nơi hợp lý để bắt đầu. Nếu kinh nghiệm trong phòng thí nghiệm lặp đi lặp lại cho thấy dữ liệu khởi hành từ các hành vi thống kê được mô tả ở đây, thì một số sửa đổi của các quy trình này sẽ được yêu cầu.


Để minh họa những ý tưởng này, tôi đã tạo ra một mô phỏng thực hiện các khía cạnh chính của phép đo, bao gồm nhiễu Poisson và có thể là các phản ứng phi tuyến. Bằng cách chạy nó nhiều lần, chúng ta có thể quan sát loại biến thể có thể gặp phải trong phòng thí nghiệm. Dưới đây là kết quả của một lần chạy mô phỏng. (Các mô phỏng khác có thể được thực hiện đơn giản bằng cách thay đổi hạt giống bắt đầu trong mã bên dưới và sửa đổi các tham số khác nhau theo ý muốn.)

Số liệu

Thí nghiệm mô phỏng này đã đo độ hấp thụ ở nồng độ từ đến . Các chênh lệch dọc trong các giá trị rõ ràng trong biểu đồ phân tán cho thấy ảnh hưởng của (a) nhiễu bắn trong các phép đo truyền và (b) nhiễu bắn trong phép đo truyền ban đầu ở nồng độ bằng không. (Lưu ý cách điều này thực sự tạo ra một số giá trị độ hấp thụ âm .) Mặc dù các lỗi kết quả sẽ không có cùng phân phối chính xác ở mỗi nồng độ, chênh lệch gần bằng nhau là bằng chứng thực nghiệm cho thấy các phân phối đủ gần giống như chúng ta cần ' T lo lắng về điều đó. Nói cách khác, không cần phải cân trọng lượng của chất hấp thụ theo nồng độ.11/32

Đường chéo màu đỏ đã được ước tính từ tất cả 50 mô phỏng. Nó có độ dốc , khác một chút so với độ dốc chính xác vật lý là được sử dụng trong các mô phỏng. Độ lệch này quá lớn vì tôi cho rằng có rất ít bức xạ cần đo; số lượng photon tối đa chỉ là . Trong thực tế, số lượng tối đa có thể lớn hơn nhiều bậc, dẫn đến ước tính độ dốc rất chính xác - nhưng sau đó chúng ta sẽ không học được nhiều từ con số này!κ^=2.1321000

Biểu đồ của phần dư có vẻ không tốt: nó bị lệch sang phải. Điều này chỉ ra một số loại rắc rối. Rắc rối đó không đến từ sự bất cân xứng trong phần dư ở mỗi nồng độ; thay vào đó, nó đến từ sự thiếu phù hợp. Điều đó thể hiện rõ ở các ô vuông ở bên phải: mặc dù năm trong số chúng đầu tiên xếp hàng gần như theo chiều ngang, cái cuối cùng - ở nồng độ cao nhất - rõ ràng khác nhau về vị trí (quá cao) và tỷ lệ (quá dài) . Kết quả này từ một phản ứng phi tuyến tôi đã tích hợp vào mô phỏng. Mặc dù tính phi tuyến có mặt trong toàn bộ phạm vi nồng độ, nhưng nó chỉ có tác dụng rõ rệt ở nồng độ cao nhất. Điều này ít nhiều sẽ xảy ra trong phòng thí nghiệm. Tuy nhiên, chỉ với một lần hiệu chỉnh có sẵn, chúng tôi không thể vẽ các ô như vậy. Xem xét phân tích nhiều lần chạy độc lập nếu sự phi tuyến tính có thể là một vấn đề.


Các mô phỏng đã được thực hiện trong R. Tuy nhiên, các tính toán với dữ liệu thực tế rất đơn giản để thực hiện bằng tay hoặc bằng bảng tính: chỉ cần đảm bảo kiểm tra phần dư cho độ phi tuyến.

#
# Simulate instrument responses:
#   `concentration` is an array of concentrations to use.
#   `kappa` is the Beer-Lambert law coefficient.
#   `n.0`   is the largest  expected photon count (at 0 concentration).
#   `start` is a tiny positive value used to avoid logs of zero.
#   `beta`  is the amount of nonlinearity (it is a quadratic perturbation
#           of the Beer-Lambert law).
# The return value is a parallel array of measured absorbances; it is subject
# to random fluctuations.
#
observe <- function(concentration, kappa=1, n.0=10^3, start=1/6, beta=0.2) {
  transmission <- exp(-kappa * concentration - beta * concentration^2)
  transmission.observed <- start + rpois(length(transmission), transmission * n.0)
  absorbance <- -log(transmission.observed / rpois(1, n.0))
  return(absorbance)
}
#
# Perform a set of simulations.
#
concentration <- 2^(-(0:5)) # Concentrations to use
n.iter <- 50                # Number of iterations
set.seed(17)                # Make the results reproducible
absorbance <- replicate(n.iter, observe(concentration, kappa=2))
#
# Put the results into a data frame for further analysis.
#
a.df <- data.frame(absorbance = as.vector(absorbance))
a.df$concentration <- concentration # ($ interferes with TeX processing on this site)
#
# Create the figures.
#
par(mfrow=c(1,3))
#
# Set up a region for the scatterplot.
#
plot(c(min(concentration), max(concentration)), 
     c(min(absorbance), max(absorbance)), type="n",
     xlab="Concentration", ylab="Absorbance",
     main=paste("Scatterplot of", n.iter, "iterations"))
#
# Make the scatterplot.
#
invisible(apply(absorbance, 2, 
                function(a) points(concentration, a, col="#40404080")))
slope <- mean(a.df$absorbance / a.df$concentration)
abline(c(0, slope), col="Red")
#
# Show the residuals.
#
a.df$residuals <- a.df$absorbance - slope * a.df$concentration # $
hist(a.df$residuals, main="Histogram of residuals", xlab="Absorbance Difference") # $
#
# Study the residual distribution vs. concentration.
#
boxplot(a.df$residuals ~ a.df$concentration, main="Residual distributions",
        xlab="Concentration")

5

Cả hai mô hình được trang bị của bạn đều không thể đúng với phương trình ban đầu của bạn và phương trình ban đầu của bạn không thể là một mô hình chính xác cho các biến ngẫu nhiên mà bạn quan sát được.

Hãy giải quyết một số vấn đề cùng một lúc.

1) Phương trình ban đầu của bạn là , nhưng tất nhiên dữ liệu không được quan sát ở các giá trị dân số (nếu không bạn chỉ cần một giá trị và , vì . Rõ ràng đây không phải là mô hình phù hợp cho dữ liệu hoặc bạn sẽ không cố gắng điều chỉnh hồi quy. Chúng ta sẽ xem cách viết lại ngay.A=kCxyk=y/x

2) Nếu cả hai biến được quan sát có lỗi, bạn cần nhiều kỹ thuật chuyên dụng hơn các mô hình hồi quy tuyến tính đơn giản.

3) Nếu được quan sát không có lỗi (hoặc sai số rất thấp so với ), có lẽ bạn có nghĩa là một mô hình giống như nói .CAE(A|C)=kC

Câu hỏi sau đó là "làm thế nào để mô hình hóa biến thể về giá trị trung bình" - chúng ta cần phân phối cho tại mỗi hoặc ít nhất là một số thông tin liên quan đến phân phối.AC

a) Như bạn đã đề xuất, bạn có thể điều chỉnh mô hình tuyến tính trực tiếp với dữ liệu theo tỷ lệ ban đầu:

E(A|C)=kC

Điều này có thể phù hợp nếu độ biến thiên gần như không đổi trên thang đo này ( gần hằng số).Var(A|C)

Lưu ý rằng mô hình này, dựa trên mô hình dân số của bạn, không có thuật ngữ chặn; nó đi qua nguồn gốc

Ngoài ra, nếu bạn có một số mô hình khác cho biến thể về dòng, chẳng hạn như , thì bạn có thể phù hợp với hồi quy có trọng số.Var(A|C)Cp

b) Như bạn đã đề cập, một mô hình khả dĩ khác có thể được trang bị trên thang đo log:

E(log10A|log10C)=log10k+log10C

Điều này có thể phù hợp nếu biến thể gần như không đổi trên thang đo log ( gần như không đổi) ... mà bạn có xu hướng xem nếu phương sai công suất trong (a) là 2 hoặc gần bằng 2.Var(log10A|log10C)

Lưu ý rằng mô hình này có một đánh chặn, nhưng có hệ số độ dốc là 1. Một cách để phù hợp với mô hình này là phù hợp:

E(log10A|log10C)log10C=log10k

(Điều đó nói rằng, bạn có thể muốn kiểm tra một mô hình tổng quát hơn mà mô hình ban đầu của bạn, chẳng hạn như xem xét độ dốc không đơn vị trong (b) chẳng hạn.

Sự phù hợp trong (a) và (b) trọng lượng dữ liệu khác nhau (mặc dù với in (a) kết quả sẽ khá gần nhau), vì vậy họ sẽ không đưa ra câu trả lời giống hệt nhau. Trên dữ liệu của bạn, chúng khác nhau khoảng 26%, điều này minh họa rằng đối với một mẫu như vậy, sự lựa chọn là khá quan trọng.p=2

Nếu bạn không có bất kỳ kiến ​​thức nào trước đây để hướng dẫn lựa chọn, phân tích dư có thể là một cách để đến một mô hình (đặc biệt là nếu bạn có một bộ dữ liệu khác mà bạn có thể dựa vào lựa chọn đó); cách khác, bạn có thể làm cho một tham số của một mô hình lớn hơn.p

(Khi nó xảy ra, một phân tích dư cho tôi thấy có thể có vấn đề tiềm ẩn với cả (a) với phương sai không đổi và với mô hình trong (b); không phải mô hình, thậm chí, có lẽ, các mô hình tổng quát hơn (a) - with0intercept và (b) -với độ dốc không đơn vị nhất thiết phải phù hợp (có một gợi ý về độ cong về đường thẳng). Một trong những mối quan tâm là đòn bẩy trong (a), xuất phát từ 'nhiều bậc độ lớn')

4) Lưu ý rằng có rất nhiều mẫu khác có thể được trang bị.

Ví dụ, hãy xem xét cho một số hằng số được chỉ định (mô hình log tương ứng với ). q q = 0E(Aq|C)=kqCqqq=0

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.