Skip to content

Departamento de Matematica

Sections
Personal tools
You are here: Home » Enseñanza » Materias » Segundo cuatrimestre 2023 » Estadística (Química) » fluorescencia.R
Views
  • State: visible

fluorescencia.R

Click here to get the file

Size 4.6 kB - File type text/x-r-source

File contents

# En quimica analítica se usa el modelo de regresión para calibrar 
# un método de medición. Para calibrar un fluorímetro se han 
# examinado 7 soluciones estándar de fluoresceína (de  las  que  se  
# conoce  la  concentración  medida con  mucha  precisión)  en  el  
# fluorímetro.  Los siguientes  datos  son  las concentraciones  
# y  la  intensidad  de  fluorescencia observada en el fluorímetro: 
# 
# Concentración, pg/ml:         0     2     4     6     8     10     12 
# Intensidad de fluorescencia: 2.1   5.0   9.0   12.6  17.3  21.0   24.7  

#######################################################################
# 1) Cargamos los datos a R
#######################################################################

conc<-scan()
0     2     4     6     8     10     12 

fluo<-scan()
2.1   5.0   9.0   12.6  17.3  21.0   24.7 

####################################################################
# 2) Grafico de dispersion
####################################################################

#scatter plot de los datos
plot(conc,fluo,xlab="concentracion",ylab = "fluorescencia",
     main="diagrama de dispersion 
          de fluorescencia vs. concentracion")
# ponemos la concentracion en las x, como variable independiente, 
# la fluorescencia como variable dependiente, en las y

####################################################################
# 3) Ajuste del modelo
####################################################################
#la instruccion lm (linear model) ajusta la recta de minimos cuadrados a los datos

salida<-lm(fluo~conc)
# el lm produce un objeto (una lista) que contiene muchas cosas
names(salida)

# para obtener los coeficientes, hay dos formas
salida$coefficients
coefficients(salida)

#superponemos la recta de minimos cuadrados al grafico
plot(conc,fluo,xlab="concentracion",ylab = "fluorescencia",
     main="diagrama de dispersion 
          de fluorescencia vs. concentracion
        con recta de minimos cuadrados")
abline(salida,col="red")

#esta tabla resume todo
summary(salida)

#tambien es un objeto de R
names(summary(salida))
######################################################################
# 4) estimamos el valor esperado de la fluorescencia cuando conc = 6 y 10
######################################################################

# a mano
coefficients(salida)[1]+coefficients(salida)[2]*6
coefficients(salida)[1]+coefficients(salida)[2]*10

# con la instruccion predict que calcula directamente el R.
predict(salida,newdata=data.frame(conc=6))
predict(salida,newdata=data.frame(conc=10))

# que calcula la instruccion fitted.values?
fitted.values(salida)

# que calcula la instruccion residuals?
residuals(salida)

####################################################################
# 5) intevalos de confianza para coeficientes
####################################################################
#el cuantil
qt(0.975,df=5) 

#los coeficientes estimados, y sus desvios estandares en las 
#primeras dos columnas
summary(salida)$coef

#los extremos superiores de los ic
summary(salida)$coef[,1]+ summary(salida)$coef[,2]*qt(0.975,df=5) 

#los extremos inferiores de los ic
summary(salida)$coef[,1]- summary(salida)$coef[,2]*qt(0.975,df=5) 

# el R calcula todo automaticamente
confint(salida)

###################################################
# 6) IC para E(Y) cuando X=6 y X=10
###################################################
# con el siguiente comando, que calcula el estimador e IC 
# correspondiente a X=6 y a X=10
predict(salida,newdata=data.frame(conc =  6), interval="confidence")
predict(salida,newdata=data.frame(conc = 10), interval="confidence")

###################################################
# 7) Intervalos de prediccion
###################################################

predict(salida,newdata=data.frame(conc =  6), interval="prediction")
predict(salida,newdata=data.frame(conc = 10), interval="prediction")

####################################################################
# 8) Validacion de supuestos
####################################################################
# Graficos para decidir si se satisfacen los supuestos de linealidad
# y homoscedasticidad 

# 1) el grafico que ya teniamos
plot(conc,fluo)
abline(salida,col=2)

mfrow=c(2,2)  #para hacer cuatro graficos juntos
# 2)
plot(conc,salida$residuals)
abline(a=0,b=0,col=4)

#3)
plot(salida$fitted.values,salida$residuals)
abline(a=0,b=0,col=4)

#4)
qqnorm(rstandard(salida),main="qqplot de residuos 
       estandarizados")


#5)
boxplot(rstandard(salida),main="boxplot de residuos 
        estandarizados")
mfrow=c(1,1)  #volver a poner un solo grafico
# tests
shapiro.test(rstandard(salida))

Created by nmsirolli
Last modified 2018-06-21 01:20 PM
 
 

Powered by Plone