Biarkan fisika (percobaan dan alat pengukur) membimbing Anda.
Pada akhirnya, penyerapan ditentukan dengan mengukur jumlah radiasi yang melewati media dan pengukuran tersebut turun ke penghitungan foton. Ketika medianya makroskopis, fluktuasi termodinamika dalam konsentrasi dapat diabaikan sehingga sumber kesalahan utama terletak pada penghitungan. Kesalahan ini (atau "suara tembakan" ) memiliki distribusi Poisson . Ini menyiratkan kesalahan relatif besar pada konsentrasi tinggi ketika sedikit radiasi yang lewat.
Dengan perawatan yang memadai di laboratorium, konsentrasi biasanya diukur dengan sangat akurat, jadi saya tidak akan khawatir tentang kesalahan konsentrasi.
Absorbansi itu sendiri secara langsung berkaitan dengan logaritma radiasi yang diukur . Mengambil logaritma meratakan jumlah kesalahan di seluruh rentang konsentrasi yang memungkinkan. Untuk alasan ini saja, yang terbaik adalah menganalisis absorbansi dalam hal nilai-nilai biasanya daripada mengekspresikannya kembali. Secara khusus, kita harus menghindari pengambilan log absorbansi, meskipun itu akan menyederhanakan ekspresi hukum Beer-Lambert.
Kita juga harus waspada terhadap kemungkinan non-linearitas. Derivasi Hukum Beer-Lambert menunjukkan kurva absorbansi vs konsentrasi akan menjadi nonlinier pada konsentrasi tinggi. Diperlukan beberapa cara untuk mendeteksi atau menguji ini.
Pertimbangan ini menyarankan prosedur sederhana untuk menganalisis serangkaian (Ci,Ai) pasang konsentrasi dan absorbansi yang diukur:
Perkirakan koefisien κ sebagai mean aritmatika dari A/C, κ^=∑iAiCi.
Memprediksi absorbansi pada setiap konsentrasi dalam hal koefisien yang diperkirakan: A^(C)=κ^C.
Periksa residu aditifAi−Ai^ untuk tren nonlinier di Ci.
Tentu saja semua ini teoretis dan agak spekulatif - kami belum memiliki data aktual untuk dianalisis - tetapi ini adalah tempat yang wajar untuk memulai. Jika pengalaman laboratorium berulang-ulang menyarankan data berangkat dari perilaku statistik yang dijelaskan di sini, maka beberapa modifikasi dari prosedur ini akan diperlukan.
Untuk mengilustrasikan ide-ide ini, saya telah membuat simulasi yang mengimplementasikan aspek-aspek kunci dari pengukuran, termasuk kebisingan Poisson dan kemungkinan respons nonlinier. Dengan menjalankannya berkali-kali, kita dapat mengamati jenis variasi yang mungkin ditemui di laboratorium. Berikut adalah hasil dari satu simulasi dijalankan. (Simulasi lain dapat dilakukan hanya dengan mengubah seed awal pada kode di bawah ini dan memodifikasi berbagai parameter yang diinginkan.)
Eksperimen simulasi ini mengukur absorbansi pada konsentrasi 1 ke 1/32. Penyebaran vertikal dalam nilai-nilai yang terlihat di sebar menunjukkan efek dari (a) noise tembakan dalam pengukuran transmisi dan (b) noise tembakan dalam pengukuran transmisi awal pada konsentrasi nol. (Perhatikan bagaimana ini benar-benar menciptakan beberapa nilai absorbansi negatif .) Meskipun kesalahan yang dihasilkan tidak akan memiliki distribusi yang persis sama pada setiap konsentrasi, sebaran yang kurang lebih sama adalah bukti empiris bahwa distribusi cukup dekat untuk menjadi sama yang kita butuhkan ' jangan khawatir tentang itu. Dengan kata lain, tidak perlu menimbang absorbansi sesuai konsentrasi.
Garis diagonal merah telah diperkirakan dari semua 50 simulasi. Ini memiliki kemiringanκ^=2.13, Yang sedikit berbeda dari kemiringan yang benar secara fisik 2yang digunakan dalam simulasi. Penyimpangan ini sangat besar karena saya berasumsi ada sangat sedikit radiasi untuk diukur; jumlah foton maksimum hanya1000. Dalam praktiknya, jumlah maksimum bisa jadi banyak urutan besarnya lebih besar dari ini, yang mengarah ke perkiraan kemiringan yang sangat tepat - tetapi kita tidak akan belajar banyak dari angka ini!
Histogram residu tidak terlihat bagus: ia condong ke kanan. Ini menunjukkan beberapa jenis masalah. Masalah itu tidak datang dari asimetri dalam residu pada setiap konsentrasi; melainkan, itu berasal dari kurangnya kecocokan. Itu terbukti dalam plot-plot kotak di sebelah kanan: walaupun lima di antaranya berbaris hampir secara horizontal, yang terakhir - pada konsentrasi tertinggi - jelas berbeda di lokasi (terlalu tinggi) dan skala (terlalu panjang) . Ini hasil dari respons nonlinier yang saya masukkan ke dalam simulasi. Meskipun nonlinier hadir di seluruh rentang konsentrasi penuh, ia memiliki efek yang cukup besar hanya pada konsentrasi paling tinggi. Ini kurang lebih apa yang akan terjadi di laboratorium juga. Namun, dengan hanya satu kali kalibrasi yang tersedia, kami tidak dapat menggambar plot kotak tersebut. Pertimbangkan untuk menganalisis beberapa proses independen jika nonlinier mungkin menjadi masalah.
Simulasi dilakukan di R
. Namun, perhitungan dengan data aktual mudah dilakukan dengan tangan atau dengan spreadsheet: pastikan untuk memeriksa residu untuk nonlinier.
#
# 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")