Skip to content

Instantly share code, notes, and snippets.

View soumyaray's full-sized avatar

Soumya Ray soumyaray

View GitHub Profile
@soumyaray
soumyaray / seminr-csem-compare.R
Created October 8, 2024 12:30
DEMO: SEMinR - cSEM comparison (response to comment on Reddit)
# Code below demonstrates similar/same results from SEMinR and cSEM for given model
# Needed changing default value of .disattenuate for cSEM
# Response to: https://www.reddit.com/r/rstats/comments/1fy42vy/structural_equation_model_results_differ_when/
library(seminr)
library(cSEM)
nck <- corp_rep_data
data <- MASS::mvrnorm(1000,mu = rep(0,37),Sigma =diag(1,37))
data <- cbind(mobi, corp_rep_data[1:250,3:17])
colnames(data) <- c(multi_items("A", 1:3),
@soumyaray
soumyaray / seminr_unstandardize_scores.R
Created March 20, 2021 05:06
Unstandardizes construct scores of an estimated SEMinR model
# Unstandardizes construct scores of an estimated SEMinR model
# (Based on rescale function of plspm)
# usage:
# my_model <- estimate_pls(...)
# ustd <- unstandardize(my_model)
unstandardize_scores <- function(pls_model) {
construct_names <- seminr:::construct_names(pls_model$smMatrix)
construct_names -> .
sapply(., seminr:::items_of_construct, model=pls_model) -> .
@soumyaray
soumyaray / seminr_singular_error_test.R
Last active June 28, 2020 02:40
Simulating singular matrix error in SEMinR
library(seminr)
comp1_items <- multi_items("IMAG", 1:5)
comp2_items <- multi_items("CUEX", 1:3)
comp3_items <- multi_items("CUSA", 1:3)
mobi_mm <- constructs(
# Three first-order composites
composite("Comp1", comp1_items),
composite("Comp2", comp2_items),
library(seminr)
image_items <- multi_items("IMAG", 1:5)
exp_items <- multi_items("CUEX", 1:3)
items <- c(image_items, exp_items)
almost_items <- items[-1]
eca_mm <- constructs(
@soumyaray
soumyaray / regression_plotting.R
Created April 28, 2018 07:00
Interactive and standalone regression plotting
# plot_regr_rsq(points) plots points and regression
#
# You can supply the following parameter:
# points - dataframe of x,y points to plot
plot_regr_rsq <- function(points) {
if (nrow(points) == 0) {
plot(NA, xlim=c(-5,50), ylim=c(-5,50), xlab="x", ylab="y")
return()
}
plot(points, xlim=c(-5,50), ylim=c(-5,50), pch=19, cex=2, col="gray")
@soumyaray
soumyaray / orison.rb
Created March 16, 2018 09:41
Orison Ruby Q&A
# OOP
module Scrambler
def scramble
json_output = to_json
json_output.chars.sample(json_output.length).join
end
end
class Student
include Scrambler
@soumyaray
soumyaray / suggestions.R
Created March 15, 2018 04:35
Suggestions for Travis — privacy document analysis ETL flow
docs <- c("OECD", "GDPR", "FTC")
# Functions to create:
pdf_to_df <- function(doc_name) {
filename <- paste(doc_name, ".txt")
#...return a dataframe
data.frame()
}
create_bigrams <- function(doc_df) { data.frame() }
@soumyaray
soumyaray / repominer_api_library.rb
Created March 22, 2017 03:04
some refactoring ideas for repominer api library code
base_url = "http://api.githbub.com/v1"
def commits_history
repo_username = "leoli0320"
repo_name = "my_fav_repo"
api_endpoint = [base_url, repo_username, repo_name, 'commits'].join('/')
req_params = {}
@soumyaray
soumyaray / confidence_intervals.R
Created March 1, 2017 06:29
Confidence Intervals Demonstration in R
# Visualize the confidence intervals of samples drawn from a population
# e.g.,
# visualize_sample_ci(sample_size=300, distr_func=rnorm, mean=50, sd=10)
# visualize_sample_ci(sample_size=300, distr_func=runif, min=17, max=35)
visualize_sample_ci <- function(num_samples = 100, sample_size = 100,
pop_size=10000, distr_func=rnorm, ...) {
# Simulate a large population
population_data <- distr_func(pop_size, ...)
pop_mean <- mean(population_data)
pop_sd <- sd(population_data)
require 'dry-monads'
include Dry::Monads::Maybe::Mixin