Sha256: 87c6532bbc7078e7faf8569ee71f06b6db2baa928011bea23f5f6ee9c0c187f7
Contents?: true
Size: 1.2 KB
Versions: 38
Compression:
Stored size: 1.2 KB
Contents
module Statsample module SPSS class << self # Export a SPSS Matrix with tetrachoric correlations . # # Use: # ds=Statsample::Excel.read("my_data.xls") # puts Statsample::SPSS.tetrachoric_correlation_matrix(ds) def tetrachoric_correlation_matrix(ds) dsv=ds.dup_only_valid # Delete all vectors doesn't have variation dsv.fields.each{|f| if dsv[f].factors.size==1 dsv.delete_vector(f) else dsv[f]=dsv[f].dichotomize end } tcm=Statsample::Bivariate.tetrachoric_correlation_matrix(dsv) n=dsv.fields.collect {|f| sprintf("%d",dsv[f].size) } meanlist=dsv.fields.collect{|f| sprintf("%0.3f", dsv[f].mean) } stddevlist=dsv.fields.collect{|f| sprintf("%0.3f", dsv[f].sd) } out=<<-HEREDOC MATRIX DATA VARIABLES=ROWTYPE_ #{dsv.fields.join(",")}. BEGIN DATA N #{n.join(" ")} MEAN #{meanlist.join(" ")} STDDEV #{stddevlist.join(" ")} HEREDOC tcm.row_size.times {|i| out +="CORR " (i+1).times {|j| out+=sprintf("%0.3f",tcm[i,j])+" " } out +="\n" } out+="END DATA.\nEXECUTE.\n" end end end end
Version data entries
38 entries across 38 versions & 1 rubygems