Method: Statsample::Reliability::ScaleAnalysis#item_difficulty_analysis
- Defined in:
- lib/statsample/reliability/scaleanalysis.rb
#item_difficulty_analysis ⇒ Object
Returns a dataset with cases ordered by score and variables ordered by difficulty
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/statsample/reliability/scaleanalysis.rb', line 109 def item_difficulty_analysis dif={} @ds.vectors.each{|f| dif[f]=@ds[f].mean } dif_sort = dif.sort { |a,b| -(a[1]<=>b[1]) } scores_sort={} scores=@ds.vector_mean scores.each_index{ |i| scores_sort[i]=scores[i] } scores_sort=scores_sort.sort{|a,b| a[1]<=>b[1]} ds_new = Daru::DataFrame.new({}, order: ([:case,:score] + dif_sort.collect{|a,b| a.to_sym})) scores_sort.each do |i,score| row = [i, score] case_row = @ds.row[i].to_h dif_sort.each{ |variable,dif_value| row.push(case_row[variable]) } ds_new.add_row(row) end ds_new end |