Hi all I have the following generalized linear problem. In a study of allergic responses, patients arriving at a clinic in Groote Schuur hospital were tested for sensitivity to a number of substances. Three of these were moulds: Cladosporium (C), Alternaria (F) and Aspergillius (T). Their level of sensitivity was measured on the Rast Scale as: 0: not allergic 1: mildly allergic 2 or more: allergic The data is supplied below. The analysis is fairly straight forward and I understand how R solves the problem. I've supplied a copy of the code in order to perform the analysis. My question is: HOW DOES ONE CONVERT THE OUTPUT (FITTED VALUES) SUPPLIED BY R AND DISPLAY THEM IN A CONTINGENCY TABLE? allergy<-read.table("c:/a.dat",header=T) attach(allergy) allergy.fit.main.2int<-glm(y~ .^2,family=poisson, data=allergy) fitted(allergy.fit.main.2int) The fitted values are: 1 2 3 4 5 6 7 8 666.198041 25.858478 14.943481 60.568127 5.350317 5.081557 28.233832 3.791205 9 10 11 12 13 14 15 16 10.974962 32.170233 7.068334 1.761433 14.077680 7.039304 2.883016 7.752087 17 18 19 20 21 22 23 24 5.892362 7.355551 35.631726 14.073188 14.295086 7.354193 6.610380 11.035427 25 26 27 9.014081 12.316433 62.669487 The data for those interested is as follows: > allergy t f c y 1 none none none 671 2 none none one 23 3 none none two 13 4 none one none 60 5 none one one 8 6 none one two 3 7 none two none 24 8 none two one 4 9 none two two 15 10 one none none 31 11 one none one 9 12 one none two 1 13 one one none 14 14 one one one 6 15 one one two 4 16 one two none 9 17 one two one 5 18 one two two 7 19 two none none 32 20 two none one 15 21 two none two 17 22 two one none 8 23 two one one 5 24 two one two 12 25 two two none 12 26 two two one 13 27 two two two 59 Regards Allan
Did you try something like the following: allergy$fitted <- fitted(allergy.fit.main.2int) The documentation "?fitted.glm" says "Value: Fitted values extracted from the object 'x'." I didn't try this with your data. However, from this documentation and previous experience similar situations, it would appear that this command would give you the fitted values as a column of your original data.frame. hope this helps. spencer graves allan clark wrote:> Hi all > > I have the following generalized linear problem. > > In a study of allergic responses, patients arriving at a clinic in > Groote Schuur hospital were tested for sensitivity to a number of > substances. Three of these were moulds: Cladosporium (C), Alternaria > (F) and Aspergillius (T). Their level of sensitivity was measured on > the Rast Scale as: 0: not allergic 1: mildly allergic 2 or more: > allergic > > The data is supplied below. The analysis is fairly straight forward > and I understand how R solves the problem. I've supplied a copy of the > code in order to perform the analysis. > > My question is: HOW DOES ONE CONVERT THE OUTPUT (FITTED VALUES) > SUPPLIED BY R AND DISPLAY THEM IN A CONTINGENCY TABLE? > > allergy<-read.table("c:/a.dat",header=T) > attach(allergy) > allergy.fit.main.2int<-glm(y~ .^2,family=poisson, data=allergy) > fitted(allergy.fit.main.2int) > > The fitted values are: > 1 2 3 4 5 > 6 7 8 > 666.198041 25.858478 14.943481 60.568127 5.350317 5.081557 > 28.233832 3.791205 > 9 10 11 12 13 > 14 15 16 > 10.974962 32.170233 7.068334 1.761433 14.077680 7.039304 > 2.883016 7.752087 > 17 18 19 20 21 > 22 23 24 > 5.892362 7.355551 35.631726 14.073188 14.295086 7.354193 > 6.610380 11.035427 > 25 26 27 > 9.014081 12.316433 62.669487 > > The data for those interested is as follows: > > > allergy > t f c y > 1 none none none 671 > 2 none none one 23 > 3 none none two 13 > 4 none one none 60 > 5 none one one 8 > 6 none one two 3 > 7 none two none 24 > 8 none two one 4 > 9 none two two 15 > 10 one none none 31 > 11 one none one 9 > 12 one none two 1 > 13 one one none 14 > 14 one one one 6 > 15 one one two 4 > 16 one two none 9 > 17 one two one 5 > 18 one two two 7 > 19 two none none 32 > 20 two none one 15 > 21 two none two 17 > 22 two one none 8 > 23 two one one 5 > 24 two one two 12 > 25 two two none 12 > 26 two two one 13 > 27 two two two 59 > > Regards > Allan >______________________________________________ >R-help at stat.math.ethz.ch mailing list >https://www.stat.math.ethz.ch/mailman/listinfo/r-help > >
Converting a collection of factors and a vector into an array is a general problem for which there is no general tool available (but it would be easy to write and curiously the S-PLUS function as.data.frame.array does the inverse operation). Let me think about it... In your case, however, the operation is easy, because you can exploit the regular layout of the data. not <- c("none", "one", "two") dm <- rep(3,3) dn <- list(c = not, f = not, t = not) Otable <- array(allergy$y, dim=dm, dimnames = dn) Etable <- array(fitted(allergy.fit.main.2int), dim = dm, dimnames = dn) Etable You just need to remember that the dimensions come out as c-rows, f-colums, t-layers. If you want them in some other order the tool to use is aperm( ), but I'll leave that interesting story for you to sort out. Bill Venables. : -----Original Message----- : From: allan clark [mailto:allan at stats.uct.ac.za] : Sent: Friday, 28 November 2003 11:02 PM : To: r-help at stat.math.ethz.ch : Subject: [R] GLM FITTED VALUES TABLE : : : : Hi all : : I have the following generalized linear problem. : : In a study of allergic responses, patients arriving at a clinic in : Groote Schuur hospital were tested for sensitivity to a number of : substances. Three of these were moulds: Cladosporium (C), : Alternaria : (F) and Aspergillius (T). Their level of sensitivity was : measured on : the Rast Scale as: 0: not allergic 1: mildly allergic : 2 or more: : allergic : : The data is supplied below. The analysis is fairly straight forward : and I understand how R solves the problem. I've supplied a : copy of the : code in order to perform the analysis. : : My question is: HOW DOES ONE CONVERT THE OUTPUT (FITTED VALUES) : SUPPLIED BY R AND DISPLAY THEM IN A CONTINGENCY TABLE? : : allergy<-read.table("c:/a.dat",header=T) : attach(allergy) : allergy.fit.main.2int<-glm(y~ .^2,family=poisson, data=allergy) : : : The fitted values are: : 1 2 3 4 5 : 6 7 8 : 666.198041 25.858478 14.943481 60.568127 5.350317 5.081557 : 28.233832 3.791205 : 9 10 11 12 13 : 14 15 16 : 10.974962 32.170233 7.068334 1.761433 14.077680 7.039304 : 2.883016 7.752087 : 17 18 19 20 21 : 22 23 24 : 5.892362 7.355551 35.631726 14.073188 14.295086 7.354193 : 6.610380 11.035427 : 25 26 27 : 9.014081 12.316433 62.669487 : : The data for those interested is as follows: : : > allergy : t f c y : 1 none none none 671 : 2 none none one 23 : 3 none none two 13 : 4 none one none 60 : 5 none one one 8 : 6 none one two 3 : 7 none two none 24 : 8 none two one 4 : 9 none two two 15 : 10 one none none 31 : 11 one none one 9 : 12 one none two 1 : 13 one one none 14 : 14 one one one 6 : 15 one one two 4 : 16 one two none 9 : 17 one two one 5 : 18 one two two 7 : 19 two none none 32 : 20 two none one 15 : 21 two none two 17 : 22 two one none 8 : 23 two one one 5 : 24 two one two 12 : 25 two two none 12 : 26 two two one 13 : 27 two two two 59 : : Regards : Allan : ______________________________________________ : R-help at stat.math.ethz.ch mailing list : https://www.stat.math.ethz.ch/mailman/listinfo/r-help :